Oracle Solaris カーネルのチューンアップ・リファレンスマニュアル

TCP/IP チューニング可能パラメータ

tcp_local_dack_interval (Solaris 10 リリース)

以前の Solaris リリースでは、このパラメータの範囲が誤って記載されていました。正しい範囲は 10 ミリ秒から 1 分です。

ip_forward_src_routed ip6_forward_src_routed (Solaris 10 リリース)

Solaris 9 リリースおよび Solaris 10 リリースではこれらのパラメータのデフォルト値が誤って記載されていました。正しいデフォルト値は無効です。

備考欄

IPv4 または IPv6 が、パケットをソース IPv4 ルーティングオプションを指定して転送するか、IPv6 ルーティングヘッダーを指定して転送するかを制御します。

デフォルト

1 (有効)

ip_multidata_outbound (Solaris 10 リリース)

このパラメータは、Solaris 10 リリースで、IP フラグメントをバッチ内でネットワークドライバに送信するように拡張されました。詳細は、ip_multidata_outboundを参照してください。

備考欄

ネットワークスタックが、転送時、一度に複数のパケットをネットワークデバイスドライバ宛てに送信できるようにします。

このパラメータを有効にすると、ホスト CPU の利用率またはネットワークスループット (あるいはこの両方) が向上し、パケットあたりの処理コストが減少します。

複数データ送信 (multidata transmit 、MDT) 機能は、この機能をサポートするデバイスドライバでのみ有効です。

tcp_mdt_max_pbufsも参照してください。

デフォルト

1 (有効)

範囲

0 (無効)、1 (有効)

動的か

はい

どのような場合に変更するか

このパラメータをデバッグやその他の目的で有効にする必要がない場合は、無効にします。

コミットレベル

変更の可能性あり

変更履歴

詳細は、ip_multidata_outbound (Solaris 9 リリース)」を参照してください。

ip_multidata_outbound (Solaris 9 リリース)

このパラメータの情報は、Solaris 9 8/03 リリース以後、大幅に変更されました。詳細は、ip_multidata_outboundを参照してください。

備考欄

このパラメータによりネットワークスタックは、転送時にネットワークデバイスドライバに対して一度に複数のパケットを送信できます。

このパラメータを有効にすると、ホスト CPU の利用率またはネットワークスループット (あるいはこの両方) が向上し、パケットあたりの処理コストが減少します。

複数データ送信 (multidata transmit 、MDT) 機能は、この機能をサポートするデバイスドライバでのみ有効です。

MDT パラメータを使用するには、/etc/system ファイル内で次のパラメータを有効にする必要があります。

set ip:ip_use_dl_cap = 0x1

デフォルト

無効

範囲

0 (無効)、1 (有効)

動的か

はい

どのような場合に変更するか

この機能はシステムパフォーマンスを向上させる目的でいつでも有効にできますが、次の点に注意します。

  • この機能を有効にすると、IP 層と DLPI プロバイダの間でパケットの形が変化することがあります。よって、ifconfigmodinsert 機能を使用して IP 層と DLPI プロバイダ間に動的に挿入されるサードパーティー製 STREAMS モジュールは、 MDT STREAMS データ形式を理解しないため、動作しない可能性があります。

    同様に、autopush(1m) 機構によって IP 層と DLPI プロバイダ間に挿入されるモジュールも、動作しない可能性があります。

  • STREAMS モジュールが MDT を認識しない場合は、この機能を無効にしてください。たとえば、ipfilter や Checkpoint Firewall-1 などのパブリックドメインユーティリティーは MDT を認識しません。

コミットレベル

変更の可能性あり

ip_squeue_fanout (Solaris 10 11/06 リリース)

Solaris 10 8/07 リリースで、ゾーン構成情報が追加されました。詳細は、ip_squeue_fanoutを参照してください。

ip_squeue_worker_wait (Solaris 10 11/06 リリース)

Solaris 10 8/07 リリースで、ゾーン構成情報が追加されました。詳細は、ip_squeue_worker_waitを参照してください。また、このパラメータは/etc/system ファイルに設定する TCP/IP パラメータ」に移動されました。

ip_soft_rings_cnt (Solaris 10 11/06 リリース)

Solaris 10 8/07 リリースで、ゾーン構成情報が追加されました。詳細は、ip_soft_rings_cntを参照してください。

ip_squeue_write (Solaris 10 リリース)

Solaris 10 リリースで、このパラメータに関する記述に誤りがありました。 これは削除されています。

tcp_conn_hash_size (Solaris 9 リリース)

このパラメータは Solaris 10 リリースで削除されました。

備考欄

すべての TCP 接続に対する TCP モジュールのハッシュテーブルサイズを制御します。

データ型

符号付き整数

デフォルト

512

範囲

512 から 1,073,741,824

暗黙的制約

この値には 2 のべき乗を指定すべきです。

動的か

いいえ。このパラメータはブート時にのみ変更できます。

検査

パラメータの値が 2 のべき乗でないと、一番近い 2 のべき乗に丸められます。

どのような場合に変更するか

何万に上る TCP 接続が継続的にあるシステムでは、この値をそれに応じて増やします。TCP は、デフォルト値で 2 〜 3 千のアクティブ接続までは十分にサポートできます。ハッシュテーブルのサイズを増やすと、それだけ多くのメモリーが必要になりますので、適切な値を指定するようにしてメモリーが不必要に使用されるのを防いでください。

コミットレベル

変更の可能性あり

tcp_wscale_always (Solaris 9 リリース)

このパラメータのデフォルト値は、Solaris 10 リリースで有効に変更されました。

備考欄

このパラメータが有効になっていると (デフォルトの設定)、ウィンドウスケールオプションの値が 0 の場合でも、TCP は常にウィンドウスケールオプションを指定して SYN セグメントを送信します。ウィンドウスケールオプションの指定された SYN セグメントを受信すると、パラメータが無効になっている場合でも、TCP は、ウィンドウスケールオプションを指定して SYN セグメントに応答します。オプションの値は受信ウィンドウサイズに従って設定されます。

ウィンドウスケールオプションについては、RFC 1323 を参照してください。

デフォルト

0 (無効)

範囲

0 (無効)、1 (有効)

動的か

はい

どのような場合に変更するか

ウィンドウスケールオプションをサポートしていない古い TCP スタックとの相互運用性の問題がある場合は、このパラメータを無効にしてください。

コミットレベル

変更の可能性あり

ipc_tcp_conn_hash_size (Solaris 9 リリース)

このパラメータは Solaris 10 リリースで削除されました。

備考欄

すべてのアクティブな (「確立済み (ESTABLISHED)」状態) TCP 接続に対して、IP モジュールのハッシュテーブルサイズを制御します。

データ型

符号なし整数

デフォルト

512

範囲

512 から 2,147,483,648

暗黙的制約

この値は 2 のべき乗を指定すべきです。

動的か

いいえ。このパラメータはブート時のみ変更することができます。

検査

パラメータの値が 2 のべき乗でないと、一番近い 2 のべき乗に丸められます。

どのような場合に変更するか

何万に上るアクティブ TCP 接続が継続的にあるシステムでは、この値をそれに応じて増やします。TCP は、デフォルト値で 2 〜 3 千までのアクティブ接続を十分にサポートできます。ハッシュテーブルのサイズを増やすと、それだけ多くのメモリーが必要になりますので、適切な値を指定するようにしてメモリーが不必要に使用されるのを防いでください。

コミットレベル

変更の可能性あり

tcp_compression_enabled (Solaris 9 リリース)

このパラメータは Solaris 10 リリースで削除されました。

備考欄

1 に設定すると、TIME-WAIT 状態の TCP接続のプロトコル制御ブロックが圧縮され、メモリー使用量が減ります。0 が設定されていると、圧縮は行われません。tcp_time_wait_interval も参照してください。

デフォルト

1 (有効)

範囲

0 (無効)、1 (有効)

動的か

はい

どのような場合に変更するか

圧縮機能はオフにしないでください。

コミットレベル

変更の可能性あり

ip_forwarding および ip6_forwarding (Solaris 9 リリース)

このパラメータは Solaris 10 リリースで旧式とされました。

備考欄

IP がインタフェース間で IPv4 転送を実行するのか、IPv6 転送を実行するのかを制御します。xxx:ip_forwarding (Solaris 9 リリース)」 も参照してください。

デフォルト

0 (無効)

範囲

0 (無効)、1 (有効)

動的か

はい

どのような場合に変更するか

IP 転送が必要な場合は、これを有効にします。

コミットレベル

変更の可能性あり

xxx:ip_forwarding (Solaris 9 リリース)

このパラメータは Solaris 10 リリースで旧式とされました。

備考欄

特定の xxx インタフェースに対して IPv4 転送を有効にします。このパラメータの正確な表記は interface-name:ip_forwarding です。たとえば、2 つのインタフェース hme0hme1 があるとします。対応するパラメータ名を示します。

hme0:ip_forwardinghme1:ip_forwarding

デフォルト

0 (無効)

範囲

0 (無効)、1 (有効)

動的か

はい

どのような場合に変更するか

IPv4 転送が必要な場合は、このパラメータを使用してインタフェースごとに転送を有効にします。

コミットレベル

変更の可能性あり

tcp_conn_req_max_q0 (Solaris 8 リリース)

「どのような場合に変更するか」の記述が最近の Solaris リリースでは下記から変更されました。

どのような場合に変更するか

極めて多くの接続要求を受信することがある Web サーバーのようなアプリケーションでは、着信頻度に応じてこのデフォルト値を増やすことができます。

tcp_conn_req_max_q0 と、各ソケットについて保留状態にある接続の最大数との関係は、次のとおりです。

接続要求を受信すると、TCP はまず、受け付けられるのを待っている保留状態の TCP 接続 (3 段階ハンドシェークが終わっている) の数 (N) が、そのリスナーに対する最大数を超えていないかをチェックします。接続数が超えていると、その要求は拒否されます。超えていなければ、TCP は、不完全な保留状態の TCP 接続の数が、Ntcp_conn_req_max_q0 の合計を超えていないかをチェックします。超えていなければ、その要求は受け付けられます。超えていると、最も古い不完全な保留状態の TCP 要求がドロップされます。

次のようになりました。

どのような場合に変更するか

極めて多くの接続要求を受信することがある Web サーバーのようなアプリケーションでは、着信頻度に応じてこのデフォルト値を増やすことができます。

tcp_conn_req_max_q0 と、各ソケットについて保留状態にある接続の最大数との関係は、次のとおりです。

接続要求を受信すると、TCP はまず、受け付けられるのを待っている保留状態の TCP 接続 (3 段階ハンドシェークが終わっている) の数が、そのリスナーに対する最大数 (N) を超えていないかをチェックします。接続数が超えていると、その要求は拒否されます。超えていなければ、TCP は、不完全な保留状態の TCP 接続の数が、N と tcp_conn_req_max_q0 の合計を超えていないかをチェックします。超えていなければ、その要求は受け付けられます。超えていると、最も古い不完全な保留状態の TCP 要求がドロップされます。