硬件与内核参数
/etc/sysctl.conf:net.ipv4.tcp_tw_reuse=1 # 复用TCP连接
net.core.rmem_max=16777216 # 增大TCP接收缓冲区
vm.swappiness=10 # 减少内存交换
执行sudo sysctl -p生效。sudo setenforce 0,并修改/etc/selinux/config永久生效。文件描述符限制
ulimit -n 65535 # 临时设置
# 永久生效需修改/etc/security/limits.conf
内存配置
-Xms(初始)和-Xmx(最大),建议设置为物理内存的50%-70%,避免超过32GB(避免JVM压缩指针开销)。java -Xms4g -Xmx4g -jar app.jar
-XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m。垃圾回收器选择
-XX:+UseG1GC -XX:MaxGCPauseMillis=200。-XX:+UseParallelGC。-XX:+UseZGC。其他JVM参数
-XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/path/to/gc.log。-XX:+UseStringDeduplication。代码层面
StringBuilder代替字符串拼接。list.size()。框架与工具
maxThreads(建议CPU核心数×200)、acceptCount。protocol="org.apache.coyote.http11.Http11NioProtocol"。性能监控工具
top、jstack、jmap、jstat。定期调优
以上优化措施需根据具体应用场景(如高并发、大数据量)调整,优先通过监控定位瓶颈再针对性优化。