Hitachi

uCosminexus Application Server System Design Guide


7.14.2 Investigating the transition of usage status

The method for investigating the transition of use status of Explicit heap includes the method for investigating the event log of the Explicit Memory Management functionality and method for acquiring the information using JavaAPI. For details about how to use the Java API, see 7.14.1 Investigating the usage (snapshot) of Explicit heap at a certain point.

This point describes how to investigate using the event log of the Explicit Memory Management functionality.

Organization of this subsection

(1) Transition of usage status of Explicit heap

Set normal in the -XX:HitachiExplicitMemoryLogLevel option of JavaVM. As a result, the use status of Explicit heap is output at the following timings:

Moreover, when verbose is specified in the -XX:HitachiExplicitMemoryLogLevel option of JavaVM, the use status of the Explicit heap will be output at the following timings in addition to the output timing in case of normal.

An output example is as follows:

[ENS]<Thu Oct 21 14:55:50 2007>[EH: 12672K->12800K(12800K/65536K)][E/F/D: 200/0/0][cause:GC][CF: 0]
[ENS]<Thu Oct 21 14:55:50 2007>[EH: 12800K->12800K(12800K/65536K), 0.1124626 secs][E/F/D: 200/0/0]\
[DefNew::Eden: 0K->0K(243600K)][DefNew::Survivor: 0K->0K(17400K)][Tenured: 103400K->103400K(556800K)]\
[target:584K/0K/584K][cause:Migrate]

The highlighted and bolded parts beginning with EH: indicate the usage status of the Explicit heap. The line that indicates the usage status of the Explicit heap always contains information equivalent to the highlighted and bolded information. You can see how usage changes over time by such means as plotting this value on a graph.

In this example, as shown by the part starting with cause:, the first line that starts with [ENS] is the log entry output when copy GC (GC) occurred. The second line that starts with [ENS] is the log entry output during automatic release processing, the processing by which the Explicit memory block is automatically released. The log in the first line indicates that the used size of the Explicit heap before the copy GC occurs is 12,672 KB, and the used size after the copy garbage collection occurs is 12,800 KB. The log in the second line indicates that the used size of the Explicit heap is 12,800 KB and that the automatic release processing of the Explicit memory block took 0.1124626 seconds.

Note that the log indicating the use status starts with ENS or EVS. When the event log is filtered in this character string, it becomes easier to check the use status.

(2) Transition of usage status for each Explicit memory block

Specify verbose in the -XX:HitachiExplicitMemoryLogLevel option of JavaVM. As a result, the use status of Explicit memory block with the changed size will be output at the following timings:

An output example is as follows:

[ENS]Thu Oct 21 14:55:50 2007[EH: 11422K->12800K(12800K/65536K)][E/F/D: 200/0/0][cause:GC][CF: 0]
[EVS]["REM2" eid=2/R: 0K->88K(128K)]["REM3" eid=3/R: 30K->230K(256K)]["REM6" eid=6/R: 30K->200K(256K)]\
["Session1" eid=8/R: 30K->250K(256K)]["Session2" eid=10/R: 30K->250K(256K)]
[EVS]["Session3" eid=12/R: 30K->510K(512K)]

The part that is highlighted and bolded indicates the usage status of the Explicit memory block named "REM2".

Moreover, when verbose is specified in the -XX:HitachiExplicitMemoryLogLevel option, if the Explicit memory block is released, the information of the released Explicit memory block is output. An output example is as follows:

[ENS]Tue Jul 24 01:23:51 2007[EH: 12800K->11776K(11776K/65536K), 0.1129602 secs][E/F/D: 523/0/0]\
[DefNew::Eden: 0K->0K(243600K)][DefNew::Survivor: 12K->0K(17400K)][Tenured: 103400K->103400K(556800K)][cause:Reclaim]
[EVS]["REM2" eid=2/R: 320K]["BEM3" eid=5/B: 320K]["BEM1" eid=7/B: 384K]

The part that is highlighted and bolded indicates information about the released Explicit memory block named "REM2". "320K" is the released memory size (Size of the allocated Explicit memory block).

You can check the transition of the use status for each Explicit memory block by coding and plotting these values in the graph. Note that the size of individual Explicit memory block increases uniformly until released.