Linux系统调优需按“先观测、再分析、后优化”原则,针对性调整CPU调度(如tuned、chrt、taskset)、内存管理(swappiness、THP、cgroup)、磁盘I/O(调度器、队列深度、文件系统参数)和网络协议栈(conntrack、TCP缓冲、TIME_WAIT)。

Linux系统调优不是“一键加速”,而是根据实际负载特征,有针对性地调整CPU调度、内存管理、磁盘I/O和网络协议栈等关键子系统。核心原则是:先观测、再分析、后优化,避免盲目调参引发稳定性问题。
CPU调度与负载均衡优化
高并发场景下,CPU资源争用常表现为软中断堆积、进程频繁迁移或CFS调度延迟升高。需结合top、pidstat -w、perf sched latency定位瓶颈:
- 启用tuned服务并选择throughput-performance或latency-performance配置集,自动优化调度器参数、CPU频率策略和中断亲和性
- 对实时性要求高的进程(如音视频编码、高频交易),使用chrt -f 50 ./app设为SCHED_FIFO,并通过taskset -c 0-3绑定到专用CPU核,避免与其他服务混跑
- 检查/proc/sys/kernel/sched_latency_ns和sched_min_granularity_ns,在8核以上服务器可适当增大(如设为12ms),减少小任务过于频繁的上下文切换
内存管理与交换策略调优
内存不足时,OOM Killer误杀关键进程或swappiness过高导致过早换出活跃页,是常见故障点。重点监控free -h、cat /proc/meminfo | grep -E "Active|Inactive|Swap"及vmstat 1中的si/so列:
- 将vm.swappiness从默认60调低至1–10(数据库、缓存类服务建议设为1;容器宿主机可设为0禁用swap)
- 对大内存应用(如Java服务),启用Transparent Huge Pages (THP):echo always > /sys/kernel/mm/transparent_hugepage/enabled,但需配合JVM参数-XX:+UseLargePages
- 限制容器或用户组内存使用,用cgroup v2配置memory.max和memory.low,避免单个应用耗尽全局内存
磁盘I/O性能深度调优
慢盘、随机读写多、队列深度不足或文件系统未对齐,都会显著拖慢响应。使用iostat -x 1关注%util、await、r_await/w_await、svctm,结合iotop定位具体进程:
- SSD设备关闭电梯算法:echo none > /sys/block/nvme0n1/queue/scheduler;HDD保留mq-deadline或bfq
- 提升IO队列深度:echo 1024 > /sys/block/nvme0n1/queue/nr_requests(NVMe)或echo 512 > /sys/block/sda/queue/nr_requests(SATA)
- XFS文件系统挂载时添加noatime,nodiratime,logbufs=8,logbsize=256k;EXT4推荐data=writeback,barrier=0,commit=60(仅限有掉电保护的存储)
网络协议栈与连接处理优化
高并发短连接(如API网关)、长连接(如WebSocket)、或大吞吐传输(如CDN)面临不同瓶颈。用ss -s、.netstat -s | grep -i "packet|drop"、sar -n DEV 1排查丢包、重传、连接队列溢出等问题:
- 扩大连接跟踪表:net.netfilter.nf_conntrack_max = 655360,并调高net.netfilter.nf_conntrack_tcp_be_liberal = 1缓解TIME_WAIT僵死
- 优化TCP内存自动调节:net.ipv4.tcp_rmem = 4096 262144 16777216,net.ipv4.tcp_wmem = 4096 262144 16777216,关闭tcp_slow_start_after_idle防突发流量抑制
- 启用快速回收与重用:net.ipv4.tcp_tw_reuse = 1(客户端)和net.ipv4.tcp_fin_timeout = 30,对NAT环境慎用tcp_tw_recycle(已废弃)










