すべてのプロダクト
Search
ドキュメントセンター

Alibaba Cloud Linux:TCP-RT設定

最終更新日:Oct 23, 2024

TCP-RTは、カーネルフッキングテクノロジーを使用してTCP接続上の要求と応答を識別し、要求受信時間やサービス処理時間などの情報をキャプチャするTCP監視ツールです。 TCP-RTは、HTTP/1.1 webサービス、MySQLサービス、Redisサービスなど、接続に1つの同時リクエストとレスポンスしか存在せず、カーネルバージョン4.19.91-21.al7以降のAlibaba Cloud Linux 2またはAlibaba Cloud Linux 3でのみ実行できるシナリオに適しています。 カーネルバージョン5.10.134-17以降を搭載したAlibaba Cloud Linux 3は、新しいバージョンのTCP-RTを提供します。これは、古いバージョンのTCP-RTのすべての機能を継承し、HTTPおよびTransport Layer Security (TLS) プロトコルのサポートを追加します。

説明

TCP-RTの旧バージョンと新バージョンとの間の機能の違いを含む内容を明確にするために、tcp_rt.koを使用して旧バージョンを示し、tcprtを使用して新バージョンを示す。 TCP-RTの古いバージョンと新しいバージョンは、使用方法が異なります。

  • tcp_rt.ko: カーネルモジュールとして使用されます。

  • tcprt: systemctlの構成ファイルと一緒に使用され、新しい機能を提供します。

tcprtの使用を推奨します。

TCP-RTの仕組み

次の図は、1つの同時リクエストとレスポンスを運ぶTCP接続にTCP-RTが使用されるさまざまなフェーズを示しています。

image

上の図では、ReqNはクライアントからサーバーに送信されたN番目のリクエストを示します。 要求は、ReqN-1およびReqN-2パケットからなる。 サーバが第1のパケットを受信した時点をT0として記録し、サーバが第2のパケットを受信した時点をT1として記録する。 サーバは、受信した要求を処理し、RspN-1およびRspN-2応答パケットをクライアントに送信する。 サーバが第1の応答パケットを送信する時点は、T2として記録される。 クライアントは、応答パケットを受信すると、肯定応答 (ACK) メッセージをサーバに送信する。 サーバが最終ACKメッセージを受信した時点はT3として記録される。

記録されたTCP-RTに基づいて、次の期間を計算できます。

  • upload_time: リクエストのアップロードに必要な時間。

  • process_time: サーバーがリクエストを処理するのに必要な時間。

    process_timeの値は、サーバが最後の要求パケットを受信したときに開始し、サーバが最初の応答パケットをクライアントに送信したときに終了する期間である。

  • download_time: データのダウンロードに必要な時間。

    download_timeの値は、サーバが第1の応答パケットをクライアントに送信するときに開始し、サーバがクライアントから最終ACKメッセージを受信するときに終了する期間である。 この期間は、大量の応答データをダウンロードするために不可欠である。

情報出力

TCP-RTは、カーネル空間でTCP関連のパラメータを収集し、パラメータファイルを生成します。 パラメタファイルの出力モードと出力时间を次の表に示します。

ファイルタイプ

出力モード

出力時間

ログファイル

ログファイルは、debugfsを使用して /sys/kernel/debug/tcp-rtディレクトリに生成されるrt-network-Log * ファイルです。 ログファイルには次の特徴があります。

  • ファイル名のサフィックスは、CPUコアのシリアル番号です。 たとえば、32コアサーバーによって生成されたログファイルの名前は、rt-network-log0からrt-network-log31です。

  • 各ログファイルのサイズは最大2 MBです。 ログファイルがサイズ制限を超えると、新しいデータを格納するために、最も古いデータがファイルから削除されます。

  • debugfsを使用して生成されるログファイルは、ワンタイムファイルです。 ワンタイムファイルからデータを読み込んだ後、データは削除されます。

  • T1: TCP接続では、タスクが完了して次のタスクが開始すると、タスクに関する情報が生成されます。 タスクは、要求と応答で構成されます。

  • T2: 接続が閉じられたときに情報が生成される。

    TCP-RTによってデータが生成された後、アプリケーション層は直ちにデータを読み取ることができる。

statsファイル

statsファイルは、/sys/kernel/debug/tcp-rtディレクトリ内のサーバーポート関連またはクライアントポート関連の統計に基づいて生成されるrt-network-statsファイルです。

統計ファイルは定期的に生成されます。 デフォルトでは、データは1分ごとに生成されます。

モードの解析

TCP-RTは複数の解析モードをサポートします。 ビジネス要件に基づいてTCP-RTの解析モードを設定できます。 詳細については、このトピックの「操作」セクションをご参照ください。

  • default: デフォルトモード。

    デフォルトモードでは、TCP-RTは通常のTCPストリームを追跡します。これは、HTTP、Redis、MySQLアプリケーションなどの要求応答プロトコルアプリケーションのストリームです。

  • http: HTTPモード、

    これはデフォルトモードで構築されています。 HTTPモードでは、TCP-RTはさらにラウンドトリップタイム (RTT) と輻輳ウィンドウをキャプチャし、Expect: 100-continueヘッダーとリクエストに対するレスポンスを含むHTTPリクエストを識別し、各Expect: 100-continueリクエストとレスポンスのペアをR.Cレコードとしてレポートします。 詳細については、このトピックの「出力形式」をご参照ください。

  • https: HTTPSモード、

    これはHTTPモードで構築されています。 HTTPSモードでは、TCP-RTは次のTLSパケットを解析します。

    • TLSハンドシェイク: TCP-RTは、TLS 1.2ハンドシェイクとTLS 1.3ハンドシェイクを識別し、ハンドシェイクのログを生成します。 詳細については、このトピックの「出力形式」をご参照ください。

      • 4ウェイTLS 1.2ハンドシェイクの場合、TCP-RTは2つのR.H. レコードを生成します。

      • 3ウェイTLS 1.3ハンドシェイクの場合、TCP-RTはR.Hのレコードを生成し、ハンドシェイク期間を報告します。

    • 通知通知パケットを閉じる: TCP-RTは、通知通知パケットを閉じるためのログにR.Aレコードを生成します。 詳細については、このトピックの「出力形式」をご参照ください。

説明

tcp_rt.koはデフォルトモードのみをサポートします。 tcp_rt.koの解析モードは設定できません。

出力フォーマット

説明

タスクのライフサイクルとTCP接続のライフサイクルは異なります。

  • タスクのライフサイクルは、要求と応答で構成されます。

  • TCP接続のライフサイクルには複数のタスクが含まれます。

ログファイル形式

ログファイルでは、レコードの各列が異なる情報セットに対応します。 サンプルのログファイルを次の図に示します。 image次のセクションでは、図に示すように、左から右へのパラメータについて説明します。

  • V6またはV7のバージョン番号。

    • V6: V6はデフォルトのバージョン番号です。

    • V7: Rレコードは、特定の構成において追加情報を含み得る。 Rレコードのバージョン番号はV7です。

      • HTTPまたはHTTPS解析モードでは、Rレコードは追加のフィールドで終わり、Rレコードのバージョン番号はV7です。

      • R.C、R.Z、R.A、R.H、R.Fレコードなどの拡張Rレコードのバージョン番号はV7です。 拡張形式のRレコードについては、次の表を参照してください。

  • シナリオレコード識別子。 有効値: R、E、W、N、およびP。

    • R: リクエストがローカルサーバーで受信され、レスポンスが送信されると、TCP接続のRレコードが生成されます。

    • E: TCP接続が閉じられたときにEレコードが生成されます。

    • W: データ伝送中にTCPコネクションがクローズされると、Wレコードが生成される。

    • N: データ受信中にTCPコネクションがクローズされると、Nレコードが生成される。

    • P: ローカルサーバーがピアサーバーに要求を送信し、応答が送信されると、TCP接続のPレコードが生成されます。

  • タスクの開始時刻の秒部分。

  • タスクの開始時間のマイクロ秒部分。

  • TCP接続のピアIPアドレス。

  • TCP接続のピアポート。

  • TCP接続のローカルIPアドレス。

  • TCP接続のローカルポート。

異なるシナリオでは、前述のパラメータの後に異なるパラメータが続きます。 下表に、各パラメーターを説明します。

シナリオレコード識別子

パラメーターの説明

R

Rレコードは、タスクの通常の開始と終了を記録します。 各TCP接続は、複数のRレコードを有することができる。

  • タスクによって送信されたデータの量。 単位はバイトです。

  • タスクの期間。 単位:マイクロ秒。

    持続時間は、第1の要求セグメントが受信される時点と、最終応答セグメントが肯定応答される時点との間の間隔である。

  • タスクの最小TCP RTT。 単位:マイクロ秒。

  • タスクによって再送信されたTCPセグメントの数。

  • タスクのシーケンス番号。 TCP接続が確立された後、最初のタスクのシーケンス番号は1です。

  • タスクのレイテンシ。 単位:マイクロ秒。

    レイテンシは、最終要求セグメントが受信された時点と、第1応答セグメントが送信された時点との間の間隔である。

  • タスクのリクエストセグメントを送信するためのレイテンシ。 単位:マイクロ秒。

    レイテンシは、第1の要求セグメントが受信された時点と、第1の要求セグメントが受信された時点との間の間隔である。

  • タスクが受信したデータ量。 単位はバイトです。

  • タスク中に不正受信が発生するかどうかを示します。 有効な値:

    • 1: タスク中に受信不能が発生します。

    • 0: タスク中に受信不可が発生しません。

  • タスク中に使用されるTCP最大セグメント長 (MSS) 。 単位はバイトです。

  • タスク終了時の平滑化されたRTT (SRTT) 。 このパラメーターは、HTTPまたはHTTPS解析モードで有効になります。 tcprtのみがHTTPおよびHTTPS解析モードをサポートしています。 HTTPまたはHTTPS解析モードのRレコードのバージョン番号はV7です。 単位:マイクロ秒。

  • タスクの最後の輻輳ウィンドウ。 このパラメーターは、HTTPまたはHTTPS解析モードでのみ有効です。 tcprtのみがHTTPおよびHTTPS解析モードをサポートしています。 HTTPまたはHTTPS解析モードのRレコードのバージョン番号はV7です。 単位: セグメント。

R.C

説明

tcprtのみがこのタイプのレコードをサポートしています。 このタイプのレコードのバージョン番号はV7です。

このタイプのレコードは、HTTPまたはHTTPS解析モードで生成することができ、Rレコードと同じフォーマットである。

R.Cレコードは、Expect: 100-continueリクエストとレスポンスのペアで構成されるタスクを記録します。 タスクにアプリケーションデータが含まれていません。

R.Z

説明

tcprtのみがこのタイプのレコードをサポートしています。 このタイプのレコードのバージョン番号はV7です。

このタイプのレコードは、HTTPS解析モードで生成することができ、Rレコードと同じフォーマットである。

R.Zレコードは、TLS 1.3 0 − RTTハンドシェイクに含まれるタスクを記録する。

R.A

説明

tcprtのみがこのタイプのレコードをサポートしています。 このタイプのレコードのバージョン番号はV7です。

このタイプのレコードは、HTTPS解析モードで生成することができ、Rレコードと同じフォーマットである。

R.Aレコードは、Close Notify Alertパケットを含むタスクを記録する。 このタスクは、アラートパケットの到着と最終応答パケットが送信される時点との間の間隔であるパケット処理時間を増加させるために、アラートパケットとしてカウントされない。

R.H

説明

tcprtのみがこのタイプのレコードをサポートしています。 このタイプのレコードのバージョン番号はV7です。

このタイプのレコードは、HTTPS構文解析モードで生成されてもよく、追加情報で終了してもよい。

R.Hレコードは、TLSハンドシェイクに含まれるタスクを記録します。 R.Hレコードが3ウェイTLS 1.3ハンドシェイクに含まれるタスクを記録する場合、そのレコードはハンドシェイク期間で終了します。

H <time> 形式で 単位:マイクロ秒。 例えば、H 151878は、ハンドシェイクが完了するのに151,878マイクロ秒を要することを示す。

R.F

説明

tcprtのみがこのタイプのレコードをサポートしています。 このタイプのレコードのバージョン番号はV7です。

このタイプのレコードは、first_frame機能を有効にした後に生成され、追加情報で終了する場合があります。 first_frame機能を有効にする方法については、このトピックの操作セクションを参照してください。

R.Fレコードは、タスクに関するバイトベースの完了時間統計を記録する。 TCP-RTは, 設定ファイルに定義されているバイト単位のしきい値ステップで各タスクのレスポンスストリームを分割し, 各ステップのデータ量をバイト単位で, 完了時間をマイクロ秒単位で計算し, 計算結果をR.Fレコードの末尾に追加します。

追加された計算結果は、F <n> [bytes time] 形式である。 例えば、F6 7240 214 63698 311 98436 358は、7,240バイト、63,698バイト、98,436バイトのデータ量と、各データ量の214マイクロ秒、311マイクロ秒、358マイクロ秒の完了時間とを示す。

P

Pレコードは、タスクの通常の開始および終了を記録する。 各TCP接続は、複数のPレコードを有することができる。 PはV6の新しいレコードタイプであり、クライアントからの要求情報を示します。 このレコードは、pportsまたはpports_rangeオプションが設定されている場合にのみ使用できます。

  • タスクによって送信されたデータの量。 単位はバイトです。

  • タスクの持続時間。ローカルサーバーがデータを送信する時点と、ローカルサーバーがピアエンドから最終応答を受信する時点との間の間隔です。 単位:マイクロ秒。

  • タスクの最小TCP RTT。 単位:マイクロ秒。

  • タスクによって再送信されたTCPセグメントの数。

  • タスクのシーケンス番号。 TCP接続が確立された後、最初のタスクのシーケンス番号は1です。

  • タスクのサービス時間。リクエストが送信されたときに開始され、最初のレスポンスが受信されたときに終了する期間です。 単位:マイクロ秒。

  • タスクに対する応答が受信される時間の量。これは、最初の応答パケットが受信された時点と、最後の応答パケットが受信された時点との間の間隔である。 単位:マイクロ秒。

  • タスクが受信した応答パケットの合計サイズ。 単位はバイトです。

  • タスク中に不正受信が発生するかどうかを示します。 有効な値:

    • 1: タスク中に受信不能が発生します。

    • 0: タスク中に受信不可が発生しません。

  • タスク中に使用されるTCP MSS。 単位はバイトです。

E

Eレコードは、閉じたTCP接続に関する情報を記録する。 pportsまたはpports_rangeオプションが設定されているかどうかに関係なく、各閉じられたTCP接続にはEレコードがあります。

  • 最後のタスクのシーケンス番号。

  • TCP接続ライフサイクル中に送信されたデータの量。 単位はバイトです。

  • TCP接続が応答を送信したが、ACKメッセージを受信していないデータの量。 値0は、このタイプのデータが存在しないことを示します。 単位はバイトです。

  • TCP接続ライフサイクル中に受信したデータの量。 単位はバイトです。

  • タスクによって再送信されたTCPセグメントの数。

  • TCP接続ライフサイクルにおける最小TCP RTT。 単位:マイクロ秒。

N

Nレコードは、タスクが応答セグメントを要求しているときに閉じられるTCP接続に関する情報を記録する。 各TCP接続は、0または1つのNレコードを有し得る。

  • 最後のタスクのシーケンス番号。

  • 最後のタスクの期間。 接続が閉じられているため、受信時間のみが利用可能です。 単位:マイクロ秒。

  • TCP接続ライフサイクル中に受信したデータの量。 単位はバイトです。

  • タスク中に不正受信が発生するかどうかを示します。 値1は、非順序受信が発生することを示し、値0は、非順序受信が発生しないことを示す。

  • タスク中に使用されるTCP MSS。 単位はバイトです。

W

Wレコードは、タスクが要求セグメントに応答するときに閉じられるTCP接続に関する情報を記録する。 各TCP接続は、0または1つのWレコードを有し得る。

  • 最終タスクの応答で送信されたデータの量。 単位はバイトです。

  • 最後のタスクの期間。 接続が閉じられているため、最後のタスクの応答プロセスは中断され、完了しません。 単位:マイクロ秒。

  • 最後のタスクの最小TCP RTT。 単位:マイクロ秒。

  • 最後のタスクによって再送信されたTCPセグメントの数。

  • 最後のタスクのシーケンス番号。

  • 最後のタスクのレイテンシ。 単位:マイクロ秒。

  • 最終タスクのリクエストセグメントを送信するためのレイテンシ。 単位:マイクロ秒。

  • 最後のタスクが応答を送信したが、ACKメッセージを受信していないデータの量。 値0は、このタイプのデータが存在しないことを示します。 単位はバイトです。

  • タスク中に不正受信が発生するかどうかを示します。 有効な値:

    • 1: タスク中に受信不能が発生します。

    • 0: タスク中に受信不可が発生しません。

  • 最後のタスク中に使用されるTCP MSS。 単位はバイトです。

説明
  • R.xレコードは拡張ログレコードです。 xは、前の表に示すように単一の文字または文字の組み合わせにすることができます。 例: R.AFR.AR.Fを示します。

  • R.AおよびR.Cレコードは、応答データボリュームに基づいており、いくつかのエラーを含む可能性があります。

  • 接続が期待どおりに閉じられた場合、最後のタスクによって送信されたデータ量からsnd_nxt値が差し引かれます。 タスクが完了した後にリセットパケットが受信され、リセットパケットが返されて接続が閉じられるなど、接続が異常に閉じられた場合、送信される実際のデータ量は表示された値より1バイト大きくなります。 ほとんどの場合、タスクによって送信されるデータ量に関連するパラメータ値は有効であり、エラーのマージンは1バイトだけです。

説明

次の期間は、このトピックの「TCP-RTの仕組み」セクションで説明されている時点に基づいて計算されます。

Rレコード (T3 - T0) 、upload_time (T1 - T0) 、およびprocess_time (T2 - T1) に記録された合計時間。 download_timeの値は、次の式を使用して計算できます。

download_time=合計時間-upload_time - process_time

統計ファイル形式

次のセクションでは、記録された左から右へのパラメータについて説明します。

  • レコードが生成されたタイムスタンプ。

  • 予約フィールドです。 有効値: all

  • ポート番号

  • Rレコードに記録されたタスクの平均期間。

  • Rレコードに記録されたタスクの平均レイテンシ。

  • 送信されたパケットに対するパケット損失のパーミレージとして表されるパケット損失率。

  • RTTの平均値。 単位:マイクロ秒。

  • タスクのパーミレージは、要求によって送信されたデータ内のすべてのタスクに関して閉じられました。

  • タスクによって送信されたデータの平均サイズ。

  • タスクのリクエストを送信するための平均レイテンシ。

  • タスクによって受信されたデータの平均量。

  • タスクの数。

tcprttcp_rt.koの比較

項目

tcprt

tcp_rt.ko

ログファイルを格納するパス

同一

ログフォーマット

tcprtは拡張形式のログをサポートし、元の形式のログと互換性があります。

機能管理

systemctl

modprobe/rmmod

機能の設定

設定ファイル:

/etc/tcprt-bpf/tcprt.yaml

モジュールパラメータ:

/sys/module/tcp_rt/parameters/*

支えられたオペレーティングシステム

カーネルバージョン5.10.134-17以降のAlibaba Cloud Linux 3

  • カーネルバージョン4.19.91-21.al7以降のAlibaba Cloud Linux 2

  • Alibaba Cloud Linux 3

サポートされた機能

  • デフォルト、HTTP、およびHTTPS解析モード

  • first_frame機能

デフォルトの解析モード

操作

ビジネスシナリオに基づいてTCP-RTを使用するには、次の操作を実行します。

  • tcprt

    カーネルバージョン5.10.134-17以降のAlibaba Cloud Linux 3

  • tcp_rt.ko

    • カーネルバージョン4.19.91-21.al7以降のAlibaba Cloud Linux 2

    • Alibaba Cloud Linux 3

説明

tcprtとtcp_rt.koは同じパスを使用してログファイルを保存します。 tcprtとtcp_rt.koを同時に使用することはできません。

tcprt

  • tcprtをインストールして設定します。

    1. tcprtをインストールします。

      sudo yum install -y tcprt
    2. tcprtを設定します。

      1. /etc/tcprt-bpf/tcprt.yamlファイルを開きます。

        sudo vim /etc/tcprt/tcprt.yaml
      2. Iキーを押してInsertモードに入り、ビジネス要件に基づいてパラメーターを設定します。

        グローバル、ポートごと、およびinitセクションでパラメーターを設定します。 下表に追加のパラメーターを示します。

        • global

          パラメーター

          説明

          有効値

          デフォルト値

          ピア

          ピアポートと一致するかどうかを指定します。

          • false: ローカルポートに一致します。

          • true: ピアポートに一致します。

          true/false

          なし

          統計

          統計ファイルの生成機能を有効にするかどうかを指定します。

          enable/disable

          disable

          stats_interval

          統計ファイルを生成する間隔。 単位は秒です。

          整数

          60

          first_frame_bytes

          バイトベースの完了時間統計のしきい値ステップ。 単位はバイトです。

          最大4つの整数のリスト

          なし

        • ポートごと

          ポートごとのセクションは、1つ以上の要素を含むことができる。 各要素はパラメータのリストで構成され、ポート構成を指定します。 デフォルトでは、ポートごとのセクションは空です。 各要素のパラメーターを次の表に示します。

          項目

          説明

          有効値

          デフォルト値

          port

          ポートまたはポート範囲。

          • 整数: 単一のポート番号を示します。

          • コンマ (,) で区切られた2つの整数: ポート範囲を示します。 フォーマット: <Start port number >,< End port number>

          なし

          ピア

          指定されたポートまたはポート範囲がピアポートと一致するかどうかを指定します。

          true/false

          グローバルセクションのpeerパラメーターの値

          モード

          プロトコル解析モード。 このパラメーターをデフォルトに設定すると、tcprtはtcp_rt.koと同じ方法でTCPストリームを解析します。

          デフォルト /http/https

          default

          first_frame

          バイトベースの完了時間統計を収集するfirst_frame機能を有効にするかどうかを指定します。

          enable/disable

          disable

        • init

          項目

          説明

          有効値

          デフォルト値

          log_buf_num

          ログファイルのサブバッファの数。

          整数

          8

          log_buf_size

          ログファイルのサブバッファのサイズ。 単位はバイトです。

          ログファイルの最大サイズは、次の式を使用して計算されます。log_buf_num × log_buf_size

          整数

          262144

          stats_buf_num

          統計ファイルのサブバッファの数。

          整数

          8

          stats_buf_size

          統計ファイルのサブバッファのサイズ。 単位はバイトです。

          統計ファイルの最大サイズは、次の式を使用して計算されます。stats_buf_num × stats_buf_size

          整数

          16384

      3. Escキーを押して :wqと入力し、enterキーを押してファイルを保存して閉じます。

      4. tcprtを起動して、設定ファイルを自動的に解析します。

        sudo systemctl start tcprt
      5. (オプション) システム起動時に実行するようにtcprtを設定します。

        sudo systemctl enable tcprt
  • tcprtをアンインストールします。

    sudo yum remove tcprt

    yを入力し、Enterキーを押してtcprtをアンインストールします。

tcprtのサンプル設定ファイル

  • グローバルセクションのpeerパラメーターをfalseに設定します。これは、ローカルポートが一致することを指定します。 2つのポート構成が追加されます。

    • ポート443: グローバルセクションでpeerパラメーター設定を使用し、HTTPS解析モードを有効にしてから、first_frame機能を有効にします。 バイトベースの完了時間統計のしきい値ステップを100バイト、2,000バイト、および20,000バイトに設定します。

    • 56789〜56800のポート範囲: デフォルトの解析モードを有効にし、ポート範囲がピアポートと一致するように指定します。

  • 統計ファイルの生成機能を無効にします。

  • ログファイルと統計ファイルのデフォルトのサブバッファ設定を使用します。

global:
  peer: false
  stats: disable
  stats_interval: 60
  first_frame_bytes: [100, 2000, 20000, 0]
per-port:
  -
    port: 443
    mode: https
    first_frame: enable
  -
    port: 56789,56800
    mode: default
    peer: true

init:
  log_buf_num: 8
  log_buf_size: 262144
  stats_buf_num: 8
  stats_buf_size: 16384
説明

バイトベースの完了時間は、ACKパケットを使用することによって測定される。 実際のデータ送信では、ACKパケットは、数十KBのデータなどの大量のデータに対応することがある。 ログに記録されたデータの量が、ログファイルに設定されたバイトのしきい値を超える場合があります。

tcp_rt.ko

  • tcp_rt.koモジュールをロードして設定します。

    次のいずれかの方法を使用して、モジュールをロードおよび構成できます。

    • モジュールをロードするときにパラメーターを設定します。

      1. モジュールをロードするために実行するコマンドでパラメーターを設定します。

        たとえば、tcp_rt.koモジュールを読み込むために実行する次のコマンドで、lportsパラメーターを80に設定します。

        sudo modprobe tcp_rt lports=80
      2. 設定が有効かどうかを確認します。

        sudo cat /sys/module/tcp_rt/parameters/lports
    • モジュールを読み込み、パラメーターを設定します。

      1. 次のコマンドを実行してモジュールをロードします。

        sudo modprobe tcp_rt
      2. モジュールが読み込まれたら、コマンドを実行して /sys/module/tcp_rt/parameters/ ファイルのパラメーターを設定します。

        たとえば、次のコマンドを実行して、ローカルポート80でリッスンするように /sys/module/tcp_rt/parameters/ fileのパラメーターを設定します。

        sudo sh -c 'echo 80 > /sys/module/tcp_rt/parameters/lports'

        設定が有効かどうかを確認します。

        sudo cat /sys/module/tcp_rt/parameters/lports

        次の表に、/sys/module/tcp_rt/parameters/ fileのパラメーターと、パラメーターを設定するために実行できるコマンドを示します。

        パラメーター

        説明

        デフォルト値

        コマンド

        統計

        統計ファイルを生成するかどうかを指定します。 有効な値:

        • 0: 統計ファイルを生成しません。

        • 1: 統計ファイルを生成します。

        0

        エコー0> 統計

        stats_interval

        統計ファイルを生成する間隔。 単位は秒です。

        60

        echo 60 > stats_interval

        lports

        データ収集に使用されるローカルサーバーポート。 最大6つのポートを指定できます。

        なし

        エコー80,800、8080 > lports

        pports

        TCP接続のピアポート。

        なし

        エコー80,800、8080 > pports

        lports_range

        ローカルサーバーのポート範囲。 <開始ポート番号>,<終了ポート番号> の形式でポート範囲を指定します。 たとえば、値80,100は80〜100のポート範囲を指定し、値1000,2000は1000〜2000のポート範囲を指定します。

        なし

        エコー80,100、1000,2000 >lports_range

        pports_range

        TCP接続のピアポート範囲。 <開始ポート番号>,<終了ポート番号> の形式でポート範囲を指定します。 たとえば、値80,100は80〜100のポート範囲を指定し、値1000,2000は1000〜2000のポート範囲を指定します。

        なし

        エコー80,100、1000,2000 >pports_range

        log_buf_num

        ログファイルのサブバッファの数。 ログファイルの最大サイズは、log_buf_num × 256 kの式を使用して計算されます。 このパラメーターは、モジュールをロードするときにのみ設定できます。

        8

        modprobe tcp_rt log_buf_num=10

        stats_buf_num

        統計ファイルのサブバッファの数。 統計ファイルの最大サイズは、次の式を使用して計算されます。stats_buf_num × 16 k。 このパラメーターは、モジュールをロードするときにのみ設定できます。

        8

        modprobe tcp_rt stats_buf_num=10

  • モジュールをアンインストールします。

    1. 次のコマンドを実行してtcp-rtモジュールを無効にし、新しい接続でTCP-RTを使用しないようにします。

      sudo echo 1 > /sys/kernel/debug/tcp-rt/deactivate
    2. 次のコマンドを実行して、tcp-rtモジュールを使用している接続がないかどうかを確認します。

      lsmod

      tcp-rtモジュールのUsed byの値がコマンド出力で0されている場合、tcp-rtモジュールを使用している接続はありません。

    3. tcp-rtモジュールを使用している接続がない場合は、次のコマンドを実行してtcp-rtモジュールをアンインストールします。

      sudo rmmod tcp_rt

よくある質問

ログファイルのサイズが関連するパラメーター値と異なる場合はどうすればよいですか?

ls -lコマンド出力などのコマンド出力に表示されるファイルサイズは、ファイルサイズに関連するパラメーター値よりも大きい場合があります。 これは問題ではありません。 ログファイルは、/sysの仮想ファイルシステムに保存されます。 ls -lコマンド出力のログファイルのサイズは、ファイル内のログの実際の容量ではなく、ログによって占有されるディスクストレージの実際の容量でもありません。 ls -lコマンド出力のログファイルのサイズは、増加し続けるログの累積ボリュームです。 ファイル内のログの実際のボリュームを表示するには、ログを別のファイルにリダイレクトします。

次の図は、ログを別のファイルにリダイレクトし、ログの実際のボリュームを表示する方法の例を示しています。 この例では、ログファイルサイズ関連パラメーターのデフォルト値は2 MBです。 catコマンドを実行してファイル内のログを別のファイルにリダイレクトすると、ログの実際の容量は予想どおり約2 MBであることがわかります。

image