The following tuning scripts were used to derive the tuning suggestions noted in this section. These scripts were added to the domain.xml file (located in the domain configuration directory, which is typically domain-dir/config ) on a Sun Java System Application Server.
PrintGCStats – A data mining shell script that collects data from verbose:gc logs and displays information such as garbage collection pause times, parameter calculations, and timeline analyses over the application’s runtime by sampling the data at user-specified intervals.
For more information about how to use this script and garbage collection statistics to derive optimal JVM tunings, see the following web site:
http://java.sun.com/developer/technicalArticles/Programming/turbo/#PrintGCStats
PrintGCDetails – A shell script that can provide more verbose garbage collection statistics.
PrintGCTimeStamps – A shell script that adds time-stamp information to the garbage collection statistics collected by using the PrintGCDetails script.
To help ensure the best JVM performance, verify the following:
Be sure that you are using the required Java version noted in the “Supported Software and Environments” section of the Oracle Waveset 8.1.1 Release Notes to ensure you are using the most current features, bug fixes, and performance enhancements.
Be sure that you are using a newer version of garbage collection.
Frequently, customers do not remove the older, default garbage collection scheme when installing an application server. Running Waveset with an older garbage collector creates many objects, which forces the JVM to constantly collect garbage.
If you deployed Waveset on Sun Java System Application Server, you can increase throughput by adding garbage collection elements to the deployed Waveset instance server.xml file.
If you expect a peak load of more than 300 users, try modifying the following settings to increase performance:
For HTTP listeners configured for the deployed Waveset instance, edit the listener definition element in the server.xml file and set the number of acceptor threads to the Number of active CPUs on the host divided by the Number of active HTTP listeners on the host.
For example:
<http-listener id=”http-listener-1” \address=”0.0.0.0” port=”80” \acceptor threads=”Calculated Acceptor Threads” ...>
Because the static content of most Waveset deployments is not projected to change frequently, you can edit the File Cache settings (on the File Cache Configuration page) for static content. Specify a high number (such as the number of seconds in 24 hours) for the maximum age of content within the file cache before the content is reloaded.
To access the File Cache Configuration page, click the File Caching tab on the web-based Administrative Console for the HTTP server node. (See the latest Sun Java System Web Server Administrator’s Guide for detailed instructions.)
Sun Java System Application Server exposes tunables that affect the size of various thread pools and connection queues that are maintained by the HTTP container.
By default, most of these tunables are set for a concurrent user load of 300 users or less.