jvm - Java delay in execution between non-blocking statements -
i have come upon strange issue in 1 of our java programs. once in while randomly threads delayed 25 seconds in execution. happens 1-2 minutes , application normal processing. telephony application strict time requirements not acceptable.
calling class
ocsihandling ocsihandler = new ocsihandling(this.arg0); ocsihandler.run();
constructor
public ocsihandling() { //this last statement of constructor after initializations logger.info("[" + refid + "][ocsi] sms idp"); }
class method
run(){ //this first statement of method executed delay logger.info("[" + refid + "][ocsi] in run()"); }
sample log during issue
info 2014-02-07 06:03:27,674 [thread-143840672] 100 - [mgw070214060327d384][ocsi] sms idp info 2014-02-07 06:03:49,771 [thread-143840672] 123 - [mgw070214060327d384][ocsi] in run()
there delay in execution, 49-27 = 22 seconds
program running -server option 32 bit hotspot server vm. during time logging messed chronologically well. 1:00:01 time stamp written before 1:00:00 , so. there no thread pool.
we using centos 5.4, 64-bit on vmware client. application cpu intensive , there not memory requirement(its running default heap size of 1gb) not sure if gc can cause delay.
logback file: http://pastebin.com/fpxybyew
please point me possible factors can lead kind of behaviour.
edit: this happens in off peak
could running garbage collection issue? add following options java
command when running program (these included before main class name, or before -jar option): -verbose:gc -xx:+printgctimestamps -xx:+printgcdetails
this cause detailed information garbage collector performance printed console (you may need redirect output file). there free programs available analyze output, in case, looking full garbage collections , checking time take might suffice.
Comments
Post a Comment