http://www.spinellis.gr/pubs/conf/2006-05-SANE-JTune/html/JTune.html This is an HTML rendering of a working paper draft that led to a publication. The publication should always be cited in preference to this draft using the following reference:
|
Bench. | Sun JVM | IBM JVM |
1 | -server | - |
2 | -server -Xms256M -Xmx4000M | -Xms256M -Xmx4000M |
3 | -XX:+UseParallelGC | -Xgcpolicy:optthruput |
4 | -XX:+UseParallelOldGC | - |
5 | -XX:+UseParallelOldGC -XX:+UseTLE | -Xgcpolicy:optthruput -Xnocompactgc |
6 | -XX:+UseConcMarkSweepGC | -Xgcpolicy:optavgpause |
7 | -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode | - |
8 | -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -XX:+CMSIncrementalPacing | -Xgcpolicy:gencon |
Application | Version |
Linux Kernel | 2.6.11.4-21.10-smp |
Sun JDK | 1.5.0_03-b07 |
IBM JDK | IBM J9 VM (j9vmxa6423-20051103) |
JoNAS | 4.7.1 |
MySQL | 4.1.10a |
RUBiS | 1.4.3 |
Configuration | Sun JVM | IBM JVM | ||||||
TPS | Avg. Resp. Time (msec) | Err. Rate | Total GC Time (sec) | TPS | Avg. Resp. Time (msec) | Err. Rate | Total GC Time (sec) | |
default | 72 | 934 | 0,013% | 573 | 31 | 10097 | 0,028% | 292 |
throughput | 60 | 2196 | 0,0033% | 1068 | 43 | 5582 | 0,014% | 379 |
concurrent | 26 | 12451 | 0,027% | 1166 | 31 | 9859 | 0,021% | 406 |
Observation | Problem | Action |
Many spikes in total collection times | Too much time spent in full heap collections or memory compaction | Use a parallel collector, turn off heap compaction (dangerous) |
Too frequent full heap collections | Heap size is small | Increase heap size or use an incremental collector to avoid large pauses |
Too many garbage collected in each collection round | High allocation rate or too frequent full heap collections | Increase heap size, use parallel collector, use thread local heaps |
Large differences between committed and used heap | Heap size is too big | Decrease heap size, allow more space for young generations |
Committed heap size is constantly increasing | Application is caching too many objects | Decrease object pool sizes, tune the application server to close open connections faster, use large object spaces |