适用于:
一、Linux高并发的本质
Linux高并发优化核心:
CPU内存网络磁盘IO进程调度TCP协议栈文件系统中断机制NUMA内核参数
真正的高并发:
不是机器配置高而是:资源利用率最大化内核上下文切换最小化网络队列不堵塞CPU不空转IO不等待
二、高并发服务器核心指标
1. CPU
重点关注:
us 用户态sy 内核态wa IO等待si 软件中断st steal(虚拟化)
理想状态
2. 内存
重点:
Page CacheSwapHugePageNUMASlab
理想状态
3. 网络
重点:
TCP队列TIME_WAITSYN Flood网卡中断连接数
三、Linux高并发内核优化架构
应用层 ↓glibc ↓系统调用 ↓Linux Kernel ↓TCP/IP Stack ↓NIC Driver ↓网卡硬件
优化核心:减少内核瓶颈减少系统调用减少中断减少上下文切换
四、CPU高并发优化
1. 查看CPU拓扑
2. 查看CPU瓶颈
topmpstat -P ALL 1pidstat -u1sar -u1
3. CPU调度优化
查看调度器
cat /sys/block/sda/queue/scheduler
推荐:
修改:
echo mq-deadline > /sys/block/sda/queue/scheduler
4. 关闭无用服务
systemctl list-unit-files --state=enabled
关闭:
systemctl disable postfixsystemctl disable cups
5. CPU亲和性优化
查看:
绑定:
适合:
五、内存优化
1. vm.swappiness
降低Swap倾向:
sysctl -w vm.swappiness=10
永久:
2. Dirty Page优化
vm.dirty_ratio =15vm.dirty_background_ratio =5
作用:
3. HugePage优化
查看:
cat /proc/meminfo | grep Huge
适合:
4. NUMA优化
查看NUMA:
关闭NUMA(数据库推荐):
或者:
grubby --update-kernel=ALL --args="numa=off"
六、网络高并发优化(核心)
1. 查看网络参数
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
八、文件句柄优化(非常重要)
查看:
修改:
vim /etc/security/limits.conf
* soft nofile 1048576* hard nofile 1048576
systemd:
vim /etc/systemd/system.conf
DefaultLimitNOFILE=1048576
九、中断优化(高端优化)
查看中断:
IRQ绑定
安装:
开启:
systemctl enable irqbalancesystemctl start irqbalance
RSS/RPS/XPS优化
查看:
调整队列:
ethtool -L eth0 combined 16
十、网卡优化(10G/25G/40G必备)
查看:
关闭GRO/LRO(某些场景)
ethtool -K eth0 gro offethtool -K eth0 lro off
适合:
Ring Buffer优化
ethtool -G eth0 rx 4096 tx 4096
十一、磁盘IO优化
1. 查看IO瓶颈
重点:
2. 文件系统挂载优化
作用:
3. XFS优化
适合:
十二、高并发必备内核参数解释
十三、Redis高并发优化
适合:Redis
关闭THP:
echo never > /sys/kernel/mm/transparent_hugepage/enabled
Redis:
十四、Nginx高并发优化
适合:Nginx
worker_processes auto;worker_connections 65535;events { use epoll; multi_accept on;}
十五、MySQL高并发优化
适合:MySQL
核心:
建议:
innodb_buffer_pool_size=70%
十六、Kubernetes节点优化
适合:Kubernetes
重点:
conntrackiptablescgroupkubelet
参数:
net.netfilter.nf_conntrack_max=1048576
十七、生产环境高并发调优路线图
第一阶段
第二阶段
第三阶段
十八、高并发排障思路
1. CPU高
工具:
2. IO高
工具:
3. 网络丢包
工具:
sar -n DEV 1ss -snetstat -sethtool -S eth0
4. 内存泄漏
工具:
十九、企业级高并发调优黄金法则
1. 不要盲目调大参数错误:参数越大越好正确:根据业务压测调优
二十、企业生产推荐工具链
二十一、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缓存零拷贝
二十五、建议重点深入的方向
推荐学习路线:
总结
Linux高并发优化本质:CPU调度优化内存优化TCP/IP协议栈优化中断优化IO优化NUMA优化网络队列优化