Linux性能优化需先定位瓶颈再针对性调优:用top、free、iostat、ss快速诊断CPU、内存、IO、网络;仅调整关键内核参数如vm.swappiness、tcp_tw_reuse;应用层需匹配连接池、JVM GC、Nginx配置;最后通过压测和Prometheus持续验证效果。

Linux性能优化不是堆硬件或调几个参数就能见效的事,核心在于理解瓶颈在哪、针对性干预、持续验证。盲目修改内核参数或关闭服务反而容易引发新问题。下面这些实践,都是从真实运维和压测场景中沉淀下来的“有效动作”,不讲虚的,直接上干货。
定位瓶颈:先看这四个指标
别一上来就改sysctl.conf。用最轻量的命令快速圈定方向:
- CPU:top -H 看线程级占用,结合 pidstat -u 1 观察上下文切换(cs)和软中断(si)是否异常高
- 内存:free -h 关注available而非total;cat /proc/meminfo | grep -E "Active|Inactive|SwapCached" 判断是否频繁换页
- 磁盘IO:iostat -x 1 重点看 %util(接近100%但await不高?可能是队列深度不够)、r_await/w_await(明显升高说明存储响应慢)
- 网络:ss -s 查连接总数和状态分布;netstat -s | grep -i "retransmit\|drop" 快速扫丢包和重传
内核参数调优:只动真正影响业务的几个
大部分默认值在现代内核(5.4+)已很合理。以下参数在高并发、低延迟或大内存场景下值得检查:
- vm.swappiness=1:避免空闲内存被过度交换,SSD环境尤其建议
- net.ipv4.tcp_tw_reuse=1:TIME_WAIT套接字可复用于新建连接(需确保NAT环境时间戳开启)
- fs.file-max 和 fs.nr_open:按最大连接数预估,例如支撑10万连接,设为131072以上
- vm.dirty_ratio 和 vm.dirty_background_ratio:机械盘可适当调低(如30/10),SSD可略提高(60/20),减少突发刷盘卡顿
改完记得用 sysctl -p 生效,并写入 /etc/sysctl.conf 持久化。
应用层配合:别让系统替你背锅
很多“系统慢”其实是应用行为导致的:
标签: linux java nginx app 工具 ai ios
还木有评论哦,快来抢沙发吧~