You need to enable JavaScript to run this app.
文档中心
云服务器

云服务器

复制全文
下载 pdf
Linux内核调优
在Linux操作系统中调优net.ipv4.tcp_max_tw_buckets参数配置
复制全文
下载 pdf
在Linux操作系统中调优net.ipv4.tcp_max_tw_buckets参数配置
本文主要介绍如何在Linux操作系统中,修改net.ipv4.tcp_max_tw_buckets参数的大小。​
关于net.ipv4.tcp_max_tw_buckets参数​
该参数用于控制系统中同时保持TIME_WAIT状态的socket连接最大数量,该值在默认情况下,大小为总内存(MB)*4。当实例中处于TIME_WAIT状态的连接数量超过最大数量时,内核将会关闭超出部分的TCP连接,并在/var/log/messages日志中提示告警信息TCP: time wait bucket table overflow。​
操作场景​
由于不同业务场景TCP连接数量不同,为避免资源浪费、业务受到影响,您可以按实际业务场景调整net.ipv4.tcp_max_tw_buckets参数值。​
  • 若业务中TCP连接数量大,需要存在较多TIME_WAIT状态的TCP连接时,您可以尝试增大本参数值。​
  • 若业务中处于TIME_WAIT状态的TCP连接数量异常多,导致系统执行缓慢,服务卡顿,甚至业务中断,您可以尝试减小本参数值。​
操作步骤​
步骤一:查询当前参数值​
在目标Linux实例中执行如下命令,查看系统当前配置的可同时处于TIME_WAIT状态TCP连接最大数量。​
​
cat /proc/sys/net/ipv4/tcp_max_tw_buckets​
​
回显示例如下,表示当前最大可同时存在5000个处于TIME_WAIT状态TCP连接。​
​​​
步骤二:查询可配置范围​
在目标Linux实例中执行如下命令,查询Linux随机分配端口的范围。​
说明​
Linux对外的随机分配端口理论最大值为65535,排除保留、被占用端口外,可用值约为60000,因此设置tcp_max_tw_buckets参数值的大小不应大于该范围值。​
​
cat /proc/sys/net/ipv4/ip_local_port_range​
​
回显示例如下,表示端口可用区间为[32768,60999],net.ipv4.tcp_max_tw_buckets参数配置可配置的理论最大值为 60999 - 32768 + 1 = 28238。​
​​​
步骤三:修改参数配置​
方式一:通过proc接口配置​
说明​
  • 本方式支持在系统运行中修改并生效配置,但重启操作系统后将失效,需要重新配置。​
  • 请将命令中20000,替换为您期望的可同时处于TIME_WAIT状态TCP连接最大数量。​
  1. 在目标Linux实例中执行如下命令,使用proc接口临时配置net.ipv4.tcp_max_tw_buckets参数值。​
  • ​
    echo 20000 > /proc/sys/net/ipv4/tcp_max_tw_buckets​
    ​
  1. 请执行如下命令,查看当前参数值。​
  • ​
    cat /proc/sys/net/ipv4/tcp_max_tw_buckets​
    ​
方式二:通过sysctl.conf文件配置​
说明​
  • 本方式支持在系统运行中修改并生效配置,且重启操作系统后将继续生效,无需重新配置。​
  • 请将命令中20000,替换为您期望的可同时处于TIME_WAIT状态TCP连接最大数量。​
  1. 在目标Linux实例中执行如下命令,打开sysctl.conf文件。​
  • ​
    vim /etc/sysctl.conf​
    ​
  1. 按i键进入编辑模式。​
  1. 在文件中修改net.ipv4.tcp_max_tw_buckets参数值。​
  • ​​​
  1. 按esc键,输入:wq按回车键,保存并退出文件。​
  1. 执行如下命令,使配置生效。​
  • ​
    sysctl -p​
    ​
  • ​​​
最近更新时间:2025.02.28 11:35:54
这个页面对您有帮助吗?
有用
有用
无用
无用