在CentOS上進行Tomcat內存調優,核心是通過調整JVM參數優化內存分配與垃圾回收,具體步驟如下:
修改啟動腳本
編輯Tomcat安裝目錄下的bin/catalina.sh
文件,添加或修改JAVA_OPTS
變量,設置初始堆(-Xms
)和最大堆(-Xmx
)大?。ńㄗh為服務器物理內存的60%-80%),例如:
JAVA_OPTS="$JAVA_OPTS -Xms2g -Xmx4g" # 初始堆2GB,最大堆4GB
推薦使用setenv.sh
文件(需手動創建)管理配置,避免直接修改catalina.sh
。
選擇垃圾回收器
JAVA_OPTS="$JAVA_OPTS -XX:+UseG1GC -XX:MaxGCPauseMillis=100" # 設置最大GC停頓時間
JAVA_OPTS="$JAVA_OPTS -XX:+UnlockExperimentalVMOptions -XX:+UseZGC"
調整年輕代與元空間
-Xmn1g
(堆內存4GB時)。JAVA_OPTS="$JAVA_OPTS -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m"
啟用GC日志與監控
添加以下參數生成GC日志,便于分析內存回收情況:
JAVA_OPTS="$JAVA_OPTS -Xloggc:/var/log/tomcat/gc.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps"
使用jstat
、jmap
等工具監控內存使用,例如:
jstat -gcutil <Tomcat_PID> 1000 # 每秒輸出一次GC統計
驗證與調優
sudo systemctl restart tomcat
。ps aux | grep tomcat
確認參數已加載,或使用監控工具(如Prometheus+Grafana)實時觀察內存指標。注意事項:
參考來源: