JVM參數調優
catalina.sh
,設置堆內存大?。ǜ鶕掌鲀却嬲{整):-Xms512m -Xmx1024m
(初始堆=最大堆,避免動態調整開銷)。-XX:+UseG1GC
。Tomcat配置優化
conf/server.xml
):
maxThreads
:根據CPU核心數設置(建議200-500),避免線程過多導致上下文切換開銷。acceptCount
:設置等待隊列長度(如100),防止高并發時請求被拒絕。protocol="org.apache.coyote.http11.Http11NioProtocol"
),提升高并發性能。內存泄漏排查與修復
-XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/path/to/gc.log
。jmap
生成堆轉儲文件,配合Eclipse MAT或VisualVM分析內存泄漏對象。系統層面優化
/etc/sysctl.conf
):
fs.file-max=65535
。net.core.rmem_max=16777216
。監控與持續優化
參考來源:[1,2,3,4,5,6,7,8,9,10]