GCViewer icon indicating copy to clipboard operation
GCViewer copied to clipboard

add support for IBM J9 (R28)

Open acailley opened this issue 9 years ago • 5 comments

Hello,

I have an error when trying to open a logGC file from IBM J9 (R28). (format not recognized or something like that (in french : "La reconnaissance du format du journal a échoué"))

Java -version returns :

java version "1.8.0"
Java(TM) SE Runtime Environment (build pap6480-20150129_02)
IBM J9 VM (build 2.8, JRE 1.8.0 AIX ppc64-64 Compressed References 20150116_231420 (JIT enabled, AOT enabled)
J9VM - R28_Java8_GA_20150116_2030_B231420
JIT  - tr.r14.java_20150109_82886.02
GC   - R28_Java8_GA_20150116_2030_B231420_CMPRSS
J9CL - 20150116_231420)
JCL - 20150123_01 based on Oracle jdk8u31-b12

Do you think this kind of log will be supported one day ?

could not join a sample file, will try again. It starts with :

<?xml version="1.0" ?>

<verbosegc xmlns="http://www.ibm.com/j9/verbosegc" version="R28_Java8_GA_20150116_2030_B231420_CMPRSS">

<initialized id="1" timestamp="2015-12-31T15:22:43.002">
  <attribute name="gcPolicy" value="-Xgcpolicy:gencon" />
  <attribute name="maxHeapSize" value="0x20000000" />
  <attribute name="initialHeapSize" value="0x20000000" />
  <attribute name="compressedRefs" value="true" />
  <attribute name="compressedRefsDisplacement" value="0x0" />
  <attribute name="compressedRefsShift" value="0x0" />
  <attribute name="pageSize" value="0x1000" />
  <attribute name="pageType" value="not used" />
  <attribute name="requestedPageSize" value="0x1000" />
  <attribute name="requestedPageType" value="not used" />
  <attribute name="gcthreads" value="16" />
  <attribute name="numaNodes" value="0" />
  <system>
    <attribute name="physicalMemory" value="17179869184" />
    <attribute name="numCPUs" value="16" />
    <attribute name="architecture" value="ppc64" />
    <attribute name="os" value="AIX" />
    <attribute name="osVersion" value="6.1" />
  </system>
  <vmargs>
    <vmarg name="-Xoptionsfile=/softs/java/jdk8.70/jre/lib/ppc64/compressedrefs/options.default" />
    <vmarg name="-Xlockword:mode=default,noLockword=java/lang/String,noLockword=java/util/MapEntry,noLockword=java/util/HashMap$Entry,noLockword..." />
    <vmarg name="-Xjcl:jclse7b_28" />
    <vmarg name="-Dcom.ibm.oti.vm.bootstrap.library.path=/softs/java/jdk8.70/jre/lib/ppc64/compressedrefs:/softs/java/jdk8.70/jre/lib/ppc64" />
    <vmarg name="-Dsun.boot.library.path=/softs/java/jdk8.70/jre/lib/ppc64/compressedrefs:/softs/java/jdk8.70/jre/lib/ppc64" />
    <vmarg name="-Djava.library.path=/softs/java/jdk8.70/jre/lib/ppc64/compressedrefs:/softs/java/jdk8.70/jre/lib/ppc64:/softs/java/jdk8.70/jre/..." />
    <vmarg name="-Djava.home=/softs/java/jdk8.70/jre" />
    <vmarg name="-Djava.ext.dirs=/softs/java/jdk8.70/jre/lib/ext" />
    <vmarg name="-Duser.dir=/softs/1_mco/1_ines/wm99/is56100/IntegrationServer/instances/prj56100" />
    <vmarg name="-Djava.runtime.version=pap6480-20150129_02" />
    <vmarg name="-Djava.class.path=." />
    <vmarg name="-Dosgi.install.area=/softs/1_mco/1_ines/wm99/is56100/profiles/IS_prj56100" />
    <vmarg name="-Declipse.ignoreApp=true" />
    <vmarg name="-Dosgi.noShutdown=true" />
    <vmarg name="-Xbootclasspath/a:/softs/1_mco/1_ines/wm99/is56100/common/runtime/agent/repository/plugins/com.softwareag.platform.jaas.proxy_9..." />
    <vmarg name="-Djava.io.tmpdir=/softs/1_mco/1_ines/wm99/is56100/profiles/IS_prj56100/workspace/temp" />
    <vmarg name="-server" />
    <vmarg name="-Dorg.apache.xml.dtm.DTMManager=org.apache.xml.dtm.ref.DTMManagerDefault" />
    <vmarg name="-Djavax.xml.xpath.XPathFactory:http://java.sun.com/jaxp/xpath/dom=com.sun.org.apache.xpath.internal.jaxp.XPathFactoryImpl" />
    <vmarg name="-Dcom.webmethods.sc.auditing.Use80TableFormat=true" />
    <vmarg name="-Dsun.lang.ClassLoader.allowArraySyntax=true" />
    <vmarg name="-DWM_HOME=/softs/1_mco/1_ines/wm99/is56100/IntegrationServer/instances/../.." />
    <vmarg name="-Dwatt.server.prepend.classes=/softs/1_mco/1_ines/wm99/is56100/IntegrationServer/instances/../../common/lib/wm-converters.jar" />
    <vmarg name="-Dwatt.server.append.classes" />
    <vmarg name="-Xbootclasspath/p:/softs/1_mco/1_ines/wm99/is56100/IntegrationServer/instances/../../common/lib/ext/serializer.jar:/softs/1_mco..." />
    <vmarg name="-XX:SurvivorRatio=8" />
    <vmarg name="-XX:NewRatio=4" />
    <vmarg name="-XX:+HeapDumpOnOutOfMemoryError" />
    <vmarg name="-XX:-UseAdaptiveSizePolicy" />
    <vmarg name="-XX:+UseThreadPriorities" />
    <vmarg name="-verbose:gc" />
    <vmarg name="-XX:+PrintGC" />
    <vmarg name="-XX:+PrintGCDetails" />
    <vmarg name="-XX:+PrintGCTimeStamps" />
    <vmarg name="-Xverbosegclog:/logs/1_mco/1_ines/wm99/is56100/IntegrationServer/instances/prj56100/logs/GC_IS_PRJ_56100_%y%m%d_%H%M%S.log" />
    <vmarg name="-Xms512m" />
    <vmarg name="-Xmx512m" />
    <vmarg name="-Djava.library.path=/softs/1_mco/1_ines/wm99/is56100/IntegrationServer/instances/../../common/lib/tw-3.5.25:/softs/1_mco/1_ines..." />
    <vmarg name="-Djava.class.path=/softs/1_mco/1_ines/wm99/is56100/IntegrationServer/instances/../../common/lib/tw-3.5.25/wrapper.jar:/softs/1_..." />
    <vmarg name="-Dwrapper.key=hma3hQVmiO6eXlFU_jYgthAda0qmCWq3" />
    <vmarg name="-Dwrapper.port=32015" />
    <vmarg name="-Dwrapper.jvm.port.min=31000" />
    <vmarg name="-Dwrapper.jvm.port.max=31999" />
    <vmarg name="-Dwrapper.disable_console_input=TRUE" />
    <vmarg name="-Dwrapper.pid=15794388" />
    <vmarg name="-Dwrapper.version=3.5.25-st" />
    <vmarg name="-Dwrapper.native_library=wrapper" />
    <vmarg name="-Dwrapper.arch=ppc" />
    <vmarg name="-Dwrapper.ignore_signals=TRUE" />
    <vmarg name="-Dwrapper.service=TRUE" />
    <vmarg name="-Dwrapper.cpu.timeout=10" />
    <vmarg name="-Dwrapper.jvmid=1" />
    <vmarg name="-Dwrapper.lang.domain=wrapper" />
    <vmarg name="-Dwrapper.lang.folder=../lang" />
    <vmarg name="-Dsun.java.command=org.tanukisoftware.wrapper.WrapperStartStopApp org.eclipse.equinox.launcher.Main 4 -configuration /softs/1_m..." />
    <vmarg name="-Dsun.java.launcher=SUN_STANDARD" />
    <vmarg name="_org.apache.harmony.vmi.portlib" value="000001001017A430" />
  </vmargs>
</initialized>

<exclusive-start id="2" timestamp="2015-12-31T15:22:46.957" intervalms="3955.367">
  <response-info timems="0.030" idlems="0.030" threads="0" lastid="00000000303A2A00" lastname="Start Level Event Dispatcher" />
</exclusive-start>
<af-start id="3" totalBytesRequested="16392" timestamp="2015-12-31T15:22:46.957" intervalms="3955.490" />
<cycle-start id="4" type="scavenge" contextid="0" timestamp="2015-12-31T15:22:46.957" intervalms="3955.562" />
<gc-start id="5" type="scavenge" contextid="4" timestamp="2015-12-31T15:22:46.957">
  <mem-info id="6" free="401882552" total="536870912" percent="74">
    <mem type="nursery" free="0" total="134217728" percent="0">
      <mem type="allocate" free="0" total="67108864" percent="0" />
      <mem type="survivor" free="0" total="67108864" percent="0" />
    </mem>
    <mem type="tenure" free="401882552" total="402653184" percent="99">
      <mem type="soa" free="381750712" total="382521344" percent="99" />
      <mem type="loa" free="20131840" total="20131840" percent="100" />
    </mem>
    <remembered-set count="11317" />
  </mem-info>
</gc-start>
<allocation-stats totalBytes="67266664" >
  <allocated-bytes non-tlh="2423016" tlh="64843648" />
  <largest-consumer threadName="Start Level Event Dispatcher" threadId="00000000303A2A00" bytes="32985584" />
</allocation-stats>
<gc-op id="7" type="scavenge" timems="24.782" contextid="4" timestamp="2015-12-31T15:22:46.982">
  <scavenger-info tenureage="10" tenuremask="7c00" tiltratio="50" />
  <memory-copied type="nursery" objects="182521" bytes="10683184" bytesdiscarded="683152" />
  <finalization candidates="1718" enqueued="1577" />
  <ownableSynchronizers candidates="30" cleared="0" />
  <references type="soft" candidates="825" cleared="0" enqueued="0" dynamicThreshold="32" maxThreshold="32" />
  <references type="weak" candidates="9944" cleared="1762" enqueued="1619" />
  <references type="phantom" candidates="6" cleared="0" enqueued="0" />
</gc-op>
<gc-end id="8" type="scavenge" contextid="4" durationms="25.007" usertimems="28.731" systemtimems="0.155" timestamp="2015-12-31T15:22:46.982">
  <mem-info id="9" free="457545744" total="536870912" percent="85">
    <mem type="nursery" free="55663192" total="134217728" percent="41">
      <mem type="allocate" free="55663192" total="67108864" percent="82" />
      <mem type="survivor" free="0" total="67108864" percent="0" />
    </mem>
    <mem type="tenure" free="401882552" total="402653184" percent="99">
      <mem type="soa" free="381750712" total="382521344" percent="99" />
      <mem type="loa" free="20131840" total="20131840" percent="100" />
    </mem>
    <pending-finalizers system="1576" default="1" reference="1619" classloader="0" />
    <remembered-set count="11317" />
  </mem-info>
</gc-end>
<cycle-end id="10" type="scavenge" contextid="4" timestamp="2015-12-31T15:22:46.982" />
<allocation-satisfied id="11" threadId="00000000303A2A00" bytesRequested="16392" />
<af-end id="12" timestamp="2015-12-31T15:22:46.982" />
<exclusive-end id="13" timestamp="2015-12-31T15:22:46.982" durationms="25.388" />

<exclusive-start id="14" timestamp="2015-12-31T15:22:48.229" intervalms="1272.346">
  <response-info timems="0.043" idlems="0.043" threads="0" lastid="0000000030664600" lastname="webMethods Integration Server" />
</exclusive-start>
<af-start id="15" totalBytesRequested="4528" timestamp="2015-12-31T15:22:48.229" intervalms="1272.366" />
<cycle-start id="16" type="scavenge" contextid="0" timestamp="2015-12-31T15:22:48.230" intervalms="1272.372" />
<gc-start id="17" type="scavenge" contextid="16" timestamp="2015-12-31T15:22:48.230">
  <mem-info id="18" free="401690672" total="536870912" percent="74">
    <mem type="nursery" free="0" total="134217728" percent="0">
      <mem type="allocate" free="0" total="67108864" percent="0" />
      <mem type="survivor" free="0" total="67108864" percent="0" />
    </mem>
    <mem type="tenure" free="401690672" total="402653184" percent="99">
      <mem type="soa" free="381558832" total="382521344" percent="99" />
      <mem type="loa" free="20131840" total="20131840" percent="100" />
    </mem>
    <remembered-set count="13843" />
  </mem-info>
</gc-start>
<allocation-stats totalBytes="55001632" >
  <allocated-bytes non-tlh="2550104" tlh="52451528" />
  <largest-consumer threadName="Start Level Event Dispatcher" threadId="00000000303A2A00" bytes="32294664" />
</allocation-stats>
<gc-op id="19" type="scavenge" timems="21.203" contextid="16" timestamp="2015-12-31T15:22:48.251">
  <scavenger-info tenureage="10" tenuremask="7c00" tiltratio="50" />
  <memory-copied type="nursery" objects="208476" bytes="12738720" bytesdiscarded="720584" />
  <finalization candidates="2849" enqueued="1911" />
  <ownableSynchronizers candidates="39" cleared="0" />
  <references type="soft" candidates="1053" cleared="0" enqueued="0" dynamicThreshold="32" maxThreshold="32" />
  <references type="weak" candidates="9120" cleared="594" enqueued="588" />
  <references type="phantom" candidates="7" cleared="0" enqueued="0" />
</gc-op>
<gc-end id="20" type="scavenge" contextid="16" durationms="21.365" usertimems="29.331" systemtimems="0.362" timestamp="2015-12-31T15:22:48.251">
  <mem-info id="21" free="455264856" total="536870912" percent="84">
    <mem type="nursery" free="53574184" total="134217728" percent="39">
      <mem type="allocate" free="53574184" total="67108864" percent="79" />
      <mem type="survivor" free="0" total="67108864" percent="0" />
    </mem>
    <mem type="tenure" free="401690672" total="402653184" percent="99">
      <mem type="soa" free="381558832" total="382521344" percent="99" />
      <mem type="loa" free="20131840" total="20131840" percent="100" />
    </mem>
    <pending-finalizers system="1911" default="0" reference="588" classloader="0" />
    <remembered-set count="13843" />
  </mem-info>
</gc-end>
<cycle-end id="22" type="scavenge" contextid="16" timestamp="2015-12-31T15:22:48.251" />
<allocation-satisfied id="23" threadId="0000000030664600" bytesRequested="4528" />
<af-end id="24" timestamp="2015-12-31T15:22:48.251" />
<exclusive-end id="25" timestamp="2015-12-31T15:22:48.251" durationms="21.708" />

<exclusive-start id="26" timestamp="2015-12-31T15:22:48.932" intervalms="703.020">
  <response-info timems="0.166" idlems="0.110" threads="1" lastid="0000000030664600" lastname="webMethods Integration Server" />
</exclusive-start>
<af-start id="27" totalBytesRequested="56" timestamp="2015-12-31T15:22:48.932" intervalms="703.072" />
<cycle-start id="28" type="scavenge" contextid="0" timestamp="2015-12-31T15:22:48.933" intervalms="703.086" />
<gc-start id="29" type="scavenge" contextid="28" timestamp="2015-12-31T15:22:48.933">
  <mem-info id="30" free="401549304" total="536870912" percent="74">
    <mem type="nursery" free="0" total="134217728" percent="0">
      <mem type="allocate" free="0" total="67108864" percent="0" />
      <mem type="survivor" free="0" total="67108864" percent="0" />
    </mem>
    <mem type="tenure" free="401549304" total="402653184" percent="99">
      <mem type="soa" free="381417464" total="382521344" percent="99" />
      <mem type="loa" free="20131840" total="20131840" percent="100" />
    </mem>
    <remembered-set count="16119" />
  </mem-info>
</gc-start>
<allocation-stats totalBytes="53685080" >
  <allocated-bytes non-tlh="1733240" tlh="51951840" />
  <largest-consumer threadName="Start Level Event Dispatcher" threadId="00000000303A2A00" bytes="39088168" />
</allocation-stats>
<gc-op id="31" type="scavenge" timems="19.688" contextid="28" timestamp="2015-12-31T15:22:48.952">
  <scavenger-info tenureage="10" tenuremask="7c00" tiltratio="50" />
  <memory-copied type="nursery" objects="237524" bytes="12096408" bytesdiscarded="554256" />
  <finalization candidates="1936" enqueued="875" />
  <ownableSynchronizers candidates="39" cleared="0" />
  <references type="soft" candidates="1093" cleared="0" enqueued="0" dynamicThreshold="32" maxThreshold="32" />
  <references type="weak" candidates="10162" cleared="1601" enqueued="1601" />
  <references type="phantom" candidates="7" cleared="0" enqueued="0" />
</gc-op>
<gc-end id="32" type="scavenge" contextid="28" durationms="19.962" usertimems="43.810" systemtimems="0.475" timestamp="2015-12-31T15:22:48.953">
  <mem-info id="33" free="455936152" total="536870912" percent="84">
    <mem type="nursery" free="54386848" total="134217728" percent="40">
      <mem type="allocate" free="54386848" total="67108864" percent="81" />
      <mem type="survivor" free="0" total="67108864" percent="0" />
    </mem>
    <mem type="tenure" free="401549304" total="402653184" percent="99">
      <mem type="soa" free="381417464" total="382521344" percent="99" />
      <mem type="loa" free="20131840" total="20131840" percent="100" />
    </mem>
    <pending-finalizers system="875" default="0" reference="1601" classloader="0" />
    <remembered-set count="9191" />
  </mem-info>
</gc-end>
<cycle-end id="34" type="scavenge" contextid="28" timestamp="2015-12-31T15:22:48.953" />
<allocation-satisfied id="35" threadId="00000000303A2A00" bytesRequested="56" />
<af-end id="36" timestamp="2015-12-31T15:22:48.953" />
<exclusive-end id="37" timestamp="2015-12-31T15:22:48.953" durationms="20.384" />

acailley avatar Jan 13 '16 17:01 acailley

Hi,

If someone finds the time to implement it or this format is not so different from the format, that is already parsed, it might be supported one day.

But I absolutely need a sample log (it is possible to attach files directly to the issue).

Best regards, Jörg

chewiebug avatar Jan 13 '16 20:01 chewiebug

great ! It worked with another web browser ! :)

acailley avatar Jan 14 '16 08:01 acailley

I have added some support for IBM J9 R26, R27 and R28.

I think, there are a few features missing:

  • af pauses are treated as "full gcs" -> should probably rather be in "gc events"
  • system gcs are not explicitly visible (no difference between full gc and system gc)
  • I assume, there are more gc algorithms with IBM J9, they are not supported

But the sample file attached to this issue can be parsed now.

chewiebug avatar Jan 20 '16 21:01 chewiebug

great tank you ! :)

acailley avatar Jan 21 '16 10:01 acailley