Consider making the following changes in the WebSphere Administrative Console:
For more information, see the “IBM WebSphere V5.1 Performance, Scalability, and High Availability WebSphere Handbook Series” at:
http://www.redbooks.ibm.com//Redbooks.nsf/RedbookAbstracts/sg246198.html?OpenDocument
Add the JVM tuning parameters for JVM 1.4.2 shown below, by following these links in the console:
Servers>Application Servers>server1>Process Definition>Java Virtual Machine
Add “-server” as the first parameter in the “Generic JVM arguments” box. Then, add the following entries after the other existing parameters:
-XX:NewSize=336M -XX:MaxNewSize=336M -XX:+DisableExplicitGC -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSPermGenSweepingEnabled -XX:+UseCMSCompactAtFullCollection -XX:CMSFullGCsBeforeCompaction=0 -XX:+CMSClassUnloadingEnabled -XX:SoftRefLRUPolicyMSPerMB=0 -XX:+PrintClassHistogram -XX:+PrintGCTimeStamps -Xloggc:/opt/WebSphere/AppServer/logs/server1/gc.log -XX:-CMSParallelRemarkEnabled
If you use WebSphere 6.x with Sun JVM 1.5 or later, then some of the garbage collection (GC) algorithms can be safely removed. The following is a list of JVM options that can be used with Sun JVM 1.5 or later.
-XX:NewSize=336M -XX:MaxNewSize=336M -XX:+DisableExplicitGC -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+PrintClassHistogram -XX:+PrintGCTimeStamps -Xloggc:/opt/WebSphere/AppServer/logs/server1/gc.log -XX:-CMSParallelRemarkEnabled
Make sure that servlet caching is enabled by checking the checkbox next to “Enable servlet caching” by following these links in the console:
Application Servers>server1>Web Container>Configuration: Servlet caching
Allow the thread pool to grow beyond the maximum thread pool size set by checking the checkbox next to “Allow thread allocation beyond maximum thread size” by following these links:
Application Servers>server1>Web Container>Thread Pool Is Growable
Consider making the following changes:
For BEA WebLogic Server 8.1 SP4, to avoid the java.lang.OutofMemoryError reported by the WebLogic JVM 1.4.2_05, add the following JVM GC (garbage collection) parameter in the startWebLogic.sh JAVA_OPTIONS:
-XX:-CMSParallelRemarkEnabled
Set this parameter in addition to the other heap size and GC parameters that have been added for JVM 1.4.2 for Application Server 8.1 and Web Server 6.1.
For example, if Access Manager is installed in the default user_projects location (/usr/local/bea/user_projects/domains/mydomain/startWebLogic.sh):
JAVA_OPTIONS="-XX:+DisableExplicitGC -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSPermGenSweepingEnabled -XX:+UseCMSCompactAtFullCollection -XX:CMSFullGCsBeforeCompaction=0 -XX:+CMSClassUnloadingEnabled -XX:-CMSParallelRemarkEnabled -XX:SoftRefLRUPolicyMSPerMB=0 -XX:+PrintClassHistogram -XX:+PrintGCTimeStamps -Xloggc:/usr/local/bea/user_projects/domains/mydomain/myserver/gc.log"
If you use WebLogic 9.x with Sun JVM 1.5 or later, then some of the GC algorithms can be safely removed. The following is a list of JVM options that can be used with Sun JVM 1.5 or later.
-XX:NewSize=336M -XX:MaxNewSize=336M -XX:+DisableExplicitGC -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+PrintClassHistogram -XX:+PrintGCTimeStamps -Xloggc:/opt/WebSphere/AppServer/logs/server1/gc.log -XX:-CMSParallelRemarkEnabled
Modify the commonEnv.sh script in the /usr/local/bea/weblogic81/common/bin directory for heap size increases in the section where $PRODUCTION_MODE" = "true" (which should be set to true, before running Access Manager in /usr/local/bea/user_projects/domains/mydomain/startWebLogic.sh):
# Set up JVM options base on value of JAVA_VENDOR if [ "$PRODUCTION_MODE" = "true" ]; then case $JAVA_VENDOR in BEA) JAVA_VM=-jrockit MEM_ARGS="-Xms128m -Xmx256m" ;; HP) JAVA_VM=-server MEM_ARGS="-Xms32m -Xmx200m -XX:MaxPermSize=128m" ;; IBM) JAVA_VM= MEM_ARGS="-Xms32m -Xmx200m" ;; Sun) JAVA_VM=-server MEM_ARGS="-Xms2688M -Xmx2688M -XX:NewSize=336M -XX:MaxNewSize=336M" # MEM_ARGS="-Xms32m -Xmx200m -XX:MaxPermSize=128m"
Set the Execute Queue Thread count to be more than the number of CPUs. For example, consider using a value that is twice the number of CPUs. Set this value in either the console or in the /usr/local/bea/user_projects/domains/mydomain/config.xml file:
<ExecuteQueueName="MyExecute Queue" ThreadCount="8" ThreadsIncrease="4"/>
For more information, see “Modifying the Default Thread Count” in “WebLogic Server Performance and Tuning” at:
http://e-docs.bea.com/wls/docs81/perform/WLSTuning.html#1142218
A guideline for setting Connection Backlog Buffering is 8192 for a server with 4 Gbytes of physical memory (which is equivalent to the ConnectionQueue size tuning set in the Sun Java System Web Server 6.1 magnus.conf file).
For more information, see “Tuning Connection Backlog Buffering” in the “WebLogic Server Performance and Tuning” document at:
http://e-docs.bea.com/wls/docs81/perform/WLSTuning.html#1136287