Segue um exemplo de configuração para uma máquina com disponibilidade de 4gb de ram:
- HeapSize
 defina o maior valor possivel, de acordo com a disponibilidade de memória da máquina. O max e o InitialHeapSize devem ter o mesmo valor para minimizar o garbage collector
-XX:InitialHeapSize=4096m 
-XX:MaxHeapSize=4096m  
- NewSize
 alocacao de memoria para novos objetos, que deve ter valor máximo igual a 1/4 do MaxHeapSize. Quanto maior este valor mais demorado será o garbage collector, por isso deve-se balancear bem o valor adotado visto que a alocação de memória é feita de forma paralela enquanto que o garbage collector não é.
-XX:NewSize=768m 
-XX:MaxNewSize= 768m 
- CodeCacheSize 
  http://stackoverflow.com/questions/7513185/what-is-reservedcodecachesize
  
    Show archive.org snapshot
  
 alocação de memória para compilação em tempo de execução. O valor máximo varia de acordo com a arquitetura da máquina, sendo que em um servidor de 64bits o valor máximo é de 2048mb
-XX:InitialCodeCacheSize=128m 
-XX:ReservedCodeCacheSize=512m 
- Alem dos parâmetros supracitados há alguns outros que não serão detalhados aqui. Segue um exemplo completo de configuração de um servidor com disponibilidade de 4gb de memória pro tomcat:
    JAVA_OPTS="\
    -server \
    -XX:InitialHeapSize=4096m \
    -XX:MaxHeapSize=4096m \
    -XX:NewSize=768m \
    -XX:MaxNewSize=768m \
    -XX:PermSize=512m \
    -XX:MaxPermSize=1024m \
    -XX:InitialCodeCacheSize=128m \
    -XX:ReservedCodeCacheSize=512m \
    -XX:MaxJavaStackTraceDepth=512 \
    -XX:ThreadStackSize=1024 \
    
    -XX:+UseCodeCacheFlushing \
    -XX:+UseFastAccessorMethods \
    -XX:+OptimizeStringConcat \
    -XX:+UseStringCache \
    -XX:+AggressiveOpts \
    -XX:+UseParNewGC \
    -XX:+UseConcMarkSweepGC \
    -XX:+CMSConcurrentMTEnabled \
    -XX:+CMSIncrementalMode \
    -XX:+CMSIncrementalPacing \
    
    -XX:+CMSClassUnloadingEnabled \
    -XX:+CMSPermGenSweepingEnabled \
    
    -XX:CMSInitiatingOccupancyFraction=60 \
    -XX:CMSIncrementalDutyCycleMin=0 \
    -XX:CMSIncrementalDutyCycle=10 \
    -XX:CompileThreshold=1000 \
    -XX:MaxTenuringThreshold=0 \
    -XX:SurvivorRatio=256 \
    -XX:+UseTLAB \
    -Dfile.encoding=UTF-8"
Posted by Victor Carvalho to ZeroGlosa (2013-10-21 19:02)