在CentOS中优化Java内存可从JVM调优、代码优化、系统层面及监控工具四方面入手,具体如下:
JVM调优
-Xms(初始堆)和-Xmx(最大堆)参数指定内存大小,建议两者设为相同值以避免动态扩容开销,如-Xms4g -Xmx4g。-XX:+UseG1GC -XX:MaxGCPauseMillis=200。-XX:+UseParallelGC -XX:ParallelGCThreads=CPU核心数。-XX:NewRatio设置新生代与老年代比例(默认1:2),或直接指定新生代大小-XX:NewSize。代码优化
ArrayList而非LinkedList,减少插入/删除开销。系统层面优化
vm.swappiness值(如设为10),减少系统对Swap的依赖。dd命令创建Swap文件或扩展物理内存。systemctl stop关闭非必要服务,释放内存资源。监控与分析工具
jstat -gc <pid>查看GC情况,或通过VisualVM、JConsole监控内存使用。-XX:+PrintGCDetails -Xloggc:/path/to/gc.log),通过GCEasy等工具分析Full GC频率和耗时。jmap生成堆转储文件,结合MAT(Memory Analyzer Tool)分析异常对象占用。注意事项:调优前需通过压力测试明确内存瓶颈,避免盲目增大堆内存导致GC停顿加剧。优先通过代码优化减少对象创建,再调整JVM参数。