当前位置:首页>Linux>Linux高并发内核优化手册(运维必备生产版)

Linux高并发内核优化手册(运维必备生产版)

  • 2026-10-11 07:52:07
Linux高并发内核优化手册(运维必备生产版)

适用于:

  • 高并发 Web 集群
  • Nginx/OpenResty
  • Redis / Kafka / ES
  • MySQL / PostgreSQL
  • Kubernetes / Docker
  • API网关 / 微服务
  • 大流量 TCP 长连接场景
  • 高IO/高网络吞吐场景

一、Linux高并发的本质

Linux高并发优化核心:

CPU内存网络磁盘IO进程调度TCP协议栈文件系统中断机制NUMA内核参数

真正的高并发:

不是机器配置高而是:资源利用率最大化内核上下文切换最小化网络队列不堵塞CPU不空转IO不等待

二、高并发服务器核心指标

1. CPU

重点关注:

us  用户态sy  内核态wa  IO等待si  软件中断st  steal(虚拟化)

理想状态

指标
建议
CPU利用率
< 70%
iowait
< 5%
steal
< 3%
Load
不超过CPU核数

2. 内存

重点:

Page CacheSwapHugePageNUMASlab

理想状态

指标
建议
Swap使用率
0~5%
Available
>20%
OOM
禁止出现

3. 网络

重点:

TCP队列TIME_WAITSYN Flood网卡中断连接数

三、Linux高并发内核优化架构

应用层  ↓glibc  ↓系统调用  ↓Linux Kernel  ↓TCP/IP Stack  ↓NIC Driver  ↓网卡硬件
优化核心:减少内核瓶颈减少系统调用减少中断减少上下文切换

四、CPU高并发优化

1. 查看CPU拓扑

lscpu

2. 查看CPU瓶颈

topmpstat -P ALL 1pidstat -u1sar -u1

3. CPU调度优化

查看调度器

cat /sys/block/sda/queue/scheduler

推荐:

场景
调度
SSD
none/mq-deadline
数据库
mq-deadline
HDD
deadline

修改:

echo mq-deadline > /sys/block/sda/queue/scheduler

4. 关闭无用服务

systemctl list-unit-files --state=enabled

关闭:

systemctl disable postfixsystemctl disable cups

5. CPU亲和性优化

查看:

taskset -cp PID

绑定:

taskset -c0-7 nginx

适合:

NginxRedisDPDKKafka

五、内存优化

1. vm.swappiness

降低Swap倾向:

sysctl -w vm.swappiness=10

永久:

vim /etc/sysctl.conf
vm.swappiness = 10

2. Dirty Page优化

vm.dirty_ratio =15vm.dirty_background_ratio =5

作用:

降低脏页堆积减少IO阻塞

3. HugePage优化

查看:

cat /proc/meminfo | grep Huge

适合:

OracleMySQLRedisJVM

4. NUMA优化

查看NUMA:

numactl --hardware

关闭NUMA(数据库推荐):

numactl --interleave=all

或者:

grubby --update-kernel=ALL --args="numa=off"

六、网络高并发优化(核心)

1. 查看网络参数

sysctl -a | grep tcp

2. TCP队列优化

net.core.somaxconn = 65535net.core.netdev_max_backlog = 250000

作用:

提升连接队列降低丢包

3. TIME_WAIT优化

net.ipv4.tcp_fin_timeout = 15net.ipv4.tcp_tw_reuse = 1

4. TCP内存优化

net.ipv4.tcp_rmem = 4096 87380 16777216net.ipv4.tcp_wmem = 4096 65536 16777216

5. 端口范围扩大

net.ipv4.ip_local_port_range = 1024 65535

6. SYN攻击防护

net.ipv4.tcp_syncookies = 1

7. Keepalive优化

net.ipv4.tcp_keepalive_time = 600net.ipv4.tcp_keepalive_intvl = 30net.ipv4.tcp_keepalive_probes = 3

七、高并发网络优化完整模板(生产推荐)

# /etc/sysctl.conffs.file-max = 2097152net.core.somaxconn = 65535net.core.netdev_max_backlog = 250000net.core.rmem_default = 262144net.core.rmem_max = 16777216net.core.wmem_default = 262144net.core.wmem_max = 16777216net.ipv4.tcp_syncookies = 1net.ipv4.tcp_fin_timeout = 15net.ipv4.tcp_tw_reuse = 1net.ipv4.ip_local_port_range = 1024 65535net.ipv4.tcp_max_syn_backlog = 65535net.ipv4.tcp_max_tw_buckets = 500000net.ipv4.tcp_rmem = 4096 87380 16777216net.ipv4.tcp_wmem = 4096 65536 16777216vm.swappiness = 10vm.dirty_ratio = 15vm.dirty_background_ratio = 5生效:sysctl -p

八、文件句柄优化(非常重要)

查看:

ulimit -n

修改:

vim /etc/security/limits.conf
* soft nofile 1048576* hard nofile 1048576

systemd:

vim /etc/systemd/system.conf
DefaultLimitNOFILE=1048576

九、中断优化(高端优化)

查看中断:

cat /proc/interrupts

IRQ绑定

安装:

yum install irqbalance

开启:

systemctl enable irqbalancesystemctl start irqbalance

RSS/RPS/XPS优化

查看:

ethtool -l eth0

调整队列:

ethtool -L eth0 combined 16

十、网卡优化(10G/25G/40G必备)

查看:

ethtool eth0

关闭GRO/LRO(某些场景)

ethtool -K eth0 gro offethtool -K eth0 lro off

适合:

低延迟交易DPDK高实时业务

Ring Buffer优化

ethtool -G eth0 rx 4096 tx 4096

十一、磁盘IO优化

1. 查看IO瓶颈

iostat -x1iotopdstat

重点:

指标
含义
await
IO等待
util
磁盘利用率
svctm
服务时间

2. 文件系统挂载优化

noatime,nodiratime

作用:

减少inode写入

3. XFS优化

适合:

大文件高并发数据库

十二、高并发必备内核参数解释

参数
作用
somaxconn
TCP监听队列
netdev_max_backlog
网卡接收队列
tcp_max_syn_backlog
SYN队列
tcp_tw_reuse
TIME_WAIT复用
file-max
最大文件句柄
swappiness
Swap倾向
dirty_ratio
脏页比例

十三、Redis高并发优化

适合:Redis

vm.overcommit_memory=1

关闭THP:

echo never > /sys/kernel/mm/transparent_hugepage/enabled

Redis:

tcp-backlog 65535

十四、Nginx高并发优化

适合:Nginx

worker_processes auto;worker_connections 65535;events {    use epoll;    multi_accept on;}

十五、MySQL高并发优化

适合:MySQL

核心:

IOBuffer PoolNUMA文件句柄

建议:

innodb_buffer_pool_size=70%

十六、Kubernetes节点优化

适合:Kubernetes

重点:

conntrackiptablescgroupkubelet

参数:

net.netfilter.nf_conntrack_max=1048576

十七、生产环境高并发调优路线图

第一阶段

基础内核参数文件句柄TCP优化

第二阶段

NUMAIRQRSSRPSXPS

第三阶段

DPDKeBPFXDP零拷贝

十八、高并发排障思路

1. CPU高

工具:

topperfpidstat

2. IO高

工具:

iostatiotopblktrace

3. 网络丢包

工具:

sar -n DEV 1ss -snetstat -sethtool -S eth0

4. 内存泄漏

工具:

smempmapvalgrind

十九、企业级高并发调优黄金法则

1. 不要盲目调大参数错误:参数越大越好正确:根据业务压测调优

2. 永远先监控核心:没有监控不要优化


3. 先定位瓶颈CPU?IO?网络?锁?


4. 优化顺序应用数据库系统内核硬件


二十、企业生产推荐工具链

分类
工具
CPU
top、htop、perf
IO
iostat、iotop
网络
ss、sar、iftop
eBPF
bcc、bpftrace
全链路
Prometheus + Grafana
火焰图
FlameGraph
压测
wrk、sysbench、iperf3

二十一、Linux高并发终极方向

未来高性能方向:

eBPFXDPDPDKio_uring用户态网络零拷贝RDMASmartNICAI自动调优

二十二、生产环境推荐优化模板(通用)

# 文件句柄ulimit -n1048576# sysctlsysctl -w net.core.somaxconn=65535sysctl -w net.ipv4.tcp_tw_reuse=1sysctl -w vm.swappiness=10# THP关闭
echo never > /sys/kernel/mm/transparent_hugepage/enabled
# irqbalancesystemctl enable irqbalance# tunedsystemctl enable tuned

二十三、高并发性能调优核心思想

真正的高并发:减少等待减少复制减少锁减少上下文切换减少中断减少系统调用
最终目标:CPU始终在干活网络队列不堵塞磁盘不等待内存不抖动

二十四、企业级高并发调优能力模型

优秀运维工程师:

会部署 ≠ 会优化会优化 ≠ 会定位瓶颈会定位 ≠ 会内核级调优
真正高级:eBPF内核源码TCP/IP协议栈NUMACPU缓存零拷贝

二十五、建议重点深入的方向

推荐学习路线:

  1. Linux内核基础
  2. TCP/IP协议栈
  3. epoll原理
  4. Nginx事件驱动
  5. Redis单线程模型
  6. io_uring
  7. eBPF
  8. DPDK
  9. XDP
  10. NUMA架构

总结

Linux高并发优化本质:CPU调度优化内存优化TCP/IP协议栈优化中断优化IO优化NUMA优化网络队列优化
真正的企业级高并发:监控压测定位优化验证回归
核心目标:低延迟高吞吐高稳定低抖动

最新文章

随机文章