Red Hat Training

A Red Hat training course is available for RHEL 8

53.6. カーネルによって破棄された TCP パケットおよびセグメントの詳細の表示

tcpdrop ユーティリティーを使用すると、管理者はカーネルによって破棄された TCP パケットおよびセグメントの詳細を表示できます。このユーティリティーを使用して、リモートシステムがタイマーベースの再送信を送信する可能性がある破棄されたパケットの高レートをデバッグします。ドロップされたパケットおよびセグメントの高レートは、サーバーのパフォーマンスに影響を与える可能性があります。

リソース集約型のパケットを取得およびフィルタリングする代わりに、tcpdrop ユーティリティーは eBPF 機能を使用してカーネルから直接情報を取得します。

手順

  1. 以下のコマンドを入力して、破棄された TCP パケットおよびセグメントの詳細表示を開始します。

    # /usr/share/bcc/tools/tcpdrop
    TIME     PID    IP SADDR:SPORT       > DADDR:DPORT   STATE (FLAGS)
    13:28:39 32253  4  192.0.2.85:51616  > 192.0.2.1:22  CLOSE_WAIT (FIN|ACK)
    	b'tcp_drop+0x1'
    	b'tcp_data_queue+0x2b9'
    	...
    
    13:28:39 1      4  192.0.2.85:51616  > 192.0.2.1:22   CLOSE (ACK)
    	b'tcp_drop+0x1'
    	b'tcp_rcv_state_process+0xe2'
    	...

    カーネルが TCP パケットとセグメントを破棄するたびに、tcpdrop は、破棄されたパッケージにつながるカーネルスタックトレースを含む接続の詳細を表示します。

  2. Ctrl+C を押して、追跡プロセスを停止します。

関連情報

  • 詳細は、man ページの tcpdrop(8) を参照してください。
  • tcpdrop および例の詳細は、/usr/share/bcc/tools/doc/tcpdrop_example.txt ファイルを参照してください。
  • tcpdrop(8) がカーネルにアップロードする eBPF スクリプトを表示するには、/usr/share/bcc/tools/tcpdrop --ebpf コマンドを使用します。