在 centos 上调整 TCP sysctl

在 centos 上调整 TCP sysctl

我的网站在高峰时段 TCP 超时时间较长,速度会变慢,以下是一些统计图表

在此处输入图片描述

sysctl 配置 atm:

net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 68719476736
kernel.shmall = 4294967296

知道我应该改变/添加什么配置吗?

答案1

我的第一个猜测是,您看到网络接收缓冲区已满,在这种情况下,您可能需要使用 sysctl 来增加它们sys.net.core.netdev_max_backlog

您可能会看到很多断开的连接TIME_WAIT,在这种情况下您可能需要使用 来减少超时net.ipv4.vs.timeout_timewait

这两者都应该可以识别netstat

net.core.rmem_max您的应用程序的套接字缓冲区也可能太小;您可以使用、net.core.wmem_maxnet.ipv4.tcp_rmem和来增加它们net.ipv4.tcp_wmem。不过,情况可能并非如此,但如果您收到大量流量,您可能会发现增加这些套接字缓冲区队列大小有助于您处理流量。

记住在更改每个值之前和之后进行测量。我建议通过谷歌搜索来了解它们的行为,这样你就可以更好地将它们应用到你的用例中。

相关内容