-
Enhancement
-
Resolution: Fixed
-
P4
-
17, 21, 22
-
b24
The current compilation related events don't show whether you are over/under-utilizing your compilation threads; requiring you to experiment with settings to compile as fast as possible (esp in service startup/warmup)
Proposing the following periodic event so that you can determine the pressure on the compilation queues
You will see one event per compiler queue: c1 and c2
The following event definition is in the form used for metadata.xml
<Event name="CompilerQueueUtilization" category="Java Virtual Machine, Compiler" label="Compiler Queue Utilization" period="everyChunk">
<Field type="CompilerType" name="compiler" label="Compiler" />
<Field type="long" contentType="hertz" name="addedRate" label="Requets Added Rate" description="Requests added per second"/>
<Field type="long" contentType="hertz" name="removedRate" label="Requests Removed Rate" description="Requests removed per second"/>
<Field type="long" name="queueSize" label="Queue Size"/>
<Field type="long" name="peakQueueSize" label="Peak Queue Size"/>
<Field type="long" name="addedCount" label="Requests Added"/>
<Field type="long" name="removedCount" label="Requests Removed"/>
<Field type="long" name="totalAddedCount" label="Total Requests Added"/>
<Field type="long" name="totalRemovedCount" label="Total Requests Removed"/>
<Field type="int" name="compilerThreadCount" label="Compiler Thread Count"/>
</Event>
The queues already track the size, tracking peak size and added/removed count is a minor change to the compilerBroker.
Importantly the numberOfThreads should be the current number rather than the configured number for when the dynamic compiler threads option is being used
Proposing the following periodic event so that you can determine the pressure on the compilation queues
You will see one event per compiler queue: c1 and c2
The following event definition is in the form used for metadata.xml
<Event name="CompilerQueueUtilization" category="Java Virtual Machine, Compiler" label="Compiler Queue Utilization" period="everyChunk">
<Field type="CompilerType" name="compiler" label="Compiler" />
<Field type="long" contentType="hertz" name="addedRate" label="Requets Added Rate" description="Requests added per second"/>
<Field type="long" contentType="hertz" name="removedRate" label="Requests Removed Rate" description="Requests removed per second"/>
<Field type="long" name="queueSize" label="Queue Size"/>
<Field type="long" name="peakQueueSize" label="Peak Queue Size"/>
<Field type="long" name="addedCount" label="Requests Added"/>
<Field type="long" name="removedCount" label="Requests Removed"/>
<Field type="long" name="totalAddedCount" label="Total Requests Added"/>
<Field type="long" name="totalRemovedCount" label="Total Requests Removed"/>
<Field type="int" name="compilerThreadCount" label="Compiler Thread Count"/>
</Event>
The queues already track the size, tracking peak size and added/removed count is a minor change to the compilerBroker.
Importantly the numberOfThreads should be the current number rather than the configured number for when the dynamic compiler threads option is being used