Macでネットの通信が遅い時にnetstatとlsofコマンド使って調べてみた
特定のMacBookAirだけなぜか、ネットワークが遅いという現象が発生していたので調べてみた時の見聞録です。
(大したことはしてないです・・・)
ネットワークにつながらない
「なんかネットワークに繋がらなくなっちゃたんだよね」と言われたので調べてみました。
この時考えたのは「DNSの設定がおかしいんじゃね?」ぐらいに思っていました。
原因調査
なんとなくまずは確認手順を考えました。
- ループバックアドレスにPING
- arpコマンドでイーサネット通信がただしく行われているか調べてみる
- 外のサーバにipアドレスを指定してPING
- 普通にドメイン名でPING
とりあえうこの段階調査しました。
ループバックアドレスにPING
ネットワーク・インタフェース周りがおかしいのかを調べるためにまずはループバックにping打ちました。
この段階では正常に帰ってきたので問題ない。
arpコマンドでイーサネット通信がただしく行われているか調べてみる
とりあえずarp -a
とかやっとけば、他の機器確認できるわけだし、ここで正常だったらデータリンク層でも問題がないと特定できると思います。
結果他の機器は認識できていたので問題なかったようです。
外のサーバにipアドレスを指定してPING
普通に自分のサーバにping打ってた元気なリプライが帰ってきたので、ネットワークに特に問題ない。
普通にドメイン名でPING
普通にリプライ帰ってきたのでここでも問題ない。
ネットワークがつながらないわけじゃなかった
話を聞くとどうやらネットワークに繋がらないじゃなくて、ブラウザにレンダリングされるのが遅いとのことだった・・・。(それはネットに繋がらないといわないお。。。)
まあそんなことはいいとして、まず最初に疑ったことは2つ。
- ブラウザのプラグインが悪さをしているんじゃないか?
- もしかしてTCPのコネクションの問題?
ブラウザのプラグインが悪さをしているんじゃないか?
最初は疑ったものの、2つのブラウザで同じ現象が確認できてたのでそれはないという結論にしました。
もしかしてTCPのコネクションの問題?
とりあえずTCPのコネクション数どれぐらいかなぁーとか思い調べてみました。
|
|
270超えてるコネクション数だったので、ちょっとおかしいなぁーと思いました。
サーバだったらまだしも普通のPCでこのコネクション数はおかしいという。
おそらくTCPのコネクション数が多くなっているいろいろな通信が走っているのではないかという結論になりました。
netstatで使っているポートからプロセスを調べる
怪しそうなコネクションが大量にあったので、どのプロセスが使っているのか調べようと考えました。
今回はnetstat
でLocal Addressのポートを調べて、lsof
でどのプロセスか特定する形です。
|
|
でここで55466
というポートがわかったので、次にlsof
を使って調べます。
|
|
この例の場合はTweetDeckのプロセス代わり出せたわけですが、このように調査出来るわけです。
で、調査した結果avastの挙動がおかしくなって大量にコネクションを貼っていたみたいです。
ウイルスソフト怖いです><
まとめ
Macではnetstat -p tcp
してlsof
でポート指定すれば、どのプロセスがどのポートを使っているか調べることできます。
ネットが遅いと思った時はこのような方法で調査してみるのはいかがでしょうか?
もっと良い方法がある場合は教えて下さいw