Centos

在 centos 上調整 TCP sysctl

  • May 16, 2017

我的網站在高峰時間獲得更高的 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

知道我應該更改/添加到配置嗎?

我的第一個猜測是您看到您的網路接收緩衝區已滿,在這種情況下您可能希望使用 sysctl.xml 增加它們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。不過,情況可能並非如此,但如果您獲得大量流量,您可能會發現增加這些套接字緩衝區隊列大小有助於您處理流量。

請記住在更改每個值之前和之後進行測量。我建議使用Google搜尋以了解他們的行為,以便您可以更好地將它們應用到您的案例中。

引用自:https://serverfault.com/questions/174094