Java 在 Linux 上的运行优化方法
一 版本与基础配置
二 JVM 与 GC 调优
三 Linux 系统层面优化
四 监控 诊断与代码 架构优化
五 快速检查清单
| 优化项 | 关键动作 | 常用命令或参数 |
|---|---|---|
| 版本与依赖 | 使用稳定 JDK 8/11+;升级依赖到稳定版 | java -version;依赖审计 |
| 堆与 GC | 固定堆大小;选择 G1/ZGC;开启 CompressedOops | -Xms/-Xmx;-XX:+UseG1GC/-XX:+UseZGC;-XX:+UseCompressedOops |
| 代际与停顿 | 结合对象生命周期调 NewRatio/SurvivorRatio;设置 MaxGCPauseMillis | -XX:NewRatio;-XX:SurvivorRatio;-XX:MaxGCPauseMillis |
| 系统限额 | 提升 nofile;配置容器/进程 内存与 CPU | limits.conf;容器 runtime 配置 |
| 网络与文件 | 优化 somaxconn 与 TIME_WAIT;使用 SSD/NVMe | sysctl;mount/fstab |
| 监控诊断 | top -H、jstat、jmap、jstack;VisualVM/JProfiler/MAT | jstat -gc;jmap -dump;jstack;profiler 启动/停止 |
| 代码架构 | 线程池、缓存、NIO/异步、数据库索引/连接池、超时/熔断 | HikariCP;Caffeine/Redis;NIO/Netty;EXPLAIN;Resilience4j/Sentinel |