JavaScript is required to for searching.
ナビゲーションリンクをスキップ
印刷ビューの終了
Oracle Solaris カーネルのチューンアップ・リファレンスマニュアル     Oracle Solaris 10 8/11 Information Library (日本語)
search filter icon
search icon

ドキュメントの情報

はじめに

1.  Oracle Solaris システムのチューニングの概要

2.  Oracle Solaris カーネルチューニング可能パラメータ

3.  NFS チューニング可能パラメータ

4.  インターネットプロトコル群のチューニング可能パラメータ

チューニング可能パラメータ情報の記載箇所

IP パラメータのチューニングの概要

IP パラメータの妥当性検査

RFC (Internet Request for Comments)

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

ip_icmp_err_interval ip_icmp_err_burst

ip_respond_to_echo_broadcast ip6_respond_to_echo_multicast

ip_send_redirectsip6_send_redirects

ip_forward_src_routed ip6_forward_src_routed

ip_addrs_per_if

ip_strict_dst_multihoming ip6_strict_dst_multihoming

ip_multidata_outbound

ip_squeue_fanout

ip_soft_rings_cnt

特別な注意を要する IP チューニング可能パラメータ

ip_ire_pathmtu_interval

ip_icmp_return_data_bytes ip6_icmp_return_data_bytes

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

tcp_deferred_ack_interval

tcp_local_dack_interval

tcp_deferred_acks_max

tcp_local_dacks_max

tcp_wscale_always

tcp_tstamp_always

tcp_xmit_hiwat

tcp_recv_hiwat

tcp_max_buf

tcp_cwnd_max

tcp_slow_start_initial

tcp_slow_start_after_idle

tcp_sack_permitted

tcp_rev_src_routes

tcp_time_wait_interval

tcp_ecn_permitted

tcp_conn_req_max_q

tcp_conn_req_max_q0

tcp_conn_req_min

tcp_rst_sent_rate_enabled

tcp_rst_sent_rate

tcp_mdt_max_pbufs

tcp_naglim_def

tcp_smallest_anon_port

tcp_largest_anon_port

/etc/system ファイルに設定する TCP/IP パラメータ

ipcl_conn_hash_size

ip_squeue_worker_wait

特別な注意を要する TCP パラメータ

tcp_keepalive_interval

tcp_ip_abort_interval

tcp_rexmit_interval_initial

tcp_rexmit_interval_max

tcp_rexmit_interval_min

tcp_rexmit_interval_extra

tcp_tstamp_if_wscale

tcp_recv_hiwat_minmss

UDP チューニング可能パラメータ

udp_xmit_hiwat

udp_recv_hiwat

udp_smallest_anon_port

udp_largest_anon_port

udp_do_checksum

特別な注意を要する UDP パラメータ

udp_max_buf

IPQoS チューニング可能パラメータ

ip_policy_mask

SCTP チューニング可能パラメータ

sctp_max_init_retr

sctp_pa_max_retr

sctp_pp_max_retr

sctp_cwnd_max

sctp_ipv4_ttl

sctp_heartbeat_interval

sctp_new_secret_interval

sctp_initial_mtu

sctp_deferred_ack_interval

sctp_ignore_path_mtu

sctp_initial_ssthresh

sctp_xmit_hiwat

sctp_xmit_lowat

sctp_recv_hiwat

sctp_max_buf

sctp_ipv6_hoplimit

sctp_rto_min

sctp_rto_max

sctp_rto_initial

sctp_cookie_life

sctp_max_in_streams

sctp_initial_out_streams

sctp_shutack_wait_bound

sctp_maxburst

sctp_addip_enabled

sctp_prsctp_enabled

sctp_smallest_anon_port

sctp_largest_anon_port

ルート別のメトリック

5.  ネットワークキャッシュとアクセラレータのチューニング可能パラメータ

6.  システム機能のパラメータ

A.  チューニング可能パラメータの変更履歴

B.  このマニュアルの改訂履歴

索引

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

tcp_deferred_ack_interval

説明

直接接続していないホストに対する TCP 遅延肯定応答 (ACK) タイマーのタイムアウト値を指定します。

RFC 1122 の 4.2.3.2 を参照してください。

デフォルト

100 ミリ秒

範囲

1 ミリ秒から 1 分

動的か

はい

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

このパラメータには、500 ミリ秒を超える値を設定しないでください。

次の場合は、値を増やします。

  • ネットワークリンクが遅く (57.6 Kbps 未満)、最大セグメントサイズ (MSS) が 512 バイトを超える

  • この間隔が複数のTCP セグメントを受信するには短すぎる

コミットレベル

変更の可能性あり

tcp_local_dack_interval

説明

直接接続しているホストに対する TCP 遅延肯定応答 (ACK) タイマーのタイムアウト値を指定します。

RFC 1122 の 4.2.3.2 を参照してください。

デフォルト

50 ミリ秒

範囲

10 から 500 ミリ秒

動的か

はい

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

このパラメータには、500 ミリ秒を超える値を設定しないでください。

次の場合は、値を増やします。

  • ネットワークリンクが遅く (57.6 Kbps 未満)、最大セグメントサイズ (MSS) が 512 バイトを超える

  • この間隔が複数のTCP セグメントを受信するには短すぎる

コミットレベル

変更の可能性あり

変更履歴

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

tcp_deferred_acks_max

説明

肯定応答 (ACK) が生成される前にリモート宛先 (直接接続していない) から受け取られる TCP セグメントの最大数を指定します。TCP セグメントは、個々の接続の最大セグメントサイズ (MMS) 単位で表されます。このパラメータに 0 か 1 を設定すると、すべてのセグメントが 1 MSS の長さであるとみなされ、遅延 ACK は使用されなくなります。実際の数は、接続ごとに動的に計算されます。この値はデフォルトの最大値です。

デフォルト

2

範囲

0 から 16

動的か

はい

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

この値は変更しないでください。ただし、遅延 ACK の影響でネットワークトラフィックが著しく混雑するような状況では、この値を減らします。ただし、2 より小さくしないでください。

コミットレベル

変更の可能性あり

tcp_local_dacks_max

説明

肯定応答 (ACK) が生成される前に宛先 (直接接続している) から受け取られる TCP セグメントの最大数を指定します。TCP セグメントは、個々の接続の最大セグメントサイズ (MMS) 単位で表されます。このパラメータに 0 か 1 を設定すると、すべてのセグメントが 1 MSS の長さであるとみなされ、遅延 ACK は使用されなくなります。実際の数は、接続ごとに動的に計算されます。この値はデフォルトの最大値です。

デフォルト

8

範囲

0 から 16

動的か

はい

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

この値は変更しないでください。ただし、遅延 ACK の影響でネットワークトラフィックが著しく混雑するような状況では、この値を減らします。ただし、2 より小さくしないでください。

コミットレベル

変更の可能性あり

tcp_wscale_always

説明

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

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

デフォルト

1 (有効)

範囲

0 (無効)、1 (有効)

動的か

はい

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

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

コミットレベル

変更の可能性あり

tcp_tstamp_always

説明

1 が設定されていると、TCP は常にタイムスタンプオプションを指定して SYN セグメントを送信します。TCP は、タイムスタンプオプションの指定された (0 の場合もある) SYN セグメントを受信すると、タイムスタンプオプションを指定して SYN セグメントに応答します。

デフォルト

0 (無効)

範囲

0 (無効)、1 (有効)

動的か

はい

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

往復時間 (RTT) や TCP シーケンス番号ラップアラウンドを正確に測定したい場合、有効にします。

このオプションを有効にする理由については、RFC 1323 を参照してください。

コミットレベル

変更の可能性あり

tcp_xmit_hiwat

説明

デフォルトの送信ウィンドウサイズをバイト数で指定します。ルートごとに異なる値を設定する方法については、後述の「ルート別のメトリック」を参照してください。tcp_max_bufも参照してください。

デフォルト

49,152

範囲

4096 から 1,073,741,824

動的か

はい

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

アプリケーションは setsockopt(3XNET) SO_SNDBUF を使って、送信バッファーを接続ごとに変更できます。

コミットレベル

変更の可能性あり

tcp_recv_hiwat

説明

デフォルトの受信ウィンドウサイズをバイト数で指定します。ルートごとに異なる値を設定する方法については、後述の「ルート別のメトリック」を参照してください。tcp_max_buftcp_recv_hiwat_minmss も参照してください。

デフォルト

49,152

範囲

2048 から 1,073,741,824

動的か

はい

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

アプリケーションは setsockopt(3XNET) SO_RCVBUF を使って、受信バッファーを接続ごとに変更できます。

コミットレベル

変更の可能性あり

tcp_max_buf

説明

最大バッファーサイズをバイト数で指定します。このパラメータは、setsockopt(3XNET) を使用するアプリケーションによって設定される送信バッファーサイズと受信バッファーサイズを制御します。

デフォルト

1,048,576

範囲

8192 から 1,073,741,824

動的か

はい

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

高速ネットワーク環境で TCP 接続を行う場合は、ネットワークリンクの速度に合わせて値を増やします。

コミットレベル

変更の可能性あり

tcp_cwnd_max

説明

TCP 輻輳ウィンドウ (cwnd) の最大値をバイト数で指定します。

TCP 輻輳ウィンドウについては、RFC 1122 と 2581 を参照してください。

デフォルト

1,048,576

範囲

128 から 1,073,741,824

動的か

はい

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

アプリケーションが setsockopt(3XNET) を使用してウィンドウサイズに tcp_cwnd_max より大きい値を設定しようとしても、使用される実際のウィンドウが tcp_cwnd_max を超えることはありません。したがって、tcp_max_buftcp_cwnd_max より大きくするべきです。

コミットレベル

変更の可能性あり

tcp_slow_start_initial

説明

輻輳ウィンドウ (cwnd) の初期サイズの最大値を TCP 接続の MSS 単位で指定します。

輻輳ウィンドウの初期サイズがどのように計算されるかについては、RFC 2414 を参照してください。

デフォルト

4

範囲

1 から 4

動的か

はい

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

この値は変更しないでください。

特殊な状況下で cwnd の初期サイズがネットワークの輻輳を招く場合は、この値を減らします。

コミットレベル

変更の可能性あり

tcp_slow_start_after_idle

説明

輻輳ウィンドウが 1 再送タイムアウト (RTO) の間アイドルにされた (セグメントをまったく受信しなかった) あとの輻輳ウィンドウのサイズを TCP 接続の MSS 単位で指定します。

輻輳ウィンドウの初期サイズがどのように計算されるかについては、RFC 2414 を参照してください。

デフォルト

4

範囲

1 から 16,384

動的か

はい

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

詳細は、tcp_slow_start_initialを参照してください。

コミットレベル

変更の可能性あり

tcp_sack_permitted

説明

2 が設定されていると、TCP は常に選択的肯定応答 (SACK) 許可オプションを指定して SYN セグメントを送信します。SACK 許可オプションとして値 1 が指定されている SYN セグメントを受信した場合、TCP は SACK 許可オプションを指定して応答します。値 0 が設定されている場合は、着信セグメントに SACK 許可オプションが指定されているかどうかにかかわらず、TCP は SACK 許可オプションを送信しません。

SACK オプションについては、RFC 2018 を参照してください。

デフォルト

2 (自発的に有効にする)

範囲

0 (無効)、1 (受動的に有効にする)、2 (自発的に有効にする) のいずれか

動的か

はい

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

SACK 処理を行うと TCP 再送のパフォーマンスが向上するため、自発的に有効にします。自発的に有効にすると相手方が混乱するおそれがある場合は、1 を設定します。この場合、SACK 処理は、着信接続で SACK 処理が許可されているときにのみ行われます。

コミットレベル

変更の可能性あり

tcp_rev_src_routes

説明

0 が設定されていると、TCP は、セキュリティー上の理由により、着信接続に対して IP ソースルーティングオプションを逆方向に使用しません。1 が設定されている場合は、通常どおりソースルーティングを逆方向に使用します。

デフォルト

0 (無効)

範囲

0 (無効)、1 (有効)

動的か

はい

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

診断のために IP ソースルーティングが必要な場合は、有効にします。

コミットレベル

変更の可能性あり

tcp_time_wait_interval

説明

TCP 接続を TIME-WAIT 状態に保つ時間をミリ秒で指定します。

RFC 1122 の 4.2.2.13 を参照してください。

デフォルト

600,000 (60 秒)

範囲

1 秒から 10 分

動的か

はい

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

この値は 60 秒より小さくしないでください。

このパラメータの変更方法については、RFC 1122 の 4.2.2.13 を参照してください。

コミットレベル

変更の可能性あり

tcp_ecn_permitted

説明

ECN (Explicit Congestion Notification、明示的輻輳通知) のサポートを制御します。

このパラメータが 0 に設定されていると、TCP は、ECN 機構をサポートしている接続先とのネゴシエーションを行いません。

接続開始時にこのパラメータが 1 に設定されていると、TCP は、ECN 機構をサポートしていることを接続先に通知しません。

ただし、接続先が SYN セグメントで ECN 機構をサポートしていることを示した場合、TCP は、新しい着信接続要求を受けた際に、ECN 機構をサポートしていることを接続先に通知します。

このパラメータを 2 に設定すると、TCP は接続を受け付けた時点で ECN 機構に関して接続先とネゴシエーションを行います。さらに、TCP は自発的な送信接続を行う際に、送信する SYN セグメント内で、ECN 機構をサポートしていることを示します。

ECN については、RFC 3168 を参照してください。

デフォルト

1 (受動的に有効にする)

範囲

0 (無効)、1 (受動的に有効にする)、2 (自発的に有効にする) のいずれか

動的か

はい

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

TCP は、ECN を利用して、輻輳制御の処理を効率化できます。ただし、この機構により、既存の TCP 実装やファイアウォール、NAT などのネットワークデバイスが混乱する場合もあります。混乱するデバイスは IETF 非準拠です。

これらのデバイスを考慮し、このパラメータのデフォルト値は 1 に設定されています。ただし、まれに、受動的に有効にした場合でも問題が生じる場合があります。必要がある場合以外は、パラメータを 0 に設定しないでください。

コミットレベル

変更の可能性あり

tcp_conn_req_max_q

説明

accept(3SOCKET) によって受け付けられるのを待っている TCP リスナーの、保留状態の TCP 接続のデフォルトの最大数を指定します。tcp_conn_req_max_q0も参照してください。

デフォルト

128

範囲

1 から 4,294,967,295

動的か

はい

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

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

このパラメータに著しく大きい値を設定しないでください。保留状態の TCP 接続はメモリーを過剰に使用することがあります。さらに、保留状態の TCP 接続の数が多すぎて、アプリケーションが接続要求を適時に処理できない場合は、新しい着信要求が拒否されることがあります。

tcp_conn_req_max_q を増やしても、アプリケーションでそれだけの数の保留状態の TCP 接続を持てるとは限りません。アプリケーションでは、listen(3SOCKET) を使用して、保留状態の TCP 接続の最大数をソケットごとに変更できます。このパラメータは、アプリケーションが listen() を使用して設定できる最大値を表します。つまり、このパラメータに非常に大きな値を設定しても、あるソケットに対する実際の最大数は、listen() に指定された値によっては tcp_conn_req_max_q よりもはるかに少ないことがあります。

コミットレベル

変更の可能性あり

tcp_conn_req_max_q0

説明

単一の TCP リスナーが持つことができる、不完全な (3 段階ハンドシェークがまだ終わっていない) 保留状態の TCP 接続のデフォルトの最大数を指定します。

TCP の 3 段階ハンドシェークについては、RFC 793 を参照してください。tcp_conn_req_max_qも参照してください。

デフォルト

1024

範囲

0 から 4,294,967,295

動的か

はい

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

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

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

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

コミットレベル

変更の可能性あり

tcp_conn_req_min

説明

受け付けられるのを待っている、単一のリスナーの保留状態の TCP 接続の最大数のデフォルトの最小値。これは、1 つのアプリケーションが使用できる listen(3SOCKET) のもっとも小さい最大値です。

デフォルト

1

範囲

1 から 1024

動的か

はい

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

このパラメータにより、listen(3SOCKET) を使用するアプリケーションが保留状態の TCP 接続の最大数を過度に小さく設定するのを防ぐことができます。この値は、着信接続要求の頻度に応じて増やすことができます。

コミットレベル

変更の可能性あり

tcp_rst_sent_rate_enabled

説明

このパラメータに 1 が設定されている場合、RST セグメントの最大送信速度は、ndd パラメータ tcp_rst_sent_rate によって制御されます。このパラメータに 0 が設定されている場合、RST セグメントの送信時に速度を制御することはできません。

デフォルト

1 (有効)

範囲

0 (無効)、1 (有効)

動的か

はい

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

このチューニング可能パラメータは、RST セグメントの送信速度を制限することで、TCP に対するサービス拒否攻撃を防止します。この速度制御は、RFC 793 に厳密に準拠する必要がある場合にのみ、無効になります。

コミットレベル

変更の可能性あり

tcp_rst_sent_rate

説明

TCP が 1 秒間に送信できる最大 RST セグメント数を設定します。

デフォルト

40

範囲

0 から 4,294,967,295

動的か

はい

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

TCP 環境では、正当な理由により、デフォルト値より多くの RST が生成される場合があります。このような場合は、このパラメータのデフォルト値を引き上げます。

コミットレベル

変更の可能性あり

tcp_mdt_max_pbufs

説明

TCP によって生成される、1 つの M_MULTIDATA メッセージで伝達できるペイロードバッファーの数を指定します。ip_multidata_outboundも参照してください。

デフォルト

16

範囲

1 から 16

動的か

はい

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

このパラメータを減少させると、TCP によって生成される M_MULTIDATA メッセージごとのペイロードバッファーの量を制限し、デバイスドライバ開発のデバッグに役立つことがあります。

コミットレベル

変更の可能性あり

tcp_naglim_def

説明

このパラメータは、Nagle アルゴリズムのしきい値を制御します。TCP は、このパラメータの最小値と接続の MSS を使用して、Nagle アルゴリズムが機能するタイミングを判断します。たとえば、新しいデータの量が 1 MSS を超える場合、そのデータはこのパラメータの値に関係なく送出されます。このパラメータが 1 に設定されている場合、すべての TCP 接続で Nagle は無効になります。

デフォルト

4,096

範囲

1 から 65,535

動的か

はい

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

データを遅延なしに送信する必要があるリアルタイムのアプリケーションでは、高速伝送を必要とするソケットに対して、tcp_naglim_def パラメータを設定するのではなく、setsockopt() を使って TCP_NODELAY を 1 に設定するようにしてください。

コミットレベル

変更の可能性あり

変更履歴

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

tcp_smallest_anon_port

説明

このパラメータは、TCP が一時的なポートとして選択できる最小ポート番号を制御します。アプリケーションでは、指定されたプロトコルを使って接続を作成する際に、ポート番号を指定しないで一時的なポートを使用することができます。一時的なポートは、特定のアプリケーションに関連付けられていません。接続が閉じられると、ポート番号を別のアプリケーションで再利用することができます。

単位

ポート番号

デフォルト

32,768

範囲

1,024 から 65,534

動的か

はい

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

より広範囲の一時的なポートが必要な場合。

コミットレベル

変更の可能性あり

変更履歴

詳細は、[tcp,sctp,udp]_smallest_anon_port [tcp,sctp,udp]_largest_anon_port (Solaris 10 リリース)」を参照してください。

tcp_largest_anon_port

説明

このパラメータは、TCP が一時的なポートとして選択できる最大ポート番号を制御します。アプリケーションでは、指定されたプロトコルを使って接続を作成する際に、ポート番号を指定しないで一時的なポートを使用することができます。一時的なポートは、特定のアプリケーションに関連付けられていません。接続が閉じられると、ポート番号を別のアプリケーションで再利用することができます。

単位

ポート番号

デフォルト

65,535

範囲

1,024 から 65,535

動的か

はい

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

より広範囲の一時的なポートが必要な場合。

コミットレベル

変更の可能性あり

変更履歴

詳細は、[tcp,sctp,udp]_smallest_anon_port [tcp,sctp,udp]_largest_anon_port (Solaris 10 リリース)」を参照してください。

/etc/system ファイルに設定する TCP/IP パラメータ

次のパラメータは、/etc/system ファイル内でのみ設定できます。ファイルを変更したあとで、システムをリブートしてください。

たとえば、次のエントリでは ipcl_conn_hash_size パラメータを設定します。

set ip:ipcl_conn_hash_sizes=value

ipcl_conn_hash_size

説明

IP によって使用される接続ハッシュテーブルのサイズを制御します。デフォルト値 0 の場合、システムは、使用可能なメモリー容量に基づいて、ブート時にこのパラメータの適切な値を自動的に決定します。

データ型

符号なし整数

デフォルト

0

範囲

0 から 82,500

動的か

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

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

常に非常に大量の TCP 接続が確立されているシステムでは、それに応じてこの値を増やすことができます。ハッシュテーブルサイズを大きくすると、より多くのメモリーが消費され、ユーザーアプリケーション用として提供できるメモリーの量が減ります。

コミットレベル

変更の可能性あり

ip_squeue_worker_wait

説明

TCP/IP パケットを squeue に格納して処理するワークスレッドが起動するまでの最大遅延時間を制御します。squeue は TCP/IP カーネルコードが TCP/IP パケット処理に使用する直列化キューです。

デフォルト

10 ミリ秒

範囲

0 から 50 ミリ秒

動的か

はい

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

遅延が発生しないほうが望ましく、かつ、ネットワークトラフィックが少ない場合。たとえば、対話型ネットワークトラフィックの大部分がマシンで処理されている場合など。

ネットワークファイルサーバー、Web サーバーなど、実際にネットワークトラフィックが発生しているすべてのサーバーでは、通常、デフォルト値が最適です。

ゾーン構成

このパラメータを設定できるのは、大域ゾーン内だけです。

コミットレベル

変更の可能性あり

変更履歴

詳細は、ip_squeue_worker_wait (Solaris 10 11/06 リリース)」を参照してください。

特別な注意を要する TCP パラメータ

次のパラメータの変更は非推奨です。

tcp_keepalive_interval

説明

この ndd パラメータは、システム全体で TCP 接続がアイドル状態になってから最初にプローブが送信されるまでの間隔を設定します。

Oracle Solaris は、RFC 1122 に説明されている TCP キープアライブメカニズムをサポートしています。この機構は、TCP ソケットで SO_KEEPALIVE ソケットオプションを設定することで有効になります。

ソケットで SO_KEEPALIVE が有効な場合、TCP 接続が 2 時間 (tcp_keepalive_interval パラメータのデフォルト値) アイドル状態になると最初のキープアライブプローブが送信されます。ピアがプローブに 8 分間応答しない場合、TCP 接続が終了します。

また、個々のアプリケーションに TCP_KEEPALIVE_THRESHOLD ソケットオプションを使用してデフォルトの間隔を置き換えれば、各アプリケーションがソケットごとに独自の間隔を持つようにできます。オプションの値は、ミリ秒単位の符号なし整数です。tcp(7P) のマニュアルページも参照してください。

デフォルト

2 時間

範囲

10 秒から 10 日

単位

符号なし整数 (ミリ秒)

動的か

はい

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

この値は変更しないでください。この値を小さくすると、不必要なネットワークトラフィックが生じる可能性があるとともに、ネットワークの一時的な問題のために未完了のまま接続が終了してしまう可能性も高くなります。

コミットレベル

変更の可能性あり

tcp_ip_abort_interval

説明

TCP 接続に対するデフォルトの合計再送タイムアウト値をミリ秒で指定します。ある TCP 接続で、TCP が tcp_ip_abort_interval の間再転送を行なっても、この間に相手側のエンドポイントから肯定応答をまったく受け取らないと、この接続は閉じられます。

TCP 再送タイムアウト(RTO) の計算については、RFC 1122 の 4.2.3 を参照してください。tcp_rexmit_interval_max も参照してください。

デフォルト

8 分

範囲

500 ミリ秒から 1193 時間

動的か

はい

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

この値は変更しないでください。例外については、tcp_rexmit_interval_maxを参照してください。

コミットレベル

変更の可能性あり

tcp_rexmit_interval_initial

説明

TCP 接続に対するデフォルトの初期再送タイムアウト値をミリ秒で指定します。ルートごとに異なる値を設定する方法については、後述の「ルート別のメトリック」を参照してください。

デフォルト

3 秒

範囲

1 ミリ秒から 20 秒

動的か

はい

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

この値は変更しないでください。この値を小さくすると、不要な再転送が行われるおそれがあります。

コミットレベル

変更の可能性あり

tcp_rexmit_interval_max

説明

デフォルトの最大再送タイムアウト値 (RTO) をミリ秒で指定します。すべての TCP 接続に対して、計算された RTO がこの値を超えることはできません。tcp_ip_abort_interval も参照してください。

デフォルト

60 秒

範囲

1 ミリ秒から 2 時間

動的か

はい

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

通常のネットワーク環境では、この値を変更しないでください。

単一の接続の往復時間 (RTT) が 10 秒程度になるような特別な状況では、この値を増やすことができます。この値を変更する場合は、合わせて tcp_ip_abort_interval パラメータも変更するべきです。tcp_ip_abort_interval には、tcp_rexmit_interval_max の 4 倍以上の値を指定します。

コミットレベル

変更の可能性あり

tcp_rexmit_interval_min

説明

デフォルトの最小再送タイムアウト値 (RTO) をミリ秒で指定します。すべての TCP 接続に対して、計算された RTO がこの値を下回ることはできません。tcp_rexmit_interval_maxも参照してください。

デフォルト

400 ミリ秒

範囲

1 ミリ秒から 20 秒

動的か

はい

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

通常のネットワーク環境では、この値を変更しないでください。

TCP の RTO 計算は、RTT のもっとも大きい変動に対処できます。単一の接続の往復時間 (RTT) が 10 秒程度になるような特別な状況では、この値を増やすことができます。この値を変更する場合は、合わせて tcp_rexmit_interval_max パラメータも変更するべきです。tcp_rexmit_interval_max には、tcp_rexmit_interval_min の 8 倍以上の値を指定します。

コミットレベル

変更の可能性あり

tcp_rexmit_interval_extra

説明

計算された再送タイムアウト値 (RTO) に追加する定数をミリ秒で指定します。

デフォルト

0 ミリ秒

範囲

0 から 2 時間

動的か

はい

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

この値は変更しないでください。

計算された RTO が接続に対して適切でない場合は、不要な再転送を避けるためにこの値を変更することができます。

コミットレベル

変更の可能性あり

tcp_tstamp_if_wscale

説明

このパラメータに 1 が設定され、かつ、ある接続に対するウィンドウスケールオプションが有効になっていると、TCP は、その接続の timestamp オプションも有効にします。

デフォルト

1 (有効)

範囲

0 (無効)、1 (有効)

動的か

はい

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

この値は変更しないでください。一般に、TCP を高速ネットワークで使用する場合は、シーケンス番号のラップアラウンドに対する保護が必要になります。この場合、timestamp オプションが必要になります。

コミットレベル

変更の可能性あり

tcp_recv_hiwat_minmss

説明

デフォルトの最小受信ウィンドウサイズを制御します。最小値は、tcp_recv_hiwat_minmss に、接続の最大セグメントサイズ (MSS) を掛けた値です。

デフォルト

4

範囲

1 から 65,536

動的か

はい

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

この値は変更しないでください。この値を変更する必要がある場合は、4 より小さい値にしないでください。

コミットレベル

変更の可能性あり