I need to setup a Oracle Glassfish Server and after some research I came up with a configuration that I would like to propose. Any suggestions and/or corrections are very welcome.
My Hardware/OS (relevant) details:
- Ubuntu 12.04 LTS 64bits
- JDK 7.0.28
- RAM 12GB
- 4 Processors (with 6 cores each)
My JVM Options
- -server
- -Xms9g
- -Xmn1g (Q1)
- -Xmx9g
- -Xss128k (Q2)
- -XX:+UseCompressedOops
- -XX:+DisableExplicitGC
- -XX:+UseConcMarkSweepGC
- -XX:ParallelGCThreads=18
- -XX:+UseParallelOldGC
- -XX:SurvivorRatio=8 (Q3)
- -XX:MaxTenuringThreshold=15 (Q4)
- -XX:MaxPermSize=1g (Q5)
- -XX:PermSize=512m
Q1 - Some suggest a 33% (-XX:NewRatio=3
) ratio which would result in a 3g Eden. Wouldn't that be a too large space for the GC (with its 18 threads) to clean?
Q2 - I Couldn't find a good value for that.
Q3 - That's the default ratio. Some say that this options doesn't change performance.
Q4 - Same as Q3.
Q5 - No idea of what would be a good value for that.