1. 程式人生 > >tomcat優化之catalina.sh

tomcat優化之catalina.sh

Linux下修改TOMCAT_HOME/bin/catalina.sh,在其中加入,可以放在CLASSPATH=下面:

JAVA_OPTS="-server -XX:PermSize=512M -XX:MaxPermSize=1024m -Xms2048m -Xmx2048m" 

-server:啟用 JDK的 server 版本;
-Xms:Java虛擬機器初始化時堆的最小記憶體,一般與 Xmx配置為相同值,這樣的好處是GC不必再為擴充套件記憶體空間而消耗效能;
-Xmx:Java虛擬機器可使用堆的最大記憶體;
-XX:PermSize:Java虛擬機器永久代大小;
-XX:MaxPermSize:Java虛擬機器永久代大小最大值;


2.驗證
設定成功後我們可以利用JDK自帶的工具進行驗證,這些工具都在JAVA_HOME/bin目錄下:
1)jps:用來顯示本地的java程序,以及程序號,程序啟動的路徑等。
2)jmap:觀察執行中的JVM 實體記憶體的佔用情況,包括Heap size , Perm size 下載地址 等。

進入命令列模式後,進入JAVA_HOME/bin目錄下,然後輸入jps命令:

#jps  
顯示以下結果  

2340 Bootstrap  
6696 Jps 

其中 Bootstrap程序就是我們啟動了的 Tomcat,其程序號為2340.
然後我們利用 jmap工具檢視其記憶體相關配置:

#jmap -heap 2340  
顯示以下結果

Attaching to process ID 2340, please wait...  
Debugger attached successfully.  
Server compiler detected.  
JVM version is 24.65-b04  
  
using thread-local object allocation.  
Parallel GC with 4 thread(s)  
  
Heap Configuration:  
   MinHeapFreeRatio = 0  
   MaxHeapFreeRatio = 100  
   MaxHeapSize      = 2147483648 (2048.0MB)    //最大堆記憶體  
   NewSize          = 1310720 (1.25MB)  
   MaxNewSize       = 17592186044415 MB  
   OldSize          = 5439488 (5.1875MB)  
   NewRatio         = 2  
   SurvivorRatio    = 8  
   PermSize         = 536870912 (512.0MB)      //永久代初始大小  
   MaxPermSize      = 1073741824 (1024.0MB)    //永久代最大大小  
   G1HeapRegionSize = 0 (0.0MB)  
Heap Usage:  
PS Young Generation  
Eden Space:  
   capacity = 537919488 (513.0MB)  
   used     = 247606720 (236.13616943359375MB)  
   free     = 290312768 (276.86383056640625MB)  
   46.03044238471613% used  
From Space:  
   capacity = 89128960 (85.0MB)  
   used     = 0 (0.0MB)  
   free     = 89128960 (85.0MB)  
   0.0% used  
To Space:  
   capacity = 89128960 (85.0MB)  
   used     = 0 (0.0MB)  
   free     = 89128960 (85.0MB)  
   0.0% used  
PS Old Generation  
   capacity = 1431830528 (1365.5MB)  
   used     = 0 (0.0MB)  
   free     = 1431830528 (1365.5MB)  
   0.0% used  
PS Perm Generation  
   capacity = 536870912 (512.0MB)  
   used     = 20770360 (19.80815887451172MB)  
   free     = 516100552 (492.1918411254883MB)  
   3.86878103017807% used  
  
12005 interned Strings occupying 1039352 bytes. 

 

從結果驗證配置是否成功了。