hirapi's blog

ちゃんとしたふりをする

ネットワーク調査あれこれメモ①

会社でなんか変だぞーって調べてたときに打ったやつとか参考にした記事とか、何度か同じこと調べてるので残しておく。
誰の利にも別にならないことを書いておけるのは個人ブログの良いとこだと思う。
予定は無いけど②とか③とか生まれる気がするから①(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

TIME_WAITに関する話

半分以上わからなかったけどこちらのスライドありがたかった、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とかネットワークとかちょこちょこ読書中。