欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 养生 > ubuntu高并发内核参数调优 - (集群服务端调优)

ubuntu高并发内核参数调优 - (集群服务端调优)

2025/3/20 15:35:16 来源:https://blog.csdn.net/sj1163739403/article/details/146368914  浏览:    关键词:ubuntu高并发内核参数调优 - (集群服务端调优)

调优只针对系统内核参数,相比程序方面的调优占比也很大,系统瓶颈不存在时,那所有瓶颈都来自程序或数据库

内核参数配置

# 文件描述符和端口范围
fs.file-max = 2000000
fs.nr_open = 2000000
fs.aio-max-nr = 1048576# TCP连接建立和释放
net.ipv4.tcp_max_syn_backlog = 262144
net.core.somaxconn = 1048576
net.ipv4.tcp_fin_timeout = 15
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_fastopen = 3
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_syn_retries = 2
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_abort_on_overflow = 0
net.ipv4.ip_local_port_range = 1024 65535# TCP连接保持和超时
net.ipv4.tcp_keepalive_time = 600
net.ipv4.tcp_keepalive_intvl = 30
net.ipv4.tcp_keepalive_probes = 3
net.ipv4.tcp_max_tw_buckets = 1440000# 内存和缓冲区设置
net.core.wmem_max = 16777216
net.core.rmem_max = 16777216
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 87380 16777216
net.core.optmem_max = 40960
net.ipv4.tcp_mem = 786432 1048576 1572864
kernel.msgmnb = 131072
kernel.msgmax = 131072# 网络性能和拥塞控制
net.core.netdev_max_backlog = 262144
net.ipv4.tcp_slow_start_after_idle = 0
net.ipv4.tcp_mtu_probing = 1
net.ipv4.tcp_sack = 1
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_adv_win_scale = 1
net.ipv4.tcp_rfc1337 = 1
net.ipv4.tcp_congestion_control = cubic
net.ipv4.tcp_notsent_lowat = 16384
net.ipv4.ip_forward = 1# 连接跟踪相关
net.netfilter.nf_conntrack_max = 3000000
net.netfilter.nf_conntrack_buckets = 750000
net.netfilter.nf_conntrack_tcp_timeout_established = 1800
net.netfilter.nf_conntrack_tcp_timeout_time_wait = 30
net.ipv4.conf.all.rp_filter = 0# 其他系统限制
vm.swappiness = 10
vm.max_map_count = 262144
kernel.panic = 5

默认对比修改

默认内核参数与优化后参数对比表

此表格展示了Linux系统默认内核参数值与融合优化后的高并发参数值的对比。

文件描述符和端口范围

参数默认值优化值变化比例影响
fs.file-max~65536200000030.5倍大幅提高系统可打开的文件描述符总数
fs.nr_open104857620000001.9倍提高单个进程可打开的文件描述符数量
fs.aio-max-nr65536104857616倍大幅提高异步I/O请求上限
net.ipv4.ip_local_port_range32768-609991024-655352.1倍显著扩大可用本地端口范围

TCP连接建立和释放

参数默认值优化值变化比例影响
net.ipv4.tcp_max_syn_backlog1024262144256倍极大提高SYN半连接队列容量
net.core.somaxconn12810485768192倍极大提高已完成连接队列容量
net.ipv4.tcp_fin_timeout601575%减少大幅加速FIN_WAIT连接的释放
net.ipv4.tcp_syncookies11不变保持SYN洪水攻击防护
net.ipv4.tcp_fastopen03启用加速TCP连接建立过程
net.ipv4.tcp_synack_retries5260%减少减少服务器对SYN+ACK的重试
net.ipv4.tcp_syn_retries6267%减少减少客户端对SYN的重试
net.ipv4.tcp_tw_reuse01启用允许TIME_WAIT套接字重用
net.ipv4.tcp_abort_on_overflow00不变连接队列满时不中断连接

TCP连接保持和超时

参数默认值优化值变化比例影响
net.ipv4.tcp_keepalive_time720060092%减少大幅减少检测失效连接的等待时间
net.ipv4.tcp_keepalive_intvl753060%减少加速keepalive探测间隔
net.ipv4.tcp_keepalive_probes9367%减少减少确认连接失效前的探测次数
net.ipv4.tcp_max_tw_buckets18000014400008倍大幅提高TIME_WAIT状态连接的容量

内存和缓冲区设置

参数默认值优化值变化比例影响
net.core.wmem_max2129921677721678.8倍极大提高写缓冲区上限
net.core.rmem_max2129921677721678.8倍极大提高读缓冲区上限
net.ipv4.tcp_rmem4096 87380 62914564096 87380 16777216最大值增加2.7倍提高TCP读缓冲区最大值
net.ipv4.tcp_wmem4096 16384 41943044096 87380 16777216最大值增加4倍提高TCP写缓冲区最大值
net.core.optmem_max20480409602倍提高套接字辅助缓冲区上限
net.ipv4.tcp_mem根据内存自动计算786432 1048576 1572864显式设置精确控制TCP内存使用
kernel.msgmnb655361310722倍提高消息队列的最大字节数
kernel.msgmax655361310722倍提高单个消息的最大字节数

网络性能和拥塞控制

参数默认值优化值变化比例影响
net.core.netdev_max_backlog1000262144262倍极大提高网络设备接收队列容量
net.ipv4.tcp_slow_start_after_idle10禁用防止空闲连接重启时的性能下降
net.ipv4.tcp_mtu_probing01启用提高网络路径MTU探测能力
net.ipv4.tcp_sack11不变保持选择性确认功能
net.ipv4.tcp_window_scaling11不变保持窗口缩放功能
net.ipv4.tcp_adv_win_scale系统计算1显式设置提供更精确的窗口缩放控制
net.ipv4.tcp_rfc133701启用防止TIME_WAIT状态的连接被攻击
net.ipv4.tcp_congestion_controlcubiccubic不变保持默认拥塞控制算法
net.ipv4.tcp_notsent_lowat未设置16384启用减少内存使用和延迟
net.ipv4.ip_forward01启用允许系统转发IP包

连接跟踪相关

参数默认值优化值变化比例影响
net.netfilter.nf_conntrack_max~65536300000045.8倍极大提高连接跟踪表容量
net.netfilter.nf_conntrack_buckets自动计算 (max/4)750000显式设置优化连接跟踪哈希表性能
net.netfilter.nf_conntrack_tcp_timeout_established432000 (5天)1800 (30分钟)99.6%减少大幅减少已建立连接的超时时间
net.netfilter.nf_conntrack_tcp_timeout_time_wait1203075%减少加速TIME_WAIT状态连接的释放
net.ipv4.conf.all.rp_filter10禁用关闭严格的反向路径过滤

其他系统限制

参数默认值优化值变化比例影响
vm.swappiness601083%减少大幅减少内存交换倾向
vm.max_map_count655302621444倍提高内存映射区域数量上限
kernel.panic05启用自动重启系统崩溃后5秒自动重启

ulimit调整

还需要调优ulimit数量,一般情况下都设置为65535,这里我的服务器基础性能高,所以给更大

vim /etc/security/limits.conf
# End of file
*               soft    nofile          1000000
*               hard    nofile          1000000
root            soft    nofile          1000000
root            hard    nofile          1000000

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词