Loading...

Linux 連線數調校.

Temperature: 0 °C

蘇恆永 蘇恆永
最近常常遇到連線數太多(因為底層 WebService 太忙了).
web 最後連不上的問題.

後來 用這個指令
netstat -anl | grep 80 | awk '/^tcp/ {t[$NF]++}END{for(state in t){print state, t[state]} }'

檢查發現
LISTEN 2
FIN_WAIT1 4
FIN_WAIT2 113
ESTABLISHED 73
TIME_WAIT 566
SYN_RECV 1

停在 TIME_WAIT 的數目偏大了,

原本 linux 的 somaxconn 只有 1024,
所以等於只剩大約 300多個連線可以給客戶連.

查了好幾篇網路文件.
總算調好參數.
現在 sysctl.conf 裡面
net.core.somaxconn = 4096
net.core.netdev_max_backlog = 5000
net.ipv4.tcp_fin_timeout = 20
net.ipv4.tcp_keepalive_time = 1200
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 0
net.ipv4.tcp_tw_recycle = 0
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_max_tw_buckets = 5000
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.all.rp_filter = 1
net.ipv4.ip_local_port_range = 9000 64000


lighttpd.conf 裡面加上
server.max-fds = 2048

一切搞定

ps: 後來發現 net.ipv4.tcp_tw_reuse, net.ipv4.tcp_tw_recycle 如果打開,
在 NAT 後面會發生問題,
所以還是關掉比較好.

參考下列幾篇:
http://vincent.bernat.im/en/blog/2014-tcp-time-wait-state-linux.html
http://www.lognormal.com/blog/2012/09/27/linux-tcpip-tuning/

捷運科技大樓站 Go

https://innstory.com/story-Linux 連線數調校-399

About the Author

蘇恆永

重新 pickup 本能中

Visitor message

留下一些足跡證明你來拜訪過我

  • Chung

    Chung

    2015-04-28 04:36:22
    man,我依稀記得我也遇過類似的問題..

推薦閱讀

作者其他相關類別故事

實用的 netstat 查詢連線指令

實用的 netstat 查詢連線指令

以下是一些實用的 netstat 語法,可以檢查主機的連線數量: netstat na...

免費電子書下載

免費電子書下載

太晚看到了, 每天都有免費程式設計相關的電子書可以下載 https://www....

Python Pragmatic Unicode

Python Pragmatic Unicode

記錄一下 Python Pragmatic Unicode http://...

請選擇選項

執行錯誤

Hi,謝謝你的參與,但無法重複投票哦~

現在就加入innstory,開始紀錄你的故事。

「innstory」是一個儲存故事的地方,我們致力於成為一個有溫度的平台,加深人與人之間的羈絆是我們所努力的方向。
我們深信人與人間的區塊鏈不是只是冷冰冰的運算。現在就加入我們。