42.8. TCP 状態変更情報の表示
TCP セッション時に、TCP の状態が変わります。tcpstates
ユーティリティーは、eBPF 関数を使用してこれらの状態の変更を追跡し、各状態の期間を含む詳細を出力します。たとえば、tcpstates
を使用して、接続の初期化に時間がかかりすぎるかどうかを特定します。
手順
以下のコマンドを使用して、TCP 状態変更の追跡を開始します。
# /usr/share/bcc/tools/tcpstates SKADDR C-PID C-COMM LADDR LPORT RADDR RPORT OLDSTATE -> NEWSTATE MS ffff9cd377b3af80 0 swapper/1 0.0.0.0 22 0.0.0.0 0 LISTEN -> SYN_RECV 0.000 ffff9cd377b3af80 0 swapper/1 192.0.2.1 22 192.0.2.45 53152 SYN_RECV -> ESTABLISHED 0.067 ffff9cd377b3af80 818 sssd_nss 192.0.2.1 22 192.0.2.45 53152 ESTABLISHED -> CLOSE_WAIT 65636.773 ffff9cd377b3af80 1432 sshd 192.0.2.1 22 192.0.2.45 53152 CLOSE_WAIT -> LAST_ACK 24.409 ffff9cd377b3af80 1267 pulseaudio 192.0.2.1 22 192.0.2.45 53152 LAST_ACK -> CLOSE 0.376 ...
接続の状態が変更されるたびに、
tcpstates
は、更新された接続の詳細を含む新しい行を表示します。複数の接続が状態を同時に変更する場合は、最初の列 (
SKADDR
) のソケットアドレスを使用して、同じ接続に属するエントリーを判断します。- Ctrl+C を押して、追跡プロセスを停止します。
関連情報
-
tcpstates(8)
の man ページ -
/usr/share/bcc/tools/doc/tcpstates_example.txt
ファイル