In their Developer's Notebook paper "Application Modeling and
Performance Tuning from a GC Perspective, Using a SIP Network Server,"
Alka Gupta and Michael Doyle focus on solutions for the "big pauses,
low throughput" problem in the soft-switch vertical market. The authors
also explain how they used the information from the garbage collection
(GC) logs for analysis of application and virtual machine (VM) behavior
to boost application throughput and reduce GC sequential overhead. The
goals of their project were to better understand GC, derive a model to
tune an application, GC and JavaTM virtual machine (JVMTM) software
environment, and investigate use of various options and switches
available in the JVM software so that the GC pauses would not exceed
200 ms and the GC sequential overhead would not exceed 20 percent. The
research was done by the authors jointly with Sun and Ubiquity
The JavaTM 2 Platform, Standard Edition (J2SETM) is being used for
applications that demand scalability and directly benefit from large
quantities of threads, processors and memory. They must respond in near
realtime. Otherwise if a message is retransmitted, congestion can occur
and reduce the quality of the application's performance.
JavaTM technology enables the automatic garbage collection of
objects. The GC suspends all application threads when it runs and
causes a sequential overhead on the application and results in
inconsistent application pauses and high latency. Generational GC
techniques split the heap for the JVM software into generations
depending on the object's age. The authors discuss two generations,
young and old. The old generation is typically much larger than the
Applications in the soft-switch vertical market generate a lot of garbage.
This causes both of these collectors to pause the application
for many seconds, sometimes minutes.
The authors used three fundamental parameters for tuning the JVM software
and GC generations for a soft-switch
type of application:
- Total garbage or data generated for processing a call/transaction
- Duration for which the garbage or data is "alive"
- Application load, or number of calls per second or transactions per
The authors discuss the production VM for the SolarisTM Operating
Environment (Solaris OE) and refer to it as the Exact VM (EVM). The
EVM model has two "semispaces" in the young generation: FromSpace and
ToSpace. The allocation of data is discussed and the configuration of
Also covered is the Java HotSpotTM virtual machine (VM) which consists of
an Eden, where all objects are born, and two "survivor spaces" that are
typically smaller than Eden. They discuss where the allocation of data objects
begins and how to configure the Java HotSpot VM.
The authors present an analysis of solutions using the Ubiquity SIP network
server. Results are presented using various profiling options, heap
size numbers and VM switches.
A Sun EnterpriseTM 450 Server with four 400 MHz CPUs
and 4 GB memory was used to run the Helmsman SIP Network Server for
this study. The maximum GC pause time during
the run was almost four seconds. The GC sequential overhead was almost
45 percent; this included GC pauses for the young and old generations.
The successful throughput was only 25 percent of the target load.
The server, when run on JavaTM Development Kit (JDKTM) 1.2.2_08
release using the concurrent collector with the most optimal sizes of
young and old generations, demonstrated significant improvement over
the mark-compact collector; however, enormous performance degradation
was observed after the one-hour period. To address this problem,
JDKTM 1.2.2_10 release VM offers a new -Xgenconfig suboption,
bestFitFirst (a modifier for the concurrent collector in JDK 1.2.2_08
release), and a new -X option, -Xconcrefine, which prevents
fragmentation and enables concurrent refinement of the card-marking
array for the old generation.
The use of the bestFitFirst and promoteAll switches on JDK 1.2.2_10
release gave a huge boost to performance in terms of GC sequential and
total overhead, GC pauses and application throughout.
Additonal technical details are available online, as well as
illustrations and a table that summarizes the results averaged for a
Read More ...