tencent cloud

Cloud Virtual Machine

PAWSのパケットロス改善方法

PDF
フォーカスモード
フォントサイズ
最終更新日: 2025-11-13 17:57:25

背景

tcp_tw_recycleは、TIME-WAIT状態の接続を迅速に回収するために使用されます。しかし、特定の状況において、特にネットワークにNAT(ネットワークアドレス変換)が存在する場合、tcp_tw_recycleがPAWSパケットロスを引き起こす原因となるため、無効にすることをお勧めします。
以下は、tcp_tw_recycleを無効にし、tcp_tw_bucketを設定する手順について説明します。

操作手順

tcp_tw_recycleを無効にする

一時的に無効にする

sudo sysctl -w net.ipv4.tcp_tw_recycle=0

恒久的に無効にする

1. /etc/sysctl.confファイルを編集し、以下の行を追加または変更します:
net.ipv4.tcp_tw_recycle = 0
2. 次に、設定を有効にします:
sudo sysctl -p

tcp_tw_bucketを設定する

tcp_tw_bucketは、TIME-WAIT状態の接続バケットの数を設定するために使用されます。この値を増やすことで、システムが大量のTIME-WAIT状態の接続をより効果的に処理できるようになります。

一時的に設定

sudo sysctl -w net.ipv4.tcp_max_tw_buckets=4096

恒久的に設定

1. /etc/sysctl.confファイルを編集し、以下の行を追加または変更します:
net.ipv4.tcp_max_tw_buckets = 4096
2. 次に、設定を有効にします:
sudo sysctl -p

その他の最適化

前記の2つのパラメータ以外に、TCP接続処理の最適化に役立つ他のカーネルパラメータがあります:

ファイルディスクリプタ数の上限の増加

sudo sysctl -w fs.file-max=100000

システムで開けるファイル数の増加

/etc/security/limits.conf ファイルを編集し、以下の行を追加または変更します:
* soft nofile 65535
* hard nofile 65535

システムで確立できる接続数上限の増加

sudo sysctl -w net.core.somaxconn=65535

SYNキュー長の増加

sudo sysctl -w net.ipv4.tcp_max_syn_backlog=65535

TIME-WAIT状態のタイムアウト時間の短縮

sudo sysctl -w net.ipv4.tcp_fin_timeout=15

設定の検証

以下のコマンドを使用して、設定が有効になっているかを検証できます:
sysctl -a | grep tcp_tw
sysctl -a | grep file-max
sysctl -a | grep somaxconn
sysctl -a | grep tcp_max_syn_backlog
sysctl -a | grep tcp_fin_timeout

サービスの再起動

特定のサービス(Webサーバーやデータベースなど)を最適化する場合、新しいカーネルパラメータを有効化するため、そのサービスを再起動することをお勧めします。

ヘルプとサポート

この記事はお役に立ちましたか?

フィードバック