Linuxサーバーではnetstat -tan | grep ESTABLISHED| wc -l
を使用できますが、これはwatch -n1
の高負荷サーバーでは機能しません。
サーバーがあまりビジーでない場合、または監視間隔が十分に長い場合、このようなアプローチはうまく機能します。しかし、高負荷サーバーの代替として何を推奨できますか?
次のコマンドを使用します。
ss -neopt state established
これは、TCP ESTABLISHED
状態のセッションのみを表示します。他のコマンドへのパイプは不要なので、超高速です。
古いss
は、ファイルロックの影響を受けるprocfsから読み取るだけなので、netstat
はnetstat
より優れています。 ss
は、カーネルスケジューラによって処理されるカーネル内で実際にクエリを実行し、常に正確な情報を返します。
ss
は優れたツールです。キックの場合は、次のこともできます。
[kbrandt@ny-kbrandt01: ~] cat /proc/net/snmp | grep Tcp | awk '{print $10}'
CurrEstab
3
プロトコルと状態ごとにフィルタリングできるlsofもあります。たとえば、TCP ESTABLISHED接続を探すには:
~# lsof -i tcp -s tcp:ESTABLISHED
その後|カウントするwc -l。注:接続の数が非常に多い場合は、このコストを試さなかった。