Java application getting paused when pfiles or pstack command run for it

Charlie Hunt charlie.hunt at oracle.com
Wed Sep 7 12:59:19 UTC 2016


Your description sounds like it may be distributed GC running at its default, every 60 minutes. A look at GC logs would help confirm that's the case. 

GC logs are usually the best place to start looking when looking for sources of application pauses. 

If it turns out to be distributed GC, you can change the frequency at which it runs by adding the following system properties: 
-Dsun.rmi.dgc.client.gcInterval=<milliseconds> 
-Dsun.rmi.dgc.server.gcInterval=<milliseconds> 

As an extreme example, you could effectively tell distributed GC to not run by setting: 
-Dsun.rmi.dgc.client.gcInterval=Long.MAX_VALUE 
-Dsun.rmi.dgc.server.gcInterval=Long.MAX_VALUE 

Or, you could add the following command line option: 
-XX:+DisableExplicitGC 

hths, 

charlie 

----- Original Message ----- 
From: amit.mishra at redknee.com 
To: charlie.hunt at oracle.com 
Cc: hotspot-gc-use at openjdk.java.net 
Sent: Wednesday, September 7, 2016 7:08:23 AM GMT -06:00 US/Canada Central 
Subject: RE: Java application getting paused when pfiles or pstack command run for it 





Thank you very much Charles, but initially Customer reported a Production issue where java Application process hangs periodically for a few seconds at fixed point of time of every hour.(say 17:41,18:41,19:41). 



We tried to investigate it by taking TD’s to see where application threads are blocked but TD didn’t came up due to which we conclude that it is JVM freeze. 

Further to analyze that we were supposed to analyze process threads using pstack but as pstack itself is causing application pause so in your opinion what are the best commands/tools to analyze JVM freeze when Thread dumps stopped coming. 



Regards, 

Amit 





From: charlie hunt [mailto:charlie.hunt at oracle.com] 
Sent: Wednesday, September 7, 2016 17:29 
To: Amit Mishra <amit.mishra at redknee.com> 
Cc: hotspot-gc-use at openjdk.java.net 
Subject: Re: Java application getting paused when pfiles or pstack command run for it 



Hi Amit, 





pfiles, pstack and pldd stops the process while they do their work. 





The following is directly from the p-tools (pfiles,etc.) man page, and from Oracle docs on p-tools: 




These proc tools (p-tools) stop their target processes while inspecting them and reporting the results: files , pled , mmap , and stack . A process can do nothing while it is stopped. 




As for why it may take up to 15 seconds? It may be that there are a large number file descriptors in use, etc. or a (large) portion of that time is spent getting all threads in the JVM and app to come to stopped state, or a combination of both. 





hths, 





charlie 











On Sep 7, 2016, at 5:33 AM, Amit Mishra < amit.mishra at redknee.com > wrote: 





Hello Charlie/team, 





I need your expert help on one of Production issue whereas when pfiles <JavaappPID> command whenever runs then it cause java application freeze until command get completed.(it is causing long pauses of up-to 15 seconds) 





During this whole time situations appears as JVM freeze as TD’s for Application PID stopped generating, GC logs are getting paused and application stopped catering traffic. 





What could be the cause of it, Application Java version is 1.6u45.(Application PID is 18387) 





3 samples from Top command when pfiles ,pldd and pstack command cause Application freeze(as TD’s was also not coming we treated this as JVM freeze). 








======================================================== 


1 st Sample: 


load averages: 1.11, 1.00, 0.98; up 68+20:03:01 21:41:59 


94 processes: 91 sleeping, 1 stopped, 2 on cpu 


CPU states: 85.6% idle, 0.4% user, 14.1% kernel, 0.0% iowait, 0.0% swap 


Memory: 64G phys mem, 30G free mem, 16G total swap, 16G free swap 





PID USERNAME LWP PRI NICE SIZE RES STATE TIME CPU COMMAND 


5251 root 1 0 17 2872K 1396K cpu/2 0:00 6.82% pfiles 18387 


18387 rkadm 999 0 0 29G 23G stop 878.5H 5.73% /usr/Java_1.6_45/bin/amd64/java -Djava.util.logging.manager=com.redknee.framewo 





====================================================================== 


2 nd Sample: 


PID USERNAME LWP PRI NICE SIZE RES STATE TIME CPU COMMAND 


10145 root 1 0 17 2620K 1676K cpu/2 0:00 3.90% pldd 18387 


5352 root 4 6 17 31M 27M sleep 0:01 3.33% pkgserv -N pkgchk 


18387 rkadm 999 59 0 29G 23G stop 878.5H 0.82% /usr/Java_1.6_45/bin/amd64/java -Djava.util.logging.manager=com.redknee.framewo 





================================================================= 


3 rd Sample 


load averages: 1.21, 1.16, 1.15; up 68+18:02:37 19:41:35 


88 processes: 85 sleeping, 1 stopped, 2 on cpu 


CPU states: 85.9% idle, 0.2% user, 13.8% kernel, 0.0% iowait, 0.0% swap 


Memory: 64G phys mem, 30G free mem, 16G total swap, 16G free swap 





PID USERNAME LWP PRI NICE SIZE RES STATE TIME CPU COMMAND 


1250 rkadm 1 30 0 28M 11M cpu/1 0:09 12.49% pstack 18387 


19859 rkadm 392 59 0 3322M 2342M sleep 69.6H 0.46% /usr/Java_1.6_45/bin/java -classpath /usr/Java_1.6_45/lib/tools.jar:/opt/redkne 


1257 rkadm 1 59 0 3128K 1756K cpu/3 0:00 0.05% top -c -d 1 -s 1 100 


1024 root 12 6 17 154M 109M sleep 118:09 0.01% /opt/IBM/SCM/client/../_jvm/bin/java -Xint -Xmx128m -Djlog.logCmdPort=1953 -Dsu 


15036 root 32 59 0 138M 74M sleep 85:05 0.01% /usr/java/bin/java -Dviper.fifo.path=/var/run/smc898/boot.fifo -Xmx128m -Dsun.s 


1075 noaccess 19 59 0 97M 91M sleep 69:05 0.01% /usr/java/bin/java -server -Xmx128m -XX:+UseParallelGC -XX:ParallelGCThreads=4 


18285 rkadm 23 59 0 110M 53M sleep 42:39 0.01% orbd -ORBInitialPort 20000 -port 20100 


18289 rkadm 21 59 0 105M 45M sleep 42:02 0.01% orbd -ORBInitialPort 21000 -port 21100 /opt/redknee/log/rkctl.log 


185 root 1 59 0 2472K 1108K sleep 46:38 0.01% /usr/lib/inet/in.mpathd -a 


1254 root 43 59 0 47M 22M sleep 12:32 0.00% /opt/IBM/ITM/sol606/ul/bin/kulagent 


1467 root 44 59 0 61M 32M sleep 157:12 0.00% /opt/IBM/ITM/sol606/ux/bin/kuxagent 


665 root 1 59 0 9084K 2596K sleep 1:41 0.00% /usr/lib/sendmail -bd -q15m 


7 root 14 59 0 12M 10M sleep 1:58 0.00% /lib/svc/bin/svc.startd 


502 root 1 59 0 1444K 748K sleep 0:18 0.00% /usr/lib/utmpd 


676 root 1 100 -20 2652K 1424K sleep 5:32 0.00% /usr/lib/inet/xntpd 


574 root 4 59 0 6412K 3068K sleep 4:19 0.00% /usr/lib/inet/inetd start 


643 root 1 59 0 2468K 1304K sleep 0:00 0.00% /usr/lib/snmp/snmpdx -y -c /etc/snmp/conf 


4933 root 2 59 0 590M 578M sleep 499:41 0.00% /usr/bin/dsmc schedule 


5231 root 7 59 0 44M 17M sleep 2:59 0.00% /opt/IBM/ITM/sol606/ux/bin/kcawd 


1 8387 rkadm 999 59 0 29G 23G stop 877.2H 0.00% /usr/Java_1.6_45/bin/amd64/java -Djava.util.logging.manager=com.redknee.framewo 








Thanks, 


Amit Mishra 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/hotspot-gc-use/attachments/20160907/e5d3d367/attachment-0001.html>


More information about the hotspot-gc-use mailing list