在生产环境下按照前几天研究出来的JProfiler使用方法,结果一下就JVM crash,捣鼓了n久还是不行,害得出了一身冷汗,后来再次摸索了一下,原来之前不小心使用了WindowsX86下的方法,LinuxX86是不一样的。
按照Quickstart来创建remoting application,然后将 C:/Documents and Settings/用户名/.jprofiler4/ 这个配置文件copy到 Linux 下一个目录,如 /opt/jprofiler4/,之后使用 JVMPI 的方式来启动 JProfiler的agent:
JRockit:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/jprofiler4/bin/linux-x86//usr/local/jrockit/bin/java -Xms1024m -Xmx1024m -Xjvmpi:entryexit=off -Xrunjprofiler:port=8849,nowait,id=101,config=/opt/jprofiler4/ -Xbootclasspath/a:/opt/jprofiler4/bin/ -Xgc:parallel
Sun JDK:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/jprofiler4/bin/linux-x86/
/usr/lib/java -Xms1024m -Xmx1024m -Xrunjprofiler:port=8849,nowait,id=101,config=/opt/jprofiler4/ -Xbootclasspath/a:/opt/jprofiler4/bin/
注意这里有个id=101,这个号需要从里面获取
==============================
补充一下2种JVM在2个平台下的设置:
SUN JVM - Windows - JVMTI
-agentlib:jprofilerti=port=8849 "-Xbootclasspath/a:D:/Program Files/jprofiler4/bin/"
SUN JVM - Linux - JVMTI
-agentlib:jprofilerti=port=8849 -Xbootclasspath/a:/opt/jprofiler/bin/
JRockit VM - Windows - JVMPI - wait
-Xjvmpi:entryexit=off -Xrunjprofiler:port=8849 "-Xbootclasspath/a:D:/Program Files/jprofiler4/bin/"
JRockit VM - Linux - JVMPI - nowait
-Xjvmpi:entryexit=off -Xrunjprofiler:port=8849,nowait,id=102,config=/opt/jprofiler4/ -Xbootclasspath/a:/opt/jprofiler4/bin/
注意nowait时,需要提供配置文件