我的网站在高峰时段 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_max
和net.ipv4.tcp_rmem
和来增加它们net.ipv4.tcp_wmem
。不过,情况可能并非如此,但如果您收到大量流量,您可能会发现增加这些套接字缓冲区队列大小有助于您处理流量。
记住在更改每个值之前和之后进行测量。我建议通过谷歌搜索来了解它们的行为,这样你就可以更好地将它们应用到你的用例中。