web-dev-qa-db-ja.com

TCPサーバーの監視:netstatとlsofの比較?

私はボックス上のアプリケーションの問題を一般的に推測することを期待して、サーバー上のTCP=スタックを監視しています。

私の最初の傾向は、報告されたすべての状態(LISTEN、ESTABLISHED、FIN_WAIT2、TIME_WAITなど)のソケット数を測定し、いくつかの異常を検出することです。

チームメイトは、「lsof」がTCPスタックがどのような状態にあるかを確認するためのより良いツールになるだろうと示唆しています。

Serverfaultのユーザーからの好みや体験のヒントはありますか?

12
ericslaw

出力が実行されるすべてのプラットフォームで一貫しているため、私はlsofを好みます。ただし、両方のプログラムからほぼ同じ情報を取得できます。それは個人の好みによると思います。

7
Geoff Fritz

私の最初の含意はnetstat -ptanこれにより、探しているすべての情報が得られます。おそらくパイプでソートおよび一意化します。以下は、ソケットのステータスの適切な数を提供するはずです。

netstat -ptan | awk '{print $6 " " $7 }' | sort | uniq -c

2
Suroot

dstat を確認し、次のコマンドで実行します。

% Sudo dstat --tcp

さらに、出力を分析する場合は、-outputを使用してCSVに書き込むことができます。

1
Tim

少し微調整(および適切なコマンドオプション)を使用すると、どちらからもほぼ同じ情報を取得できるので、個人的な好みのほうが多いと思います。

ただし、さまざまな状態の接続数を監視する必要がある場合は、シングルショットのコマンドラインツールでは監視しません。時間をかけてレビューできるように、トレンド分析が可能なものを使用します。 muninのようなものは、時間の経過とともにグラフ化されるため、非常に便利です(他の潜在的に有用なシステム統計も表示されます)。

ボックス自体とそのパフォーマンスに関する詳細な情報(問題が発生しているときと発生していないときの両方)があれば、アプリケーションのトラブルシューティングは常に簡単です。

1