Debian上Java运行效率优化
一 基础环境优化
sudo apt-get update && sudo apt-get upgrade,以及 sudo apt-get clean && sudo apt-get autoremove。二 JVM参数与垃圾回收调优
-Xms 与 -Xmx 设为相同值(如 -Xms4g -Xmx4g)。-XX:+UseCompressedOops。-XX:+UseG1GC,并通过 -XX:MaxGCPauseMillis=200 设定目标暂停时间,配合 -XX:InitiatingHeapOccupancyPercent=45 调整并发标记触发时机。-XX:+UseZGC(JDK 11+),或 Shenandoah:-XX:+UseShenandoahGC(JDK 12+)。-XX:NewRatio=2 或显式设置 -XX:NewSize/-XX:MaxNewSize。-XX:ParallelGCThreads=8、-XX:ConcGCThreads=4(结合CPU核心数与容器/宿主机限制)。-XX:+UseStringDeduplication。-Xss2m(视应用线程深度与栈使用而定)。三 应用与代码层优化
new,优先对象复用与基本数据类型。+ 产生大量临时对象。四 系统资源与内核参数
/etc/security/limits.conf 增加 nofile(如 65536),并确认 systemd 服务 LimitNOFILE 同步设置。net.core.somaxconn=4096,配合应用(如 Tomcat/Nginx)的 backlog 一致。net.core.rmem_max、net.core.wmem_max,减少高带宽/高并发下的丢包与重传。vm.swappiness=10(视内存与负载而定)。echo never > /sys/kernel/mm/transparent_hugepage/enabled(需评估数据库等依赖THP的场景)。五 监控 诊断与启动加速
-Xlog:gc*,gc+heap=debug,gc+age=trace:file=gc.log:time,tags:filecount=10,filesize=100M,基于日志与监控数据迭代参数。-Xshare:dump 生成归档,运行时 -Xshare:on 加速类加载(JDK 8/11+)。