ネットワーク調査あれこれメモ①
会社でなんか変だぞーって調べてたときに打ったやつとか参考にした記事とか、何度か同じこと調べてるので残しておく。
誰の利にも別にならないことを書いておけるのは個人ブログの良いとこだと思う。
予定は無いけど②とか③とか生まれる気がするから①(YAGNI!!)
状態ごとの接続数
[hirapi@server ~]$ netstat -tan | awk '{print $6}' | sort | uniq -c 4 CLOSE_WAIT 88 ESTABLISHED 1 FIN_WAIT2 1 Foreign 12 LISTEN 2598 TIME_WAIT 1 established)
規定時間以上残っているTIME_WAIT
[hirapi@server ~]$ netstat -nato|egrep -c 'timewait. *\(0.00' 2001
半分以上わからなかったけどこちらのスライドありがたかった、kernel 3.Xだとうまく回収してくれないのね。。。
ついでにカーネルのバージョン確認は
[hirapi@server ~]$ cat /proc/version Linux version 2.6.32-358.el6.x86_64 (mockbuild@c6b8.bsys.dev.centos.org) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-3) (GCC) ) #1 SMP Fri Feb 22 00:31:26 UTC 2013 [hirapi@server ~]$ yum list installed | grep kernel dracut-kernel.noarch 004-409.el6_8.2 @updates kernel.x86_64 2.6.32-358.el6 @anaconda-CentOS-201303020151.x86_64/6.4 kernel.x86_64 2.6.32-696.18.7.el6 @updates kernel-devel.x86_64 2.6.32-642.4.2.el6 @updates kernel-devel.x86_64 2.6.32-696.18.7.el6 @updates kernel-firmware.noarch 2.6.32-696.18.7.el6 @updates kernel-headers.x86_64 2.6.32-696.18.7.el6 @updates
(開発環境だから……)
recycleとreuse
net.ipv4.tcp_tw_recycle は廃止されました ― その危険性を理解する - Qiita
ロードバランサの配下にある通信ではパケットに振られるタイムスタンプ(の前後関係)が実時間と一致しているかわからないため、タイムスタンプで新旧を判断するrecycleを有効にすると意図しない切断が起こる可能性がある、とのこと?
TCP関連のカーネルの設定ファイル
/etc/sysctl.conf
変更はこれ書き換えてから # sysctl -p
ローカルポートを広げる
接続数多すぎてなんか止まっちゃった、という時はローカルポートを使い切っている可能性を疑う。変更は↑↑の設定ファイルのここ
net.ipv4.ip_local_port_range = 20000 65500
ローカルポートを食いつぶしていた話 - ダウンロードたけし(寅年)の日記
サーバーとかネットワークとかぜんぜんわからずにアプリケーション書くと最後はこういうとこで詰まってお手上げになる。
平気で6万回もMySQLサーバーに繋ぐ画面なんて作らないでよ過去の人……。
とはいえちょっとだけ低レイヤー(?)に興味を持てた、Linuxとかネットワークとかちょこちょこ読書中。