惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

WordPress大学
WordPress大学
博客园 - 司徒正美
宝玉的分享
宝玉的分享
阮一峰的网络日志
阮一峰的网络日志
The Cloudflare Blog
月光博客
月光博客
博客园 - 【当耐特】
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
博客园 - 三生石上(FineUI控件)
博客园 - 聂微东
小众软件
小众软件
Hugging Face - Blog
Hugging Face - Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
Apple Machine Learning Research
Apple Machine Learning Research
V
V2EX
Jina AI
Jina AI
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
罗磊的独立博客
雷峰网
雷峰网
博客园 - 叶小钗
量子位
IT之家
IT之家

博客园 - kenty

“与”运算是什么意思 VSS 服务器端,客户端的配置 C#:GridView导出Excel,以及runat=server错误处理方法 MANIFEST.MF的用途(转载) 根据绑定的值的不同改变gridview里某一单元格的字体或背景颜色 css+div自动适应高度,在IE和firefox下都能适应 (左右DIV自适应高度) Response.Write()语句造成页面布局改变以及字体变化的解决办法 已经有2年没有接触代码了!重新回归,做个纪念吧! 关于忘记MySQL的root用户密码的问题 Visualvm 远程测试 问题 - kenty MYOB 的一些开发资料 连接MYOB ODBC,在MyEclipse 下Commit成功,在Tomcat下单独运行,Commit显示Connection 已经关闭 MYOB Developer Jave 创建连接 tomcat dbcp jndi 配置 JAVA 事务处理 jsp中文件下载的实现 - kenty - 博客园 META Header - kenty - 博客园 Proxy server 緩存 jsp html Putty对数据库进行备份及恢复
利用JDK1.5的工具对远程的Java应用程序进行监测(摘录)
kenty · 2009-08-20 · via 博客园 - kenty

最近需要在 Linux 系统上对 Java 的应用系统进行监测,就用到了 JDK1.5 附带的工具 jps ( Java Virtual Machine Process Status Tool ,查看 JVM 进程状态的工具), jstat(Java Virtual Machine Statistics Monitoring Tool ,运行数据监测工具 ) 以及 jstatd ( jstat 的 daemon 程序,利用 RMI 进行远程监控)。(建议可以使用 jvmstat 包,可视化的 jstat 监控工具,可以在 http://java.sun.com/performance/jvmstat/ 下载)

部署过程描述如下:

1. 在需要监测的机器(我这里是 Linux 机器)部署相关应用:

a) 在你需要进行监测的机器上安装 JDK1.5 (狂晕一阵子),别倒下(这个部分就不多说了,因为如果这里还要解释的话,那我就晕了)。

b) 正确设置 Java 的运行环境。

c) 启动 jstatd 进程。

命令如下: ./jstatd -J-Djava.security.policy=all.policy

一般来说呢,这里是会出现问题的,那就是 permission 的问题了,还好, Sun 的网站上给了相关的解决方法,方法如下,在 jdk/…/security/ java.policy 文件中添加下面的代码:

grant codebase "file:${java.home}/../lib/tools.jar" {

permission java.security.AllPermission;

};

然后重新启动 jstatd 进程。

d) 完了,别让人乱动就好了,我经常是不小心就按 CTRL+C 把程序关闭了。

2. 在客户端(监控者使用的机器)的操作:

a) 使用 jps 查看远端机器有哪些 JVM 进程在使用当中,命令如下:

jps 172.25.1.24 // 远端机器的 IP 地址或名称

屏幕输入如下:

13686 Jstatd

14115 XXXJavaServer

15117 Jserver

b) 从上面可以看到远端机器的 Jstatd 进程已经启动起来了。我们就可以使用 jstat 对相关进程的具体情况进行查看。

Jstat 命令用法如下:

jstat -〈option〉 [-t] [-h〈lines〉] 〈vmid〉 [〈interval〉 [〈count〉]]

解释如下:

Option 包括以下选项:

-class

-compiler

-gc

-gccapacity

-gccause

-gcnew

-gcnewcapacity

-gcold

-gcoldcapacity

-gcpermcapacity

-gcutil

-printcompilation

Vmid 就是 jps 查看到的进程 id ,如上 Jserver 的进程 id 是 15117 。

Interval 是时间间隔,单位为毫秒, 1000 就是一秒。

Count 就是需要查看的次数。

例子假设我们需要查看 172.25.1.24 机器 vmid 为 15117 的 gc 的情况,可以输入下面的命令:

jstat -gc 15117@172.25.1.24 1000 3

然后你能看到四行信息(一行为 title ,剩下的就是你要的信息了),仔细看看就可以发现很多信息的了(如果不明白,可以问我, 6-6 )。

c) 那么下面就开始配置可视化的监控包, jvmstat ,下载好了后,解压到任意目录。

执行 visualgc ,然后就可以看到可视化的监控窗口。不过,好像现在只提供 Linux 下的 visualgc 的启动脚本,所以在 Windows 下或者 Linux 最好使用我下面提供的方式:

在 Linux 下:

/usr/java/jdk1.5/bin/java –Xbootclasspath/p:” /usr/java/jdk1.5/lib/tools.jar” –jar jvmstat/jars/visualgc.jar vmid@server

在 Windows 下也一样,就是改改 jdk 的路径就好了。

成功执行后你就能看见一个 java 的监视窗口(样子还蛮专业的),这个时候就 可以开始监视了。