Thank @mikael for replying. But I can see the complete message "Server
compiler detected" and expect the JVM to continue. It's wired that this
doesn't happen when jinfo the new processes.



On Tue, Sep 2, 2014 at 5:28 PM, Staffan Larsen <[email protected]>
wrote:

>
> On 2 sep 2014, at 11:15, Mikael Gerdin <[email protected]> wrote:
>
> > Hi,
> >
> > This is the expected behavior for jmap and jinfo. If you call jstack
> with the "-F" flag you will see the same behavior.
> >
> > The reason for this is that jmap, jinfo and jstack -F all attach to your
> target JVM as a debugger and read the memory from the process. That needs
> to be done when the target process is in a frozen state.
>
> But when jinfo/jmap/jstack is done with the process it should continue
> execution.
>
> Is this reproducible with JDK 8?
>
> /Staffan
>
>
> >
> > /Mikael
> >
> > On 2014-09-02 11:08, tobe wrote:
> >> When I run jinfo or jmap to any Java process, it will "suspend" the Java
> >> process. It's 100% reproduced for the long running processes.
> >>
> >> Here're the detailed steps:
> >>
> >> 1. Pick a Java process which is running over 25 days(It's wired because
> >> this doesn't work for new processes).
> >> 2. Run ps to check the state of the process, should be "Sl" which is
> >> expected.
> >> 3. Run jinfo or jmap to this process(BTY, jstack doesn't have this
> issue).
> >> 4. Run ps to check the state of the process. This time it changes to
> "Tl"
> >> which means STOPPED and the process doesn't response any requests.
> >>
> >> Here's the output of our process:
> >>
> >> [work@hadoop ~]$ ps aux |grep "qktst" |grep "RegionServer"
> >> work     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:HeapDumpPath=/home/work/app/hbase/qktst-qk/regionserver/log
> >> -XX:+PrintGCApplicationStoppedTime -XX:+UseConcMarkSweepGC -verbose:gc
> >> -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:SurvivorRatio=6
> >> -XX:+UseCMSCompactAtFullCollection -XX:CMSInitiatingOccupancyFraction=75
> >> -XX:+UseCMSInitiatingOccupancyOnly -XX:+CMSParallelRemarkEnabled
> >> -XX:+UseNUMA -XX:+CMSClassUnloadingEnabled
> >> -XX:CMSMaxAbortablePrecleanTime=10000 -XX:TargetSurvivorRatio=80
> >> -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=100
> -XX:GCLogFileSize=128m
> >> -XX:CMSWaitDuration=2000 -XX:+CMSScavengeBeforeRemark
> >> -XX:+PrintPromotionFailure -XX:ConcGCThreads=16 -XX:ParallelGCThreads=16
> >> -XX:PretenureSizeThreshold=2097088 -XX:+CMSConcurrentMTEnabled
> >> -XX:+ExplicitGCInvokesConcurrent -XX:+SafepointTimeout
> >> -XX:MonitorBound=16384 -XX:-UseBiasedLocking -XX:MaxTenuringThreshold=3
> >> -Dproc_regionserver
> >>
> -Djava.security.auth.login.config=/home/work/app/hbase/qktst-qk/regionserver/jaas.conf
> >> -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
> >> Attaching to process ID 36663, please wait...
> >> Debugger attached successfully.
> >> Server compiler detected.
> >> JVM version is 20.12-b01
> >> [work@hadoop ~]$ ps aux |grep "qktst" |grep "RegionServer"
> >> work     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:HeapDumpPath=/home/work/app/hbase/qktst-qk/regionserver/log
> >> -XX:+PrintGCApplicationStoppedTime -XX:+UseConcMarkSweepGC -verbose:gc
> >> -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:SurvivorRatio=6
> >> -XX:+UseCMSCompactAtFullCollection -XX:CMSInitiatingOccupancyFraction=75
> >> -XX:+UseCMSInitiatingOccupancyOnly -XX:+CMSParallelRemarkEnabled
> >> -XX:+UseNUMA -XX:+CMSClassUnloadingEnabled
> >> -XX:CMSMaxAbortablePrecleanTime=10000 -XX:TargetSurvivorRatio=80
> >> -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=100
> -XX:GCLogFileSize=128m
> >> -XX:CMSWaitDuration=2000 -XX:+CMSScavengeBeforeRemark
> >> -XX:+PrintPromotionFailure -XX:ConcGCThreads=16 -XX:ParallelGCThreads=16
> >> -XX:PretenureSizeThreshold=2097088 -XX:+CMSConcurrentMTEnabled
> >> -XX:+ExplicitGCInvokesConcurrent -XX:+SafepointTimeout
> >> -XX:MonitorBound=16384 -XX:-UseBiasedLocking -XX:MaxTenuringThreshold=3
> >> -Dproc_regionserver
> >>
> -Djava.security.auth.login.config=/home/work/app/hbase/qktst-qk/regionserver/jaas.conf
> >> -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
> >>
> >>
> >> I hope some JVM experts here could help.
> >>
> >> $ 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, mixed mode)
> >>
>
>

Reply via email to