Go to main content
Oracle® Solaris 11.3 での TCP/IP ネットワーク、IPMP、および IP トンネルの管理

印刷ビューの終了

更新: 2016 年 11 月
 
 

TCP 受信バッファーサイズの変更

TCP 受信バッファーのサイズは、TCP プロパティー recv_buf (デフォルトでは 128K バイト) を使用して設定します。しかし、アプリケーションは利用可能な帯域幅を均等に使用しません。このため、接続待機時間に応じてデフォルトのサイズを変更する必要があります。たとえば、Oracle Solaris の Secure Shell 機能を使用すると、データストリームに対して追加のチェックサム処理や暗号化処理が実行されるため、帯域幅の使用量にオーバーヘッドが発生します。したがって、バッファーサイズを増やす必要がある可能性があります。同様に、一括転送を行うアプリケーションが帯域幅を効率的に使用できるようにするためにも、同じバッファーサイズ調整が必要です。

次のように、帯域幅遅延積 (BDP) を推定することで、使用する正しい受信バッファーサイズを計算できます。BDP は、使用可能な帯域幅に接続待機時間の値を乗算して算出します。

接続待機時間の値を取得するには、ping –s host コマンドを使用します。

適切な受信バッファーサイズは、BDP の値に近似します。ただし、帯域幅の使用量はさまざまな条件によって左右されます。インフラストラクチャーの共有や、帯域幅の使用で競合するアプリケーションとユーザーの数によって、その推定値は変化します。

次のように、バッファーサイズの値を変更します。

# ipadm set-prop -p recv_buf=value tcp

次の例は、バッファーサイズを 164K バイトに増やす方法を示しています。

# ipadm show-prop -p recv_buf tcp
PROTO PROPERTY   PERM CURRENT   PERSISTENT   DEFAULT  POSSIBLE
tcp   recv_buf   rw   128000       --        128000   2048-1048576

# ipadm set-prop -p recv_buf=164000 tcp

# ipadm show-prop -p recv_buf tcp
PROTO PROPERTY   PERM CURRENT   PERSISTENT   DEFAULT  POSSIBLE
tcp   recv_buf   rw   164000    164000       128000   2048-1048576

推奨されるバッファーサイズは状況によって異なるため、推奨設定値はありません。次の例では、固有の条件を持つネットワークごとに BDP に異なる値を設定しています。

バッファーサイズのデフォルト値が 128K バイトである標準的な 1G ビット/秒ローカルエリアネットワーク (LAN):
BDP = 128 MBps * 0.001 s = 128 kB
待機時間が 100 ミリ秒である架空の 1G ビット/秒広域ネットワーク (WAN):
BDP = 128 MBps * 0.1 s = 12.8 MB
欧州米国間リンク (uperf で帯域幅を測定)
BDP = 2.6 MBps * 0.175 = 470 kB

    BDP を計算できない場合は、次のガイドラインに従います。

  • LAN 経由の一括転送では、バッファーサイズのデフォルト値は 128K バイトで十分です。

  • ほとんどの WAN 配備では、受信バッファーサイズは 2M バイトの範囲内にすべきです。


Caution

注意  -  TCP 受信バッファーサイズを増やすと、多くのネットワークアプリケーションのメモリーフットプリントも増加します。