記憶加載中,請稍待...
蘇恆永
Norman 的雜七雜八
選擇大頭貼照
重新調整位置

Linux 連線數調校.

收藏小紙條

無法截取內容!!但仍舊可以收藏小紙條

2015-04-28 蘇恆永 98 1
最近常常遇到連線數太多(因為底層 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/
閱讀分類:Linux  網管  
捷運科技大樓站 Go
  • 這個地址也發生了其他 4 篇故事
    Linux 連線數調校. By 蘇恆永 實用的 netstat 查詢連線指令 By 蘇恆永 ankhsvn 使用非標準 ssh po ... By 蘇恆永 vmware 的 vm 網卡如何改成固定 ... By 蘇恆永

其他您可能會有興趣的故事

JuilinChung
2015-04-28 04:36:22
man,我依稀記得我也遇過類似的問題..
  • 回應
實用的netstat查詢連線指令
Welcome

須同意使用 Email 才可進入此頁面

須同意使用 姓名 才可進入此頁面

須同意使用 性別 才可進入此頁面

須同意應用程式才能使用Facebook帳號進入此頁面

請重新登入!

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

Hi,請選擇一個你認為的答案

錯誤的URL...

執行錯誤...

別忘了填寫欄位...

輸入格式錯誤...

Email已經有人使用...

請填寫Email...

請填寫正確的Email...

密碼裡需包含英文字及數字8至12...

確認密碼是否與密碼相同...

很抱歉 您並沒有權限!請確認您的帳號密碼 或請連絡我們

正在更新排序...

帳號已經存在!請確認您的帳號密碼 或請連絡我們...