users@glassfish.java.net

What is an ideal jvm setup for my glassfish v3 server?

From: <glassfish_at_javadesktop.org>
Date: Thu, 03 Jun 2010 21:29:52 PDT

I am setting up glassfish v3 for a production deployment. This is what my jvm-options look like:

<jvm-options>-XX:+UnlockDiagnosticVMOptions</jvm-options>
    <jvm-options>-XX:+LogVMOutput</jvm-options>
    <jvm-options>-XX:LogFile=${com.sun.aas.instanceRoot}/logs/jvm.log</jvm-options>
    <jvm-options>-Djava.endorsed.dirs=${com.sun.aas.installRoot}/modules/endorsed${path.separator}${com.sun.aas.installRoot}/lib/endorsed</jvm-options>
    <jvm-options>-Djava.security.policy=${com.sun.aas.instanceRoot}/config/server.policy</jvm-options>
    <jvm-options>-Djava.security.auth.login.config=${com.sun.aas.instanceRoot}/config/login.conf</jvm-options>
    <jvm-options>-Dcom.sun.enterprise.security.httpsOutboundKeyAlias=s1as</jvm-options>
    <jvm-options>-Djavax.net.ssl.keyStore=${com.sun.aas.instanceRoot}/config/keystore.jks</jvm-options>
    <jvm-options>-Djavax.net.ssl.trustStore=${com.sun.aas.instanceRoot}/config/cacerts.jks</jvm-options>
    <jvm-options>-Djava.ext.dirs=${com.sun.aas.javaRoot}/lib/ext${path.separator}${com.sun.aas.javaRoot}/jre/lib/ext${path.separator}${com.sun.aas.instanceRoot}/lib/ext</jvm-options>
    <jvm-options>-Djdbc.drivers=org.apache.derby.jdbc.ClientDriver</jvm-options>
    <jvm-options>-DANTLR_USE_DIRECT_CLASS_LOADING=true</jvm-options>
    <jvm-options>-Dcom.sun.enterprise.config.config_environment_factory_class=com.sun.enterprise.config.serverbeans.AppserverConfigEnvironmentFactory</jvm-options>
    <jvm-options>-Dosgi.shell.telnet.port=40959</jvm-options>
    <jvm-options>-Dosgi.shell.telnet.maxconn=1</jvm-options>
    <jvm-options>-Dosgi.shell.telnet.ip=127.0.0.1</jvm-options>
    <jvm-options>-Dfelix.fileinstall.dir=${com.sun.aas.installRoot}/modules/autostart/</jvm-options>
    <jvm-options>-Dfelix.fileinstall.poll=5000</jvm-options>
    <jvm-options>-Dfelix.fileinstall.debug=1</jvm-options>
    <jvm-options>-Dfelix.fileinstall.bundles.new.start=true</jvm-options>
    <jvm-options>-Dorg.glassfish.web.rfc2109_cookie_names_enforced=false</jvm-options>
    <jvm-options>-XX:NewRatio=2</jvm-options>
    <jvm-options>-XX:MaxPermSize=1024m</jvm-options>
    <jvm-options>-XX:+UseParallelOldGC</jvm-options>
    <jvm-options>-XX:ParallelGCThreads=4</jvm-options>
    <jvm-options>-XX:+DisableExplicitGC</jvm-options>
    <jvm-options>-XX:+AggressiveHeap</jvm-options>
    <jvm-options>-Xmx2048m</jvm-options>
    <jvm-options>-Xms2048m</jvm-options>
    <jvm-options>-Xss128k</jvm-options>
    <jvm-options>-server</jvm-options>

We are running Solaris 10 on a 64-bit 2-Quad Core (8 CPUs) x86 16Gb RAM machine. We have a mysql server running that uses no more than 2Gb (worst case scnario) but need 3 domains/instances for glassfish. The problem is if I set Xms to less than 2048m, glassfish says initial heap is too small. Any comments on the jmv options and any idea why I cant set a lower Xms value? I have a feeling that it has something to do with AggressiveHeap ?
[Message sent by forum member 'amalhotra159']

http://forums.java.net/jive/thread.jspa?messageID=472704