性能瓶颈定位工具 jprofiler学习笔记【原创】

一、背景
    随着国内跨境电子商务的如火如荼的发展,公司的通关服务平台面临越来越大的压力。在刚过去的双十一期间,光天猫申报的订单量就超过100万/天,再加上物流,支付,申报单以及相关回执的数量,一天的交换量就超过1000万。面临这么大的压力,我们前期做了很多优化,终于平稳支撑了各大电商的通关申报。这里就介绍一下我们的性能优化分析工具jprofiler.

二、jprofiler的作用
   jprofiler的作用有很多,譬如分析内存,数据库,cpu的执行情况,我主要是拿它来定位性能瓶颈的。

三、jprofiler环境搭建
    本次优化采用的软件版本:
    linux版本:jprofiler_linux_8_0_4.tar.gz
    windows版本:jprofiler_windows-x64_8_0_1.zip
   可自行到 http://ej-technologies.com/download/jprofiler/files 下载。
   服务端解压到服务器的某个目录中,譬如 /opt/jprofiler。
   客户端安装到客户机的任意某个位置。
   从服务端拷贝一个启动脚本,以weblogic为例,拷贝start_weblogic.sh到客户机的某个目录下,然后启动jprofiler客户端进行配置。
   1)在主界面的工具栏上选择start center->new server intergration->weblogic 9.2->on a remote computer (Linux x86/AMD64)->(oracle 1.5.0 hotspot 64-bit jvm->startup immediately , connect later with the jprofiler GUI->输入服务端IP->输入服务端jprofiler安装目录{/opt/jprofiler}->输入config.xml(这是什么鬼,下文告诉你)的放置目录,选择manual synchroniztion->选择准备工作中拷贝到客户机的启动脚本->端口默认8849->next->No, I will start the session later.
   2)将1中提到的config.xml(位于windows用户目录下{C:\Users\zhenggm\.jprofiler8\config.xml})拷贝到服务器的安装目录(/opt/jprofiler)下, 切换到客户机准备目录(start_weblogic.sh)的拷贝目录下,其中应该多了一个start_welbogic_jprofiler.sh,将这个拷贝到服务端start_weblogic.sh所在的目录。
    3)将config.xml 和start_weblogic_jprofiler.sh 的权限改为777.
   4) 使用 start_weblogic_jprofiler.sh 启动。
   5)在客户端的start Center中找到新建的配置(weblogic server 9.2 on xxx.xxx.xxx.xxx),双击就可以连上监控。

四、jprofiler使用
    1)连上监控之后,点击左边的CPU views,可以查看性能瓶颈。从下图中可以看到报文的序列化和反序列化耗时比较长。
   
   2)根据定位优化对应的方法即可。

五、遇到的问题
  1)使用新的启动脚本启动weblogic时,可能会发生 无法找到 /opt/jprofiler/bin/linux-x64/libjprofilerti.so 的错误。
    解决方案:将start_weblogic_jprofiler.sh脚本中的libjprofilerti.so文件路径改为/opt/jprofiler/bin/linux-x86/libjprofilerti.so

六、eclipse JVM参数
-agentpath:C:\tools\jprofiler_windows-x64_8_0_1\jprofiler8\bin\windows\jprofilerti.dll=port=8849

猜你喜欢

转载自zhenggm.iteye.com/blog/2256341