在centos上调整TCP sysctl

我有网站,在高峰时间得到更高的tcp超时,减慢位,这里有一些统计图

在这里输入图像说明

sysctl config 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 

任何想法我应该改变/添加到configuration?

我的第一个猜测是,你看到你的networking接收缓冲区sys.net.core.netdev_max_backlog ,在这种情况下,你可能想用sys.net.core.netdev_max_backlog sysctl来增加它们。

您可能会在TIME_WAIT看到很多丢失的连接,在这种情况下,您可能需要使用net.ipv4.vs.timeout_timewait删除超时。

这两个应该可以用netstat来识别。

你的应用程序的套接字缓冲区也可能太小, 您可以使用net.core.rmem_maxnet.core.wmem_maxnet.ipv4.tcp_rmem以及net.ipv4.tcp_wmem将它们碰撞。 但是,这可能并非如此,但是如果您获得了大量的stream量,您可能会发现增加这些套接字缓冲区队列大小可以帮助您处理stream量。

切记在更改每个值之前和之后进行测量。 我build议使用Google来了解他们的行为,以便更好地将其应用到您的用例。