1、当应用出现问题时可以用jprofiler进行分析cpu、内存、线程等状态,进而协助排查问题
2、此处我使用jprofiler6.2.1进行分析
我从官方网站:http://www.ej-technologies.com/products/jprofiler/overview.html下载了最新版本的jprofiler。这里分为两个软件
(1)、windows安装的部分:jprofiler_windows_6_2_1.exe
(2)、linux安装的部分:jprofiler_linux_6_2_1.tar.gz
因为这个是付费的,所以需要sn序列号。大家去获取一个6.0版本的序列号即可。windows和linux安装的文件版本号必须相同,否则无法连接
3、先安装linux
(1)、安装tomcat到/usr/local/tomcat6下
(2)、将jprofiler_linux_6_2_1.tar.gz解压缩成jprofiler6,并移动到/usr/local/jprofiler6目录下
(3)、将tomcat6/bin目录下的startup.sh脚本拷贝到本地windows的某个目录中
4、安装windows:运行jprofiler_windows_6_2_1.exe,直接安装即可
(1)、安装完毕后启动。安装完毕后会提示你输入lisence key。输入你的key
(2)、启动后,在session菜单下点击new window菜单,会弹出一个quickstart,选择“An application server,locally or remotely”
(3)、选择下一步,弹出应用服务器选择界面,我这里选择tomcat6
(4)、选择下一步,选择“on remote computer”,同时选择操作系统相关信息,这里我选择linux x86,amd64
(5)、选择下一步,这里将我们jdk相关信息选择上,我选择“sun”、“1.6.0”、“hotspot”
(6)、选择下一步,这里我选择第二个“startup immediately.connect later with jprofiler GUI”
(7)、选择下一步,填写要连接的远程服务器ip,这里我填写192.168.119.168
(8)、选择下一步,这里需要填写的是jprofiler在linux上的安装位置。这里填写/usr/local/jprofiler6
(9)、选择下一步,这里需要我们将刚才从服务器上拿下来的startup.sh脚本选中,点击下一步后,我们制定一个端口,默认是8849,(千万别用80或者8080这些知名端口),会生成一个startup_jprofiler.sh脚本,而这个脚本就是比我们原来的startup.sh多如下一段话
- # The following lines have been added by the
- # application server integration wizard of JProfiler
- #其实就相当于给我们的tomcat服务器加上一个拦截代理
- CATALINA_OPTS=“-agentpath:/usr/local/jprofiler6/bin/linux-x86/libjprofilerti.so=port=8849,nowait $CATALINA_OPTS”
- export CATALINA_OPTS
- # end of modifications
(10)、选择下一步,最后出现一个配置的确认信息页面。并生成一个配置链接。我们可以通过jprofiler的start center图标找到这个链接
5、将刚才生成startup_jprofiler.sh脚本传送到/usr/local/tomcat6/bin的目录下,并赋予执行权限chmod 777 startup_jprofiler.sh
6、当我们想让jprofiler监控的时候,直接用startup_jprofiler.sh启动tomcat即可
7、然后我们在本地打开刚才配置的链接,就能直接链接到linux的8849端口进行服务器状态监控了
这里要注意本地windows的监控工具所在服务器必须能链接linux服务器的端口,可以用telnet 192.168.119.168 8849来尝试是否能telnet上。
当然上文中的具体ip以及相关配置环境还是需要根据具体情况灵活修改