2006年12月5日 星期二

TOMCAT最佳化

資料來源:
1.Tomcat性能調整
2.java.lang.OutOfMemoryError
3.JVM調整機制

以下針對體院的系統最佳化:
1.catalina.bat
  Tomcat默認可以使用的記憶體為128MB,在較大型的應用項目中,這點記憶體是不夠的,需要調大。

  在文件{tomcat_home}/bin/catalina.bat,增加如下設置:

  JAVA_OPTS='-Xms【初始化記憶體大小】 -Xmx【可以使用的最大記憶體】'

  需要把這個兩個參數值調大。例如:

  JAVA_OPTS='-Xms256m -Xmx512m'

  表示初始化記憶體為256MB,可以使用的最大記憶體為512MB

在“echo "Using CATALINA_BASE: $CATALINA_BASE"”上面加入以下行:
JAVA_OPTS="-server -XX:PermSize=64M -XX:MaxPermSize=128m


JAVA_OPTS="-server -Xms800m -Xmx800m -XX:PermSize=64M -XX:MaxNewSize=256m -XX:MaxPermSize=128m -Djava.awt.headless=true "

2.server.xml
Tomcat5


maxThreads
Tomcat使用線程來處理接收的每個請求。這個值表示Tomcat可創建的最大的線程數。

acceptCount
指定當所有可以使用的處理請求的線程數都被使用時,可以放到處理隊列中的請求數,超過這個數的請求將不予處理。

connnectionTimeout
網路連接超時,單位:毫秒。設置為0表示永不超時,這樣設置有隱患的。通常可設置為30000毫秒。

minSpareThreads
Tomcat初始化時創建的線程數。

maxSpareThreads
一旦創建的線程超過這個值,Tomcat就會關閉不再需要的socket線程。

3.調整JVM之參數

  -Xms,-Xmx一般設為同樣大小。 800m

  -Xmn 是將NewSize與MaxNewSize設為一致。320m

  -XX:PerSize 64m

  -XX:NewSize 320m 此值設大可調大新對象區,減少Full GC次數

  -XX:MaxNewSize 320m

  -XX:NewRato NewSize設了可不設。4

  -XX: SurvivorRatio 4

  -XX:userParNewGC 可用來設置並行收集

  -XX:ParallelGCThreads 可用來增加並行度 4

  -XXUseParallelGC 設置後可以使用並行清除收集器

  -XX:UseAdaptiveSizePolicy 與上面一個聯合使用效果更好,利用它可以自動優化新域大小以及救助空間比值


沒有留言: