CentOS下Java內存配置技巧
export JAVA_OPTS="-Xms512m -Xmx1024m"
~/.bashrc
)或系統級配置文件(如/etc/profile
),添加上述JAVA_OPTS
行,執行source ~/.bashrc
使更改生效。systemd
管理服務(如Tomcat、Spring Boot應用),編輯服務文件(/etc/systemd/system/your-service.service
),在[Service]
部分添加:Environment="JAVA_OPTS=-Xms512m -Xmx1024m"
,然后執行sudo systemctl daemon-reload
并重啟服務。根據應用場景選擇合適的GC器:
-XX:+UseG1GC
)。-XX:+UseZGC
)。-XX:+UseConcMarkSweepGC
)。-XX:+UseParallelGC
)。啟用GC日志以監控內存回收行為,便于調優:
-XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/path/to/gc.log
通過VisualVM
、GCViewer
等工具分析日志,關注Full GC頻率、停頓時間等指標,若Full GC頻繁,需調整堆大小或GC器。
-XX:ParallelGCThreads=4
),可根據CPU負載調整。-XX:ConcGCThreads=2
),減少GC停頓時間。堆外內存(如Direct Buffer、JNI調用)不受JVM GC管理,需通過以下方式監控:
-XX:MaxDirectMemorySize
限制堆外內存大?。ㄈ?code>-XX:MaxDirectMemorySize=512m)。NMT(Native Memory Tracking)
跟蹤堆外內存使用:-XX:NativeMemoryTracking=detail
,通過jcmd <pid> VM.native_memory detail
查看。top
(查看系統內存)、jstat -gc <pid>
(查看GC情況)、VisualVM
(實時監控堆內存)等工具監控內存使用。-Xmx
或調整新生代比例(-Xmn
)。