• 検索結果がありません。

TCPのチューニング

TCP

TCPのチューニング

HTTPサーバーのパフォーマンスの最適化 4-3

表表

4-2 パフォーマンス・ベンチマークのためのパフォーマンス・ベンチマークのためのパフォーマンス・ベンチマークのためのパフォーマンス・ベンチマークのためのHP-UXのチューニングのチューニングのチューニングのチューニング パラメータ

パラメータパラメータ

パラメータ スコープスコープスコープスコープ デフォルト値デフォルト値デフォルト値デフォルト値 チューニング後の値チューニング後の値チューニング後の値チューニング後の値 tcp_time_wait_interval ndd/dev/tcp 60,000 60,000

tcp_conn_req_max ndd/dev/tcp 20 1,024

tcp_ip_abort_interval ndd/dev/tcp 600,000 60,000 tcp_keepalive_interval ndd/dev/tcp 7,20,00,000 900,000 tcp_rexmit_interval_initial ndd/dev/tcp 1,500 1,500 tcp_rexmit_interval_max ndd/dev/tcp 60,000 60,000

tcp_rexmit_interval_min ndd/dev/tcp 500 500

tcp_xmit_hiwater_def ndd/dev/tcp 32,768 32,768 tcp_recv_hiwater_def ndd/dev/tcp 32,768 32,768

表 表表

4-3 Tru64 TCP/IPでチューニング可能な値でチューニング可能な値でチューニング可能な値でチューニング可能な値 パラメータ

パラメータパラメータ

パラメータ モジュールモジュールモジュールモジュール デフォルト値デフォルト値 チューニング後の値デフォルト値デフォルト値 チューニング後の値チューニング後の値チューニング後の値

tcbhashsize sysconfig -r inet 512 16,384

tcbhashnum sysconfig -r inet 1 16(5.0の場合)

tcp_keepalive_default sysconfig -r inet 0 1

tcp_sendspace sysconfig -r inet 16,384 65,535

tcp_recvspace sysconfig -r inet 16,384 65,535

somaxconn sysconfig -r socket 1,024 65,535

sominconn sysconfig -r socket 0 65,535

sbcompress_threshold sysconfig -r socket 0 600

TCPのチューニング

Linux Linux Linux

Linux でチューニング可能な設定 でチューニング可能な設定 でチューニング可能な設定 でチューニング可能な設定

Linux Linux Linux

Linux システム システム システム システム 2.1.100 2.1.100 2.1.100 2.1.100 以上でのネットワーク制約の拡張 以上でのネットワーク制約の拡張 以上でのネットワーク制約の拡張 以上でのネットワーク制約の拡張

Linuxでは、15ビットのTCPウィンドウ・フィールドのみを使用できます。 このため、すべ

てを2倍にするか、あるいはこの制約のないカーネルを再コンパイルする必要があります。

実行中のシステムのチューニング 実行中のシステムのチューニング 実行中のシステムのチューニング 実行中のシステムのチューニング

カーネル値を変更するためのsysctlアプリケーションは存在しません。 VIなどのエディタ を使用してカーネル値を変更できます。

デフォルトおよび最大サイズのチューニング デフォルトおよび最大サイズのチューニング デフォルトおよび最大サイズのチューニング デフォルトおよび最大サイズのチューニング

次にリストするファイルを編集してカーネル値を変更します。

表表表

4-4 AIX TCPパラメータ(コマンドを使用しない場合)パラメータ(コマンドを使用しない場合)パラメータ(コマンドを使用しない場合)パラメータ(コマンドを使用しない場合)

パラメータ パラメータパラメータ

パラメータ モデルモデルモデルモデル デフォルト値デフォルト値デフォルト値デフォルト値 推奨値推奨値推奨値推奨値

rfc1323 /etc/rc.net 0 1

sb_max /etc/rc.net 65,536 131,072

tcp_mssdflt /etc/rc.net 512 1,024

ipqmaxlen /etc/rc.net 50 100

tcp_sendspace /etc/rc.net 16,384 65,536

tcp_recvspace /etc/rc.net 16,384 65,536

xmt_que_size /etc/rc.net 30 150

関連項目 関連項目関連項目

関連項目: 4-5ページの「コンパイル時のチューニング」

表表表

4-5 Linux TCPパラメータパラメータパラメータパラメータ ファイル名

ファイル名ファイル名

ファイル名 詳細詳細詳細詳細

/proc/sys/net/core/rmem_default デフォルトの受信ウィンドウ /proc/sys/net/core/rmem_max 最大受信ウィンドウ

/proc/sys/net/core/wmem_default デフォルトの送信ウィンドウ /proc/sys/net/core/wmem_max 最大送信ウィンドウ

TCPのチューニング

HTTPサーバーのパフォーマンスの最適化 4-5 /proc/sys/net/ipv4/では、次に示すように、他にもTCPをチューニングできる部分が あります。

tcp_timestamps

tcp_windowscaling

tcp_sack

/Documentation/networking/ip-sysctl.txtには、TCPパラメータの簡単な説明が 記載されています。

コンパイル時のチューニング コンパイル時のチューニング コンパイル時のチューニング コンパイル時のチューニング

前述のTCPパラメータ値は、Linuxカーネルのソース・ディレクトリである

/LINUX-SOURCE-DIR/include/linux/skbuff.h内のヘッダー・ファイルで、すべてデ フォルト値が設定されています。

デフォルト値は次のとおりです。 これは実行時に設定可能です。

# ifdef CONFIG_SKB_LARGE

#define SK_WMEM_MAX 65535

#define SK_RMEM_MAX 65535

# else

#define SK_WMEM_MAX 32767

#define SK_RMEM_MAX 32767

#endif

Linuxカーネルのソース・ディレクトリ/LINUX-SOURCE-DIR/include/net/tcp.hの

MAX_WINDOW値は変更可能です。

#define MAX_WINDOW 32767

#define MIN_WINDOW 2048

MIN_WINDOWの定義により、TCPのパケット・ヘッダーで使用可能なウィンドウ・フィー ルドは15ビットに制限されます。

たとえば、40KBのウィンドウを使用する場合、rmem_defaultを40KBに設定するとしま

す。 スタックは、値が64KB未満であることを認識し、winshiftのネゴシエーションを行い

ません。 しかし、2番目のチェックにより、32KBしか確保されません。 このため、強制的に

winshift=1となるようにするには、rmem_default値を64KBより大きな値に設定する必要

があります。これにより、必要とする40KBを15ビットのみで表現できるようになります。

注意 注意注意

注意: ウィンドウの拡張を行わずに、ウィンドウに32768以上の値を割 り当てないでください。

TCPのチューニング

TCPスタックのチューニングにより、2Mbitのサテライト・リンク経由で1.5〜1.8Mbitの 間の最大スループットを実現できます(netperfで測定)。

関連したドキュメント