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


12

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

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

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

サーバー障害群衆からの好みや経験のヒントはありますか?


3
私たちのWindowsオタクを追い払うために* nixのタグを追加してください
KevinH

回答:


7

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


2

私の最初の含意はnetstat -ptan、あなたが探しているすべての情報を提供することを使用することです。おそらくパイプを使用して並べ替えてuniqにします。以下は、適切な数のソケットステータスを示します。

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


1

dstatをチェックアウトして実行します:

% sudo dstat --tcp

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


おもしろいツール、残念ながらlinuxのみ(ただし当然のことながら)。ネットワーク情報を含むSARに似たものを見ることができてうれしいです(Linuxのsarバージョンにも表示されているようです)。
ericslaw

1

私はそれは本当に個人的な好みだと思う、少し微調整(および正しいコマンドオプション)を使用すると、どちらからもほぼ同じ情報を取得できます。

ただし、さまざまな状態の接続の数を監視する場合は、単一ショットのコマンドラインツールでは監視しません。私はあなたが時間をかけてそれを確認できるように、いくつかのトレンドを行うことができるものを利用したいと思います。muninのようなものは、時間とともにグラフ化されるため、非常に有用です(他の潜在的に有用なシステム統計を表示します)。

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


コマンドラインツールは収集専用です。ベースラインのデータを収集するポイントは、まさに適切なアプローチです。
ericslaw 2009
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.