VolanoMark 2.1.2 - Comparison of Initial JVM Heap Sizes (8 MB vs 64 MB)

Bill Hartner, IBM Linux Technology Center, hartner@austin.ibm.com

The VolanoMark loopback test on an 8P system has idle CPU.  The idle CPU may be attributed to having too small of an initial JVM heap size.  The default initial JVM heap size is 8MB.  Having too small of an initial heap size may result in more heap garbage collection (GC) and allocation failures (AF).  Part of the JVM garbage collection is single threaded so this will result in idle time on an 8P system.  We ran VolanoMark using different initial JVM heap sizes to determine if this would reduce idle time and improve throughput.

VolanoMark 2.1.2 10/100 loopback, 2.4.1 kernel, 2.4.1 MQ Scheduler patch, 8 CPUs, IBM JVM 1.2.2 (20011026)

(1) -verbosegc option used to obtain JVM stats for garbage collection (GC) and allocation failures (AF)

Increasing the client JVM initial heap from 8 MB to 64 MB reduced both GC and AF.

241   (15052-13416)/13416 = 12.2 % throughput increase w/ 64 MB heap, idle time decreased from 10.83 to 5.54 %
241MQ (38700-34124)/34124 = 13.4 % throughput increase w/ 64 MB heap, idle time decreased from 24.17 to 14.29 %

Increasing the server JVM heap size provided slightly better throughput and slightly less idle time.

client GC/AF data

        min     max     num     num     msg
kernel  heap    heap    gc      af      sec
241     8       64      29      27      13329 ***
241     64      64      4       2       15165 *** gc and af reduced ***
241     128     128     4       1       15683
241MQ   8       64      30      27      33993 ***
241MQ   64      64      5       2       38473 *** gc and af reduced ***
241MQ   128     128     4       1       36229

Changing the min JVM heap sizes decreases the number GC and AF, thus reducing idle time and increasing throughput.

client data w/ server heap size of 8M and 64M
        run     min     max                             msg
kernel  num     heap    heap    user    sys     idle    sec

241     0       8       64      12.80   76.38   10.83   13416 ***
241     1       8       64      12.22   77.74   10.04   12987
241MQ   0       8       64      31.57   44.24   24.18   33867
241MQ   1       8       64      30.89   44.95   24.17   34124 ***

241     0       64      64      14.82   79.64    5.54   15052 *** throughput increased and idle time reduced ***
241     1       64      64      15.14   78.97    5.89   14653
241MQ   0       64      64      34.76   50.26   14.99   38700 *** throughput increased and idle time reduced ***
241MQ   1       64      64      34.99   50.72   14.29   38659

241     0       128     128     15.06   76.98    7.97   14902
241     1       ---     ---     -----   -----   -----   -----
241MQ   0       128     128     36.43   50.34   13.23   35878
241MQ   1       128     128     38.37   47.31   14.32   34124

241     0       256     256     16.09   77.93    5.98   15503
241     1       256     256     15.52   78.89    5.59   15133
241MQ   0       256     256     37.53   45.30   17.17   35705
241MQ   1       256     256     35.62   50.43   13.95   36553

client data w/ server heap size of 128M and 128M

        run    min     max                             msg
kernel  num     heap    heap    user    sys     idle    sec

241     0       8       64      12.73   78.12    9.15   13316
241     1       8       64      13.49   77.37    9.14   12868
241MQ   0       8       64      31.08   43.99   24.93   33988
241MQ   1       8       64      32.27   45.16   22.57   32990

241     0       64      64      17.37   77.43    5.20   15656
241     1       64      64      14.57   80.27    5.16   15442
241MQ   0       64      64      35.44   52.11   12.46   40646 + 5.0 %
241MQ   1       64      64      36.14   50.20   13.67   37979

241     0       128     128     17.20   77.01    5.79   15740
241     1       128     128     17.27   77.37    5.37   16115
241MQ   0       128     128     37.78   49.97   12.25   36344
241MQ   1       128     128     37.81   49.20   12.99   36163

241     0       256     256     14.58   78.39    7.04   15249
241     1       256     256     16.78   78.39    4.83   15864
241MQ   0       256     256     28.18   36.78   35.04   37037 (stuck - idle time not correct)
241MQ   1       256     256     38.71   48.00   13.29   34311



Copyright © 2001 IBM Corporation.