当我对任何 Java 进程运行 jinfo 或 jmap 时,它将“暂停”Java 进程。对于长时间运行的过程,它是 100% 复制的。
以下是详细步骤:
- 选择一个运行超过 25 天的 Java 进程(它是有线的,因为这对新进程不起作用)。
- 运行 ps 以检查进程的状态,应该是预期的“Sl”。
- 运行 jinfo 或 jmap 到这个进程(BTY,jstack 没有这个问题)。
- 运行 ps 以检查进程的状态。这次它变为“Tl”,表示已停止,并且该进程不响应任何请求。
这是我们流程的输出:
[work@hadoop ~]$ ps aux |grep "qktst" |grep "RegionServer" 工作 36663 0.1 1.7 24157828 1150820 ? Sl Aug06 72:54 /opt/soft/jdk/bin/java -cp /home/work/app/hbase/qktst-qk/regionserver/:/home/work/app/hbase/qktst-qk/regionserver/package/ /:/home/work/app/hbase/qktst-qk/regionserver/package//lib/*:/home/work/app/hbase/qktst-qk/regionserver/package//* -Djava.library.path= :/home/work/app/hbase/qktst-qk/regionserver/package/lib/native/:/home/work/app/hbase/qktst-qk/regionserver/package/lib/native/Linux-amd64-64 - Xbootclasspath/p:/home/work/app/hbase/qktst-qk/regionserver/package/lib/hadoop-security-2.0.0-mdh1.1.0.jar -Xmx10240m -Xms10240m -Xmn1024m -XX:MaxDirectMemorySize=1024m -XX :MaxPermSize=512m -Xloggc:/home/work/app/hbase/qktst-qk/regionserver/stdout/regionserver_gc_20140806-211157.log -Xss256k -XX:PermSize=64m -XX:+HeapDumpOnOutOfMemoryError -XX: [work@hadoop ~]$ jinfo 36663 > tobe.jinfo 正在附加到进程 ID 36663,请稍候... 调试器连接成功。 检测到服务器编译器。 JVM版本是20.12-b01 [work@hadoop ~]$ ps aux |grep "qktst" |grep "RegionServer" 工作 36663 0.1 1.7 24157828 1151008 ? Tl Aug06 72:54 /opt/soft/jdk/bin/java -cp /home/work/app/hbase/qktst-qk/regionserver/:/home/work/app/hbase/qktst-qk/regionserver/package/ /:/home/work/app/hbase/qktst-qk/regionserver/package//lib/*:/home/work/app/hbase/qktst-qk/regionserver/package//* -Djava.library.path= :/home/work/app/hbase/qktst-qk/regionserver/package/lib/native/:/home/work/app/hbase/qktst-qk/regionserver/package/lib/native/Linux-amd64-64 - Xbootclasspath/p:/home/work/app/hbase/qktst-qk/regionserver/package/lib/hadoop-security-2.0.0-mdh1.1.0.jar -Xmx10240m -Xms10240m -Xmn1024m -XX:MaxDirectMemorySize=1024m -XX :MaxPermSize=512m -Xloggc:/home/work/app/hbase/qktst-qk/regionserver/stdout/regionserver_gc_20140806-211157.log -Xss256k -XX:PermSize=64m -XX:+HeapDumpOnOutOfMemoryError -XX:
这可能是 JVM 的错误,但我向 oracle 报告此问题后没有得到任何回应。所以我希望这里的一些JVM专家可以提供帮助。
$ java -version
java version "1.6.0_37"
Java(TM) SE Runtime Environment (build 1.6.0_37-b06)
Java HotSpot(TM) 64-Bit Server VM (build 20.12-b01,混合模式)