Jprofile 是很有名的Java程序监测工具,如果对它的具体作用不清楚,可以到其官方网页看看。这里不介绍它的功能,只想说说使用它的一点心得。
使用Jprofile监测一般的Java应用程序不难,在其向导里面一步一步跟着说明配置,然后打开创建的session,点击启动就好了,很简 单。
但是如果要监测的本地服务器或者是进行远程监测,那么情况就会复杂一点。要实现远程监测,则监测端和被监测端都需要安装Jprofile。
Jprofile监测端的 配置:
在监测端的Jprofile,其设置没有多大的改变,也是按照向导,选择更多不同的选项而已。
(远程)被监测端的配置:
(1) 将以下启动参数加入到Java应用的 "Java Runtime Parameters" 中
-Xrunjprofiler:port=8849 -Xbootclasspath/a:E:/PROGRA~1/JPROFI~1/bin/agent.jar
简单地说,就是在启动Java应用的命令行里面加上以上参数。
port=8849,这个端口就是Jprofile里面设置监听的远程端口, 其必须要与Jprofile里面的设置保持一致。另外,agent.jar这个文件应该是位于Jprofile安装目录的bin目录下(对应被监测端的路 径)。对于目录过长或者带空格的,要注意转换为8位长度的写法,不然可能会找不到路径(windows系统有此问题)。
(2) 将Jprofile安装路径下的bin\windows 增加到Path环境变量中
E:\Program Files\jprofiler5\bin\windows
注意,这个路径应该是Jprofile安装路径下的bin\windows(不同系统对应不用的目录,unix、linux对应的不一样。bin \unix或bin\linux。没用过这两个版本)
两边配置完成后,就可以启动被监测的Java应用和Jprofile,一会就可以在Jprofile上看到监测数据了。这就是使用Jprofile 进行监测的大致步骤,不同的使用模式配置步骤没有区别。
Jprofile的几种监 测模式
Jprofile提供3中监测模式,分别是等待模式,非等待模式,离线模式。
等待模式:在等待模式中,被监测的Java应 用,需要等待Jprofile连接上,才会继续其启动过程,不然该启动过程会被挂起,处于等待Jprofile连接中。
使用该模式的方法是,在 Jprofile配置session时,选择该模式,然后在被监测的Java应用启动参数中,加入:
-Xrunjprofiler:port=8849 -Xbootclasspath/a:E:/PROGRA~1/JPROFI~1/bin/agent.jar
非等待模式:被监测的Java应用不会等待 Jprofile的连接而直接启动,Jprofile在需要时再启动。
使用该模式的方法是,在Jprofile配置session时,选择该模 式,然后在被监测的Java应用启动参数中,加入:
-Xrunjprofiler:port=8849,nowait,id=116,config=E:/DOCUME~1/ADMINI~1/JPROFI~1/config.xml -Xbootclasspath/a:E:/PROGRA~1/JPROFI~1/bin/agent.jar
离线模式:被监测的Java应用不会等待 Jprofile的连接而直接启动,同时监测数据会在服务器端缓存,在Jprofile连接时,将其返回给Jprofile。
使用该模式的方法 是,在Jprofile配置session时,选择该模式,然后在被监测的Java应用启动参数中,加入:
-Xrunjprofiler:offline,id=116,config=E:/DOCUME~1/ADMINI~1/JPROFI~1/config.xml -Xbootclasspath/a:E:/PROGRA~1/JPROFI~1/bin/agent.jar
这里要注意的两个地方是:id=116, 这个是Jprofile中设定的监测session的id,而config=E:/DOCUME~1/ADMINI~1/JPROFI~1/config.xml则是包含该 session的Jprofile配置文件(如果你的session是在监测端配置的,那么你必须将监测端的这个config文件同步到被监测端上,否则 被监测端将因为找不到你指定的sessionId而提示错误)。上面的启动参数的路径都应该是被监测端的路径。
WAS服务器的远程监测设 置
1.配置Jprofile,创建一个监测远程服务器的session。如果使用向导,选择了WebSphere服务器的,可能需要提供该服务器的 server.xml文件和startServer.bat启动脚本文件。这时你去服务器那里,把这个两个文件,放到监测端的机器上,然后填入对应的路径 就好了。当session创建完成后,再将这两个文件复制回被监测端的服务器上。
其实Jprofile需要这两个文件的原因是因为它会自动帮你修 改这两个文件,使WAS server的启动环境符合Jprofile的设置,免了你手动设置的麻烦。如果你使用的WebSphere单服务器版还好,若是网络部署版,手动修改服 务器的config是很危险的。对于这种情况,我的做法是到被监测端的服务器拿这两个文件到监测端,但不将修该后的文件放回被监测端的服务器,而改用手动 配置WAS server。
2.设置WAS服务器的启动参数
在Application servers > server1 > Process Definition > Java Virt l Machine 的 Generic JVM arguments 中加入上面提到的Jprofile模式的参数。
3.设置WAS 所在的机器的Path环境变量
在被监测端的Path环境变量中,加入E:\Program Files\jprofiler5\bin\windows(注意修改为服务器上Jprofile对应的路径)
4.禁用WAS server对应的windows service,如果将WAS server注册为windows的话。(有时不禁用它也可以正常对server进行监测,如果禁用了,就不能再从DM Console上对它进行启动了。)
5.同步监测端和被监测端的Jprofile config.xml文件
6.重启该WAS server.(如果在DM Consol中启动失败。尝试在命令行,使用脚本启动)
7.启动Jprofile,打开设置好的session
8.这时你应该看到监测数据
联系客服