Губительная ошибка при запуске jinfo и jmap
Когда я запускаю jinfo или jmap для любого процесса Java, он "приостанавливает" процесс Java. Это 100% воспроизводится для длительных процессов.
Вот подробные шаги:
- Выберите процесс Java, который выполняется более 25 дней (он проводной, потому что он не работает для новых процессов).
- Запустите 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 MaxPermSize=512 м work/app/hbase/qktst-qk/regionserver/log -XX:+PrintGCApplicationStoppedTime -XX:+UseConcMarkSweepGC -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:SurvivorRatio=6 -XCXC::CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:+CMSParallelRemarkEnabled -XX:+UseNUMA -XX:+CMSClassUnloadingEnabled -XX:CMSMaxAbortablePrecleanTime: =128m -XX:CMSWaitDuration=2000 -XX:+CMSScavengeBeforeRemark -XX:+PrintPromotionFailure -XX:ConcGCThreads=16 -XX:ParallelGCThreads=16 -XX:PretenureSizeThreshold=2097088 -XX:+CMSConcurrentXXX: +XX: +XXX: -XXNurxXX:: SafepointTimeout -XX:MonitorBound=16384 -XX:-UseBiasedLocking -XX:MaxTenuringThreshold=3 -Dproc_regionserver -Djava.security.auth.login.config=/home/work/app/hbase/qktst-qk/regionserver/jaas.con Djava.net.preferIPv4Stack=true -Dhbase.log.dir=/home/work/app/hbase/qktst-qk/regionserver/log -Dhbase.pid=36663 -Dhbase.cluster=qktst-qk -Dhbase.log.level=debug -Dhbase.policy.file=hbase-policy.xml -Dhbase.home.dir=/home/work/app/hbase/qktst-qk/regionserver/package -Djava.security.krb5.conf=/home/work/app/hbase/qktst-qk/regionserver/krb5.conf -Dhbase.id.str=work org.apache.hadoop.hbase.regionserver.HRegionServer start [work@hadoop ~]$ jinfo 36663 > tobe.jinfo Прикрепление к идентификатор процесса 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 MaxPermSize=512 м work/app/hbase/qktst-qk/regionserver/log -XX:+PrintGCApplicationStoppedTime -XX:+UseConcMarkSweepGC -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:SurvivorRatio=6 -XCXC::CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:+CMSParallelRemarkEnabled -XX:+UseNUMA -XX:+CMSClassUnloadingEnabled -XX:CMSMaxAbortablePrecleanTime: =128m -XX:CMSWaitDuration=2000 -XX:+CMSScavengeBeforeRemark -XX:+PrintPromotionFailure -XX:ConcGCThreads=16 -XX:ParallelGCThreads=16 -XX:PretenureSizeThreshold=2097088 -XX:+CMSConcurrentXXX: +XX: +XXX: -XXNurxXX:: SafepointTimeout -XX:MonitorBound=16384 -XX:-UseBiasedLocking -XX:MaxTenuringThreshold=3 -Dproc_regionserver -Djava.security.auth.login.config=/home/work/app/hbase/qktst-qk/regionserver/jaas.con Djava.net.preferIPv4Stack = true -Dhbase.log.dir = / home / work / app / hbase / qktst-qk / regionserver / log -Dhbase.pid = 36663 -Dhbase.cluster = qktst-qk -Dhbase.log.level = debug -Dhbase.policy.file = hbase-policy.xml -Dhbase.home.dir = / home / work / app / hbase / qktst-qk / regionserver / package -Djava.security.krb5.conf = / home / wo rk / app / hbase / qktst-qk / regionserver / krb5.conf -Dhbase.id.str = работа org.apache.hadoop.hbase.regionserver.HRegionServer start
Это может быть ошибкой JVM, но я не получаю никакого ответа после того, как сообщил об этом оракулу. Поэтому я надеюсь, что некоторые эксперты JVM здесь могут помочь.
$ java-версия
Java-версия "1.6.0_37"
Java (TM) SE Runtime Environment (сборка 1.6.0_37-b06)
Java HotSpot (ТМ) 64-разрядный сервер ВМ (сборка 20.12-b01, смешанный режим)