現代のコンピューターの分野では、TCP/IP プロトコルがネットワーク通信の基礎です。オープンソース オペレーティング システムとして、Linux は多くの企業や組織で使用される優先オペレーティング システムとなっています。ただし、ネットワーク アプリケーションとサービスがビジネスの重要なコンポーネントになるにつれて、管理者は多くの場合、高速で信頼性の高いデータ転送を確保するためにネットワーク パフォーマンスを最適化する必要があります。
この記事では、Linux システムの TCP/IP パフォーマンスとネットワーク パフォーマンスを最適化することで、Linux システムのネットワーク伝送速度を向上させる方法を紹介します。この記事では、いくつかの必要な TCP パラメータと、それらを変更してネットワーク パフォーマンスを最適化する方法について説明します。この記事では、いくつかの一般的な CLI およびカーネル ツールを使用してシステム内のネットワーク パフォーマンスをチェックする方法も紹介し、いくつかのコード例を読者に提供します。
1. tcp tw_reuseを理解する
TCP 接続はコネクション指向の送信プロトコルであるため、新しい接続を作成するには IP アドレスとポートの組み合わせが異なる必要があります。クライアントとサーバーが閉じられた後、接続が最近作成された可能性があるときに Linux が一定時間待機している場合、TCP 接続の確立が試行されます。この期間は「TIME_WAIT」状態と呼ばれ、この状態の接続は再利用できません。この動作により、サーバーの TCP/IP パフォーマンスが低下する可能性があります。
この状況を回避するには、tw_reuse パラメーターを使用します。 tw_reuse を有効にすると、終了した接続を一定時間待たずに再利用できるようになります。このパラメータは、次のコマンドで有効にできます:
echo 1 >/proc/sys/net/ipv4/tcp_tw_reuse
2. TCP キープアライブ パラメータを適切に調整します
TCP キープアライブは、接続がまだアクティブであるかどうかを検出し、接続が原因で発生する問題を防ぐことができるメカニズムです。ネットワークの輻輳により、接続が失われます。 TCP キープアライブは、接続ステータスを定期的にチェックして、接続がまだアクティブであるかどうかを判断し、アクティブでない場合は接続を閉じます。
TCP キープアライブ パラメータを調整すると、送信パフォーマンスを向上させることができます。以下に 3 つの重要な TCP パラメータを示します。
1.tcp_keepalive_time
tcp_keepalive_time パラメータは、キープアライブ メッセージを送信する間隔を定義します。ネットワーク内のノードが応答しなくなった場合、キープアライブ メカニズムは接続の再確立を試みます。
デフォルト値は 7200 秒 (つまり 2 時間)です。
2.tcp_keepalive_intvl
tcp_keepalive_intvl パラメーターは、キープアライブ メッセージ送信後の再試行間隔を定義します。
デフォルト値は 75 秒です
3.tcp_keepalive_probes
tcp_keepalive_probes は、キープアライブ メッセージを送信する前に実行される TCP プローブの数を定義します。
デフォルト値は 9 倍です
これらのパラメータを変更して、TCP パフォーマンスを向上させることができます。上記の 3 つのパラメータを変更するコマンドは次のとおりです:
echo 600 >/proc/sys/net/ipv4/tcp_keepalive_time echo 30 >/proc/sys/net/ipv4/tcp_keepalive_intvl echo 5 >/proc/sys/net/ipv4/tcp_keepalive_probes
3. TCP ウィンドウ スケーリング オプションを有効にする
TCP ウィンドウ スケーリング (TCP ウィンドウ スケーリング) は、TCP ヘッダーを拡張してサポートするためのオプションです。高速インターネット。デフォルトでは、Linux カーネルは TCP ウィンドウ拡張オプションを自動的に有効にしますが、古いバージョンのカーネルを使用している場合は、このオプションを有効にする必要がある場合があります。
TCP ウィンドウ拡張オプションを有効にするコマンドは次のとおりです:
echo 1 >/proc/sys/net/ipv4/tcp_window_scaling
4. ifconfig を使用して MTU および MRU 値を調整します
MTU (最大伝送単位) ) は送信できるデータ パケットの最大サイズ、MRU (最大受信ユニット) は受信側が受信できる最大パケット サイズです。
MTU と MRU の値を変更すると、システムのネットワーク パフォーマンスを向上させることができます。 ifconfig コマンドを使用してこれらの値を変更できます。 MTU と MRU を変更するコマンドは次のとおりです:
ifconfig eth0 mtu 9000 ifconfig eth0 mru 9000
5. iperf3 を使用してネットワーク パフォーマンスをテストする
iperf3 は、トラフィック検出およびネットワーク サービス品質テスト ツールです。これは、管理者がシステムのネットワーク パフォーマンスを測定し、ネットワークの混雑を確認するのに役立ちます。 iperf3 を使用すると、チューニングのためのネットワークのボトルネックを迅速に発見できます。
まず、サーバー側で iperf3 を起動します。次のコマンドを使用すると、デフォルト ポートでリッスンする TCP サーバーを起動できます:
iperf3 -s
次に、クライアント上で iperf3 を実行して、ネットワーク情報のブロードキャスト速度をテストします。 TCP テストの場合は、次のコマンドを実行できます。
iperf3 -c <server-ip>
6. netstat コマンドを使用してネットワーク パフォーマンスを監視します。
netstat コマンドは、一般的に使用されるコマンド ライン ツールで、ネットワーク パフォーマンスを確認するために使用できます。 Linux システムのネットワーク接続と伝送パフォーマンス。
次のコマンドを使用して、Linux システムの TCP 接続の数とステータスを確認できます。
netstat -nat | grep -i "tcp.*established"
このコマンドは、現在確立されている TCP 接続の数を返します。確立される接続の数が増えると、システムの TCP/IP パフォーマンスが低下します。
7. sysctl を使用して TCP/IP パラメーターを表示する
sysctl は、カーネル パラメーターを管理する CLI ユーティリティです。これを使用して、TCP/IP パラメータを表示および変更できます。
TCP/IP パラメータを表示するコマンドは次のとおりです:
sysctl -a | grep tcp
次のコマンドを使用して、必要に応じてこれらのパラメータを変更できます:
sysctl -w <parameter=value>
たとえば、次のコマンドは、TCP スタックの最大メモリ圧縮サイズを変更します:
sysctl -w net.ipv4.tcp_mem='10000000 10000000 10000000'
8. tcpdump を使用してネットワーク トラフィックを監視します
tcpdump は、ネットワーク データ パケットをキャプチャするためのコマンド ライン ユーティリティ ツールです。これを使用してネットワーク トラフィックを監視し、ネットワーク障害やボトルネックを見つけることができます。
次のコマンドは、tcpdump コマンドを使用してインバウンドおよびアウトバウンドの TCP トラフィックをキャプチャするコマンドです:
tcpdump -i eth0 -vv tcp
その出力はファイルにリダイレクトされ、wireshark を使用して表示できます:
tcpdump -i eth0 -vv tcp -w <filename> wireshark <filename>
Linux システムのネットワーク パフォーマンスは、TCP/IP およびネットワーク パラメーターを適切に構成することで改善できます。この記事で説明する CLI およびカーネル ツールを使用すると、管理者はシステムのネットワーク パフォーマンスをより深く理解し、最適化できます。この記事では、管理者が TCP/IP パフォーマンスとネットワーク パフォーマンスを最適化する方法をより深く理解できるように、コード例を示します。
以上がLinux システムの TCP/IP パフォーマンスとネットワーク パフォーマンスを最適化する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。