異常にwebの表示が遅くなった時の原因が TIME_WAIT の大量発生だった。PHP だと生じやすいなぁ。
CentOS 4.5 finall にて TIME_WAIT を短くするための方法。
-
状況</p>
- web と DB を別サーバでネットワーク経由のデータやりとり
- DB サーバ側は TIME_WAIT ほとんどなし
- web(phpで作ったもの) にて TIME_WAIT 多めに残る それでも 150セッションくらいか
- 確認
# netstat -an | grep -i time_
(状況確認)
# netstat -an | grep -i time_ | wc
(行数として確認)
- 作業
# cd /proc/sys/net/ipv4/
# more tcp_tw_recycle
# echo ‘1’ > tcp_tw_recycle
特に再起動などいらず即反映される。
重めなページを読み込ませつつ
# netstat -an | grep -i time_ | wc
を定期的に見れば数が減っていく速度が速いことが分かる。