# 2018/1/28追記
私のエントリは長々書いていますが、次のurlが分かりやすくまとめられていますので、
こちらを参照する方が良い気がいます。
net.ipv4.tcp_tw_recycle は廃止されました ― その危険性を理解する - Qiita
あるサーバに対してsoap(http)で接続できない現象が発生した為、netstatしてみると、次のように大量のTIME_WAITが発生していました。
$ netstat Active Internet connections (w/o servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 localhost.localdom:5432 localhost.localdo:32776 ESTABLISHED tcp 0 0 localhost.localdom:5432 localhost.localdo:32804 ESTABLISHED <略> tcp 0 0 10.209.15.205:10050 139.154.172.150:46441 TIME_WAIT tcp 0 0 10.209.15.205:10050 139.154.172.150:55147 TIME_WAIT tcp 0 0 10.209.15.205:8080 10.209.15.204:60447 TIME_WAIT tcp 0 0 10.209.15.205:8080 10.209.15.204:60444 TIME_WAIT <略> ※200行以上のTIME_WAIT tcp 0 0 10.209.15.205:8080 10.209.15.204:60385 TIME_WAIT
「apache2.2の設定ファイル(httpd.conf)では、http 1.1のkeep aliveも有効にしているのになぜ?」と/etc/sysctl.conf を調べてみると、次のようになっていました。
旧 /etc/sysctl.conf
net.ipv4.ip_forward = 0 net.ipv4.conf.all.rp_filter = 1 kernel.sysrq = 0 net.ipv4.tcp_fin_timeout = 10
このような現象はよくあるものらしく、ググったページを参考にしながら、net.ipv4.tcp_〜 を追加すると、TIME_WAITやCLOSE_WAITは軽減されました。
参考にさせて頂いたurl
http://network.station.ez-net.jp/server/linux/network/time_wait.asp
http://d.hatena.ne.jp/d_sea/20080812/p1
新 /etc/sysctl.conf
net.ipv4.ip_forward = 0 net.ipv4.conf.all.rp_filter = 1 kernel.sysrq = 0 net.ipv4.tcp_fin_timeout = 2 net.ipv4.tcp_tw_recycle = 1 net.ipv4.tcp_keepalive_time = 20 net.ipv4.tcp_keepalive_probes = 4 net.ipv4.tcp_keepalive_intvl = 5
※ /etc/sysctl.conf の変更後、sysctl -pで編集内容をシステムに反映しましょう
※ 現状は落ち着いていますが、しばらくnetstatの値は観察した方が良さそう
その他の/etc/sysctl.conf の解説
今回は、net.ipv4.tcp_〜 の一部を追加編集しましたが、/etc/sysctl.conf の詳細は次のurlで分かりやすく解説されていました。
http://linux.mini13i.com/?kernel%2F%A5%B7%A5%B9%A5%C6%A5%E0%A5%D1%A5%E9%A5%E1%A5%BF#eb7b6f3c