CentOS 上 Java 配置对性能的影响
一 影响路径总览
二 关键配置与性能影响对照表
| 配置项 | 典型影响 | 建议方向 |
|---|---|---|
| -Xms / -Xmx | 过小:频繁 GC、抖动;过大:单次 GC 停顿变长、回收压力上升 | 生产常将二者设为相同,并留出**20%–30%**给系统与非堆内存 |
| -Xmn / -XX:NewRatio / -XX:SurvivorRatio | 年轻代过小:Minor GC 频繁;过大:单次 Minor GC 耗时增加 | 结合对象生命周期与晋升速率调优,避免过早晋升导致 Full GC |
| 垃圾回收器 | Parallel:高吞吐;G1:大堆低延迟;ZGC/Shenandoah:极低暂停 | 依据延迟目标/堆大小/硬件线程数选择,并配合目标暂停时间 |
| -XX:MaxGCPauseMillis(G1) | 目标过低:吞吐下降;过高:停顿改善有限 | 以业务可接受的停顿预算为起点,逐步迭代 |
| 容器/内存限制 | 未识别容器内存:堆申请过大触发 OOM;过小:频繁 GC | 在容器中显式设置 -Xmx,确保与容器 limit 匹配 |
| 文件描述符与网络 | 连接数受限:吞吐触顶;缓冲区过小:网络吞吐低 | 提升 ulimit -n,适度增大 net.core.rmem/wmem_max 与 tcp_rmem/wmem |
| JDK 版本 | 新版本含 JIT/GC 优化与新特性 | 优先选择 LTS(如 JDK 11)或当前稳定大版本,结合特性与生态验证 |
三 快速诊断与优化步骤
四 常见误区与风险