Linux性能优化需先定位瓶颈再干预,遵循“不测量不优化、不验证不上线”原则;通过top、free、iostat、netstat等命令快速诊断CPU、内存、I/O、网络问题,分层优化并固化配置,辅以长期监控与基线建设。

Linux性能优化没有万能公式,但有一套通用排查逻辑——先定位瓶颈,再针对性干预,避免盲目调参。核心原则是:不测量就不优化,不验证就不上线。
一、快速定位性能瓶颈
用最简命令组合判断系统当前压力来源:
- top / htop:看CPU整体负载(load average)、占用最高的进程、%us/%sy/%wa占比——若%wa高说明I/O等待严重;%sy持续超30%可能内核态开销异常
- free -h:关注available值,而非free;若available接近0且swap in/out频繁(si/so非零),内存已实质不足
- iostat -x 1:重点看%util(设备饱和度)、await(I/O响应延迟)、r_await/w_await分离读写瓶颈;%util达100%但await很低,可能是队列堆积而非磁盘慢
- netstat -s | grep -i "retransmit\|drop" 或 ss -i:确认网络层是否存在重传、丢包或接收队列溢出(rx_queue > 0)
二、分层收敛优化方向
根据定位结果,按资源层级逐层处理:
- CPU瓶颈:检查是否单进程占满核心(用taskset绑核或nice降优先级);确认是否有大量短生命周期进程(pidstat -w 1看cswch/s);关闭非必要服务(systemctl list-units --type=service --state=running)
- 内存瓶颈:清理page cache(echo 3 > /proc/sys/vm/drop_caches仅临时有效);调整swappiness(vm.swappiness=10降低交换倾向);检查大页使用(cat /proc/meminfo | grep -i huge)
- I/O瓶颈:SSD启用noop或kyber调度器(echo kyber > /sys/block/nvme0n1/queue/scheduler);HDD用deadline;禁用atime更新(mount -o remount,noatime);日志类应用改用异步写或缓冲区加大
- 网络瓶颈:增大socket缓冲区(net.core.rmem_max、net.core.wmem_max);开启TSO/GSO卸载(ethtool -K eth0 tso on);TIME_WAIT过多时调整net.ipv4.tcp_fin_timeout和net.ipv4.ip_local_port_range
三、关键配置的验证与固化
所有修改必须可验证、可回滚:
标签: linux nginx app ai ios 性能瓶颈 网络问题
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
还木有评论哦,快来抢沙发吧~