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

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

この付録には、特定のチューニング可能パラメータの変更履歴を記載します。この付録にパラメータが記載されていれば、旧リリースから変更されていることを意味します。また、元の機能がすでに削除されているパラメータもリストされています。

カーネルパラメータ

プロセスのサイズのチューニング可能パラメータ

max_nprocs (Solaris 9 リリース)

Solaris 10 の記述部分が更新され、「sun4m」が削除されました。

一般的なドライバパラメータ

ddi_msix_alloc_limit (Solaris 10 リリースおよび OpenSolaris 2009.06 リリース)

このパラメータは Solaris 10 10/09 リリースおよび OpenSolaris 2009.06 リリースからの新規パラメータです。詳細は、ddi_msix_alloc_limitを参照してください。

一般的な入出力のチューニング可能パラメータ

maxphys (Solaris 10 リリース)

デフォルト値が sun4v システムを含むように更新されています。詳細は、maxphysを参照してください。

maxphys (Solaris 9 リリース)

Solaris 10 の maxphys のデフォルトの項から「126,976 (sun4m)」が削除されました。

rlim_fd_max (Solaris 8 リリース)

Solaris 8 バージョンでは、デフォルトは1024 です。それ以降のSolaris リリースでは、デフォルトは 65,536 です。

カーネルとメモリーの一般的なパラメータ

zfs_arc_min (Solaris 10 リリース)

このパラメータに関する記述は Solaris 10 10/09 リリースで新しく追加されました。詳細は、zfs_arc_minを参照してください。

zfs_arc_max (Solaris 10 リリース)

このパラメータに関する記述は Solaris 10 10/09 リリースで新しく追加されました。詳細は、zfs_arc_maxを参照してください。

noexec_user_stack (Solaris 9 リリース)

Solaris 10 の説明の項が更新され、「および sun4m」の語句が削除され、「64 ビット SPARC および AMD64」の語句が追加されました。

lwp_default_stksize (Solaris 9 リリース)

Solaris 10 の説明の項が更新され、AMD64 の場合のデフォルトおよび最大値が追加されました。

SPARC プラットフォームの Solaris 10 のデフォルト値が 24,576 に変更されました。

noexec_user_stack (Solaris 2.6、Solaris 7、Solaris 8 リリース)

Solaris 9 の説明の項が更新され、「および sun4d」の語句が削除されました。

segkpsize (Solaris 9 12/02 リリース)

旧 Solaris 9 リリースで、単位が 8K バイトのページであるべきところで、誤って M バイトの指定になっていました。さらに、範囲およびデフォルトの項で、Solaris 10 リリースに関して次の語句が削除されました。このパラメータは 64 ビットカーネルが動作しているシステムに限って使用できるからです。

32 ビットカーネルでは 512M バイト

fsflush とそれに関連するパラメータ

dopageflush (Solaris 10 リリース)

Solaris 10 10/08 リリースでは、説明を明確にするために、「物理」メモリーページ数が調べられるという記述が追加されました。

ページング関連のチューニング可能パラメータ

maxpgio (Solaris 10 リリース)

Solaris 10 バージョンでは、値の範囲が誤って 1 から 1024 と記述されていました。実際の範囲は、システムのアーキテクチャーと入出力サブシステムによって決まります。詳細は、maxpgioを参照してください。

pages_pp_maximum (Solaris 9 リリース以前の Solaris リリース)

Solaris 8 バージョンで、デフォルトの記述が次のようになっています。

トリプレットの最大値(200, tune_t_minarmem + 100, [ブート時に使用可能なメモリーの10%])

一般的なファイルシステムパラメータ

ncsize (Solaris 9 およびそれ以前のリリース)

Solaris 9 およびそれ以前のリリースでは、「どのような場合に変更するか」の項で、nfs:nrnode パラメータが誤って nfs:nfs_rnode になっていました。

ncsize (Solaris 10 リリース)

Solaris 10 リリースでは、ncsize パラメータのデフォルト値が誤って次のように記述されていました。

4 x (v.v_proc + maxusers) + 320 / 100

正しいデフォルト値は次のとおりです。

(4 x (v.v_proc + maxusers) + 320) + (4 x (v.v_proc + maxusers) + 320 / 100

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

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

bufhwm (Solaris 9 リリース)

このパラメータの情報は Solaris 10 リリースで大幅に変更されました。詳細は、bufhwm および bufhwm_pctを参照してください。

備考欄

入出力バッファーをキャッシュするためのメモリーの最大量。バッファーは、ファイルシステムのメタデータ (スーパーブロック、i ノード、間接ブロック、ディレクトリ) の書き込みに使用されます。バッファーは、その量が bufhwm に達するまで必要に応じて割り当てられます。bufhwm に達すると、バッファーを再利用して要求を満たします。

歴史的経緯により、このパラメータには ufs: 接頭辞は必要ありません。

データ型

符号付き整数

デフォルト

物理メモリーの 2%

範囲

80K バイトから物理メモリーの 20%

単位

K バイト

動的か

いいえ。この値は、ハッシュバケットサイズの計算に使用された後、データ構造体に格納されます。このデータ構造体は、バッファーの割り当てや解放に応じて、そのフィールドの値を調整します。動作しているシステムのロック手順に従わずにこの値を調整すると、正しくない動作を招くおそれがあります。

検査

bufhwm が 80K バイトより小さいか、bufhwm が、物理メモリーの 20% もしくは現在のカーネルヒープ値の 2 倍のうち小さい方より大きい場合、bufhwm は、物理メモリーの 20% か現在のカーネルヒープ値の 2 倍のうち小さい方にリセットされます。その場合は、次のメッセージがシステムコンソールと /var/adm/messages ファイルに出力されます。


"binit: bufhwm out of range (value attempted). Using N."

「value attempted」は、/etc/system で指定された値または kadb -d による値を表します。N は使用可能なシステムメモリーに基づいてシステムが計算した値です。

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

バッファーは必要が生じた時にのみ割り当てられるため、デフォルト設定によるオーバーヘッドは、考えられる最大のバッファー数を処理するために必要になる制御構造体が割り当てられることです。これらの構造体は、32 ビットカーネルでは想定されるバッファー当たり 52 バイト、64 ビットカーネルでは想定されるバッファー当たり 104 バイトを消費します。512M バイトの 64 ビットカーネルでは、この構造体は 104*10144 バイト (約 1M バイト) を消費します。ヘッダーの割り当てでは、バッファーサイズは 1K バイトであると想定します。ただし、ほとんどの場合、バッファーサイズはこれより大きいのが普通です。

バッファープール内でまだ割り当てられていないメモリー量を知るには、カーネルデバッガを使用して、カーネルの bfreelist 構造体を調べます。この構造体の bufsize フィールドが、残っている可能性があるメモリーのバイト数です。mdb を使用して buf マクロでこのフィールドを表示するには、次のようにします。


# mdb -kLoading modules: [ unix krtld genunix ip nfs ipc ]
> bfreelist$<buf
bfreelist:
[ elided ]
bfreelist + 0x78:	bufsize			[ elided ]
				 	      75734016

6G バイトのメモリーを装備したこのシステムでは、bufhwm は 122277 です。要求されたバッファーの実際のサイズは通常、1K バイトを超えるので、ヘッダー構造体の数を直接調べることは困難です。しかし、一部の領域は、このシステムに割り当てられた制御構造体からうまく回収されることがあります。

512M バイトシステム上でこの構造体が、10144K バイトのうち 4K バイトだけがまだ割り当てられていないことを示したとします。また、kstat -n biostatsbiostats の kstat を調べると、このシステムでは、buffer_cache_hitsbuffer_cache_lookups の割合も適切であることが分かったとします。これらの情報は、このシステムのデフォルト設定であることを示します。

コミットレベル

変更の可能性あり

TMPFS パラメータ

tmpfs:tmpfs_maxkmem (Solaris 10 リリース)

範囲の説明が sun4v システムを含むように更新されています。詳細は、tmpfs:tmpfs_maxkmemを参照してください。

tmpfs:tmpfs_minfree (Solaris 8 リリース)

Solaris 8 バージョンで、「ページ」であるべき単位が誤って「バイト」になっていました。

sun4u または sun4v 固有のパラメータ (Solaris 10 リリース)

Solaris 07 4/4 リリースでは、Sun-8u 固有のパラメータセクションのタイトルが sun4v システムを含むように改訂されました。

default_tsb_size (Solaris 10 リリース)

デフォルトの記述が変更されました。詳細は、default_tsb_sizeを参照してください。

enable_tsb_rss_sizing (Solaris 10 リリース)

説明とデフォルト値および範囲の値が変更されました。詳細は、enable_tsb_rss_sizingを参照してください。

tsb_rss_factor (Solaris 10 リリース)

「どのような場合に変更するか」の記述例が次のように変更されました。

たとえば、tsb_rss_factor を 384 (事実上は 75%) ではなく 256 (事実上は 50%) に変更すると、状況によっては、TSB における仮想アドレスの衝突を排除できることがありますが、特に負荷の大きいシステムでは、カーネルメモリーの使用量が増えます。

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

nfs:nfs3_nra (Solaris 10)

Solaris 10 リリースで、デフォルト値に関する記述に誤りがありました。デフォルト値は 4 です。

nfs:nrnode (Solaris 9 8/03)

Solaris 10 の記述が更新され、「NFS バージョン 4 クライアント」の語句が追加されました。

nfs:nfs_write_error_interval (Solaris 9 8/03)

Solaris 10 の記述が更新され、「NFS バージョン 4 クライアント」の語句が追加されました。

nfs:nfs_write_error_to_cons_only (Solaris 9 8/03)

Solaris 10 の記述が更新され、「NFS バージョン 4 クライアント」の語句が追加されました。

nfs:nfs_disable_rddir_cache (Solaris 9 8/03)

Solaris 10 の変更する場合の記述が更新され、「NFS バージョン 4 クライアント」の語句が追加されました。

nfs:nfs3_max_transfer_size (Solaris 9 8/03)

Solaris 10 のデフォルトの記述が32,768,(32K バイト) から 1,048,576 (1M バイト) に変更されました。

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 要求がドロップされます。

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

udp_xmit_hiwat (Solaris 9 リリース)

デフォルト値と値の範囲が Solaris 10 リリースで変更されました。

デフォルト

8192 バイト

範囲

4096 から 65,536 バイト

udp_recv_hiwat (Solaris 9 リリース)

デフォルト値と値の範囲が Solaris 10 リリースで変更されました。

デフォルト

8192 バイト

範囲

4096 から 65,536 バイト

udp_max_buf (Solaris 9 リリース)

デフォルト値が Solaris 10 リリースで変更されました。

デフォルト

262,144 バイト

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

sq_max_size (Solaris 9 12/02 リリース)

このパラメータの情報は最近の Solaris リリースで大幅に変更されました。sq_max_sizeを参照してください。

備考欄

宛先ストリームキューが QFULL メッセージを生成するまでの、同期の深度 (メッセージの数) です。

デフォルト

2 メッセージ

範囲

1 から 0 (無制限)

動的か

いいえ

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

メモリーの大きなシステム上で NCA を動作させている場合、このパラメータの値を増やしてドライバがキューに入れることのできるパケット数を増やします。サーバーの負荷が大きい場合、このパラメータの値を増やして、パケットがドロップされたりパケット処理が後回しにされることなくモジュールやドライバのデータ処理能力を向上させます。

コミットレベル

変更の可能性あり

旧式または削除されたパラメータ

ここでは、最近の Solaris リリースで旧式または削除されたパラメータについて説明します。

ページング関連のチューニング可能パラメータ

cachefree (Solaris 8 リリース)

Solaris 9 以降のリリースでは旧式

備考欄

Solaris 8 リリースで、ファイルシステムページのキャッシング方法が変更されました。これらの変更には、優先度ページング機能が含まれます。


注 –

cachefreepriority_paging の両方の設定を /etc/system ファイルから削除してください。


キャッシュ方法の変更により、ファイルシステムの動作に伴って発生する仮想メモリーシステムへの負担がほとんど解消されます。統計によると、次のような新しい動作が見られます。

  • ページ再利用の数が多くなります。これは、入出力が終了すると、ページが明示的に空リストに追加されるためです。

  • 空きメモリーが増えます。これは、空きメモリーのカウントにファイルキャッシュの大部分が含まれるためです。

  • 走査率が大幅に減ります。

コミットレベル

旧式

priority_paging (Solaris 8 リリース)

Solaris 9 以降のリリースでは旧式

備考欄

この変数に基づき lotsfree の 2 倍の値が cachefree に設定されます。

Solaris 8 リリースで、ファイルシステムページのキャッシング方法が変更されました。これらの変更には、優先度ページング機能が含まれます。


注 –

cachefreepriority_paging の両方の設定を /etc/system ファイルから削除してください。


コミットレベル

廃止

System V メッセージキューパラメータ

msgsys:msginfo_msgmni (Solaris 9 リリース)

Solaris 10 リリースでは旧式

備考欄

作成できるメッセージキューの最大数

データ型

符号付き整数

デフォルト

50

範囲

0 から MAXINT

動的か

いいえ。msginfo 構造体の msgmni フィールドにロードされます。

検査

なし

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

msgget(2) 呼び出しが ENOSPC エラーを返す場合、またはソフトウェアベンダーが推奨する場合

コミットレベル

変更の可能性あり

msgsys:msginfo_msgtql (Solaris 9 リリース)

Solaris 10 リリースでは旧式

備考欄

作成できるメッセージの最大数。msgsnd(2) 呼び出しでこの限度を超える要求が行われた場合は、メッセージヘッダーが使用可能になるまで要求は延期されます。あるいは、その要求で IPC_NOWAIT フラグがオンに設定されていると、要求はエラー EGAIN で失敗します。

データ型

符号付き整数

デフォルト

40

範囲

0 から MAXINT

動的か

いいえ。msginfo 構造体の msgtql フィールドにロードされます。

検査

なし

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

msgsnd(2) 呼び出しがブロックするか EGAIN エラーを返す場合、またはソフトウェアベンダーが推奨する場合

コミットレベル

変更の可能性あり

msgsys:msginfo_msgmnb (Solaris 9 リリース)

Solaris 10 リリースでは旧式

備考欄

1 つのメッセージキューに含めることのできる最大バイト数

データ型

符号なし long

デフォルト

4096

範囲

0 から物理メモリーの総量

単位

バイト

動的か

いいえ。msginfo 構造体の msgmnb フィールドにロードされます。

検査

なし

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

msgsnd(2) 呼び出しがブロックするか EAGAIN エラーを返す場合、またはソフトウェアベンダーが推奨する場合

コミットレベル

変更の可能性あり

msgsys:msginfo_msgtql (Solaris 9 リリース)

Solaris 10 リリースで削除

備考欄

メッセージバッファー用の空間を管理するためにシステムが使用するチャンクサイズを指定します。

データ型

符号付き整数

デフォルト

40

範囲

0 から MAXINT

動的か

いいえ。msginfo 構造体の msgtql フィールドにロードされます。

検査

メッセージやキューのために作成されるデータ構造体が最大数存在する場合に消費される空間と、モジュールがロードされるときの使用可能なカーネルメモリーの 25% を比較します。使用される空間があまりに大きいと、メッセージキューモジュールはロードを拒否し、この機能は利用できません。この計算には、メッセージに消費される空間も含まれます。この状態は、モジュールが最初にロードされるときだけ起こります。

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

デフォルト値では不十分な場合。一般には、ソフトウェアベンダーの推奨があった場合に変更します。

コミットレベル

旧式

msgsys:msginfo_msgmap (Solaris 9 リリース)

Solaris 10 リリースで削除

備考欄

システムがサポートするメッセージの数。

データ型

符号付き整数

デフォルト

100

範囲

0 から MAXINT

動的か

いいえ

検査

メッセージやキューのために作成されるデータ構造体が最大数存在する場合に消費される空間と、モジュールがロードされるときの使用可能なカーネルメモリーの 25% を比較します。使用される空間があまりに大きいと、メッセージキューモジュールはロードを拒否し、この機能は利用できません。この計算には、メッセージに消費される空間も含まれます。この状態は、モジュールが最初にロードされるときだけ起こります。

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

デフォルト値では不十分な場合。一般には、ソフトウェアベンダーの推奨があった場合に変更します。

コミットレベル

旧式

msgsys:msginfo_msgseg (Solaris 9 リリース)

Solaris 10 リリースで削除

備考欄

使用可能なメッセージメモリーのプールとしてシステムが使用する、msginfo_msgssz セグメントの数。メッセージに使用できる合計メモリーは msginfo_msgseg * msginfo_msgssz です。

データ型

符号付き short

デフォルト

1024

範囲

0 から 32,767

動的か

いいえ

検査

メッセージやキューのために作成されるデータ構造体が最大数存在する場合に消費される空間と、モジュールがロードされるときの使用可能なカーネルメモリーの 25% を比較します。使用される空間があまりに大きいと、メッセージキューモジュールはロードを拒否し、この機能は利用できません。この計算には、メッセージに消費される空間も含まれます。この状態は、モジュールが最初にロードされるときだけ起こります。

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

デフォルト値では不十分な場合。一般には、ソフトウェアベンダーの推奨があった場合に変更します。

コミットレベル

旧式

msgsys:msginfo_msgmax (Solaris 9 リリース)

Solaris 10 リリースで削除

備考欄

System V メッセージの最大サイズ

データ型

符号なし long

デフォルト

2048

範囲

0 から物理メモリーの総量

単位

バイト

動的か

いいえ。msginfo 構造体の msgmax フィールドにロードされます。

検査

なし

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

msgsnd(2) 呼び出しが EINVAL エラーを返す場合、またはソフトウェアベンダーが推奨する場合。

コミットレベル

変更の可能性あり

System V セマフォーのパラメータ

semsys:seminfo_semmni (Solaris 9 リリース)

Solaris 10 リリースでは旧式

備考欄

セマフォー識別子の最大数を指定します。

データ型

符号付き整数

デフォルト

10

範囲

1 から 65,535

動的か

いいえ

検査

SEMA_INDEX_MAX (現在は 65,535) と比較し、それより大きい場合は、SEMA_INDEX_MAX の値にリセットされます。警告メッセージがコンソール、メッセージ、またはその両方に出力されます。

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

デフォルトの組数では不十分な場合。一般には、ソフトウェアベンダーの推奨があった場合に変更します。現在の設定値を越えるセットを作成しようとしても、エラーメッセージは表示されません。アプリケーションは semget 呼び出しから ENOSPC というリターンコードを受け取ります。

詳細は、semget(2) のマニュアルページを参照してください。

コミットレベル

変更の可能性あり

semsys:seminfo_semmsl (Solaris 9 リリース)

Solaris 10 リリースでは旧式

備考欄

セマフォー識別子あたりの System V セマフォーの最大数を指定します。

データ型

符号付き整数

デフォルト

25

範囲

1 から MAXINT

動的か

いいえ

検査

セマフォーとそれらに関係するデータ構造体によって消費され得る空間の量が、モジュールが最初にロードされるときに使用可能なカーネルメモリーの 25% と比較されます。使用される容量がこのメモリーのしきい値より大きい場合、モジュールはロードを拒否し、セマフォー機能は利用できません。

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

デフォルト値では不十分な場合。一般には、ソフトウェアベンダーの推奨があった場合に変更します。設定された値を越える数のセマフォーを組として作成しようとしても、エラーメッセージは表示されません。semget(2) 呼び出しからアプリケーションにリターンコード EINVAL が返されます。

コミットレベル

変更の可能性あり

semsys:seminfo_semopm (Solaris 9 リリース)

Solaris 10 リリースでは旧式

備考欄

semop 呼び出しあたりの System V セマフォー操作の最大数を指定します。このパラメータは、semop() システムコールで使用する sops 配列内の sembufs の数を参照します。詳細は、semop(2) のマニュアルページを参照してください。

データ型

符号付き整数

デフォルト

10

範囲

1 から MAXINT

動的か

いいえ

検査

セマフォーとそれらに関係するデータ構造体によって消費され得る空間の量が、モジュールが最初にロードされるときに使用可能なカーネルメモリーの 25% と比較されます。使用される容量がこのメモリーのしきい値より大きい場合、モジュールはロードを拒否し、セマフォー機能は利用できません。

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

デフォルト値では不十分な場合。一般には、ソフトウェアベンダーの推奨があった場合に変更します。1 回の semop 呼び出しで、現在許可されている値を超える回数のセマフォー操作を実行しようとしても、エラーメッセージは表示されません。アプリケーションは semop() 呼び出しから E2BIG というリターンコードを受け取ります。

コミットレベル

変更の可能性あり

semsys:seminfo_semmns (Solaris 9 リリース)

Solaris 10 リリースで削除

備考欄

システム上の System V セマフォーの最大数

データ型

符号付き整数

デフォルト

60

範囲

1 から MAXINT

動的か

いいえ

検査

セマフォーとそれらに関係するデータ構造体によって消費され得る空間の量が、モジュールが最初にロードされるときに使用可能なカーネルメモリーの 25% と比較されます。使用される容量がこのメモリーのしきい値より大きい場合、モジュールはロードを拒否し、セマフォー機能は利用できません。

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

デフォルトのセマフォー数では不十分な場合。一般には、ソフトウェアベンダーの推奨があった場合に変更します。設定された値を越える数のセマフォーを作成しようとしても、エラーメッセージは表示されません。semget(2) 呼び出しからアプリケーションにリターンコード ENOSPC が返されます。

コミットレベル

変更の可能性あり

semsys:seminfo_semmnu (Solaris 9 リリース)

Solaris 10 リリースで削除

備考欄

System V セマフォーシステムがサポートする取り消し構造体の総数

データ型

符号付き整数

デフォルト

30

範囲

1 から MAXINT

動的か

いいえ

検査

セマフォーとそれらに関係するデータ構造体によって消費され得る空間の量が、モジュールが最初にロードされるときに使用可能なカーネルメモリーの 25% と比較されます。使用される容量がこのメモリーのしきい値より大きい場合、モジュールはロードを拒否し、セマフォー機能は利用できません。

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

デフォルト値では不十分な場合。一般には、ソフトウェアベンダーの推奨があった場合に変更します。設定された値を越える回数の取り消し操作を実行しようとしても、エラーメッセージは表示されません。システムが取り消し構造体を使い果たすと、semop(2) 呼び出しからアプリケーションに戻り値 ENOSPC が返されます。

コミットレベル

変更の可能性あり

semsys:seminfo_semume (Solaris 9 リリース)

備考欄

Solaris 10 リリースで削除

1 つのプロセスで使用できる System V セマフォー取り消し構造体の最大数

データ型

符号付き整数

デフォルト

10

範囲

1 から MAXINT

動的か

いいえ

検査

セマフォーとそれらに関係するデータ構造体によって消費され得る空間の量が、モジュールが最初にロードされるときに使用可能なカーネルメモリーの 25% と比較されます。使用される容量がこのメモリーのしきい値より大きい場合、モジュールはロードを拒否し、セマフォー機能は利用できません。

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

デフォルト値では不十分な場合。一般には、ソフトウェアベンダーの推奨があった場合に変更します。設定された値を越える回数の取り消し操作を実行しようとしても、エラーメッセージは表示されません。semop(2) 呼び出しからアプリケーションにリターンコード EINVAL が返されます。

コミットレベル

変更の可能性あり

semsys:seminfo_semvmx (Solaris 9 リリース)

Solaris 10 リリースで削除

備考欄

セマフォーを設定できる最大値

データ型

符号なし short

デフォルト

32,767

範囲

1 から 65,535

動的か

いいえ

検査

なし

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

デフォルト値では不十分な場合。一般には、ソフトウェアベンダーの推奨があった場合に変更します。この最大値を越えても、エラーメッセージは表示されません。semop(2) 呼び出しからアプリケーションにリターンコード ERANGE が返されます。

コミットレベル

変更の可能性あり

semsys:seminfo_semaem (Solaris 9 リリース)

Solaris 10 リリースで削除

備考欄

取り消し構造体のセマフォー値を設定できる最大値

データ型

符号なし short

デフォルト

16,384

範囲

1 から 65,535

動的か

いいえ

検査

なし

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

デフォルト値では不十分な場合。一般には、ソフトウェアベンダーの推奨があった場合に変更します。設定された値を越える回数の取り消し操作を実行しようとしても、エラーメッセージは表示されません。semop(2) 呼び出しからアプリケーションにリターンコード EINVAL が返されます。

コミットレベル

変更の可能性あり

System V 共有メモリーパラメータ

shmsys:shminfo_shmmni (Solaris 9 リリース)

Solaris 10 リリースでは旧式

備考欄

作成できる共有メモリーセグメント数に関するシステム全体の制限。

データ型

符号付き整数

デフォルト

100

範囲

0 から MAXINT

動的か

いいえ。shminfo 構造体の shmmni フィールドにロードされます。

検査

System V 共有メモリーに関係するデータ構造体が最大数存在する場合に消費され得る空間量を、モジュールをロードしたときに使用可能なカーネルメモリーの 25% と比較します。消費されるメモリーが大きすぎると、モジュールをロードする試みは失敗します。

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

システムの限度が小さすぎる場合。一般には、ソフトウェアベンダーの推奨があった場合に変更します。

コミットレベル

変更の可能性あり

shmsys:shminfo_shmmax (Solaris 9 リリース)

Solaris 10 リリースでは旧式

備考欄

作成できるSystem V 共有メモリーセグメントの最大サイズ。このパラメータは、アプリケーションが要求されたメモリーセグメントを作成するために必要な物理リソースが実際にあるか調べる前に検査される上限値です。

サイズが 0 の共有メモリーセグメントや、指定した値より大きいサイズの共有メモリーセグメントを作成しようとすると、 EINVAL エラーとなります。

このパラメータは、共有メモリーセグメントのサイズとしてオペレーティングシステムが受け付けることができる最大の値だけを指定します。セグメントを作成できるかどうかは、システム上で使用可能なスワップ空間の量に完全に依存します。32 ビットプロセスの場合は、接続されるセグメントのためにプロセスのアドレス空間に十分な容量があるかどうかも影響します。

データ型

符号なし long

デフォルト

8,388,608

範囲

32 ビットシステムでは 0 から MAXUINT32、64 ビットシステムでは 0 から MAXUINT64

単位

バイト

動的か

いいえ。shminfo 構造体の shmmax フィールドにロードされます。

検査

なし

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

デフォルト値では足りない場合。一般には、ソフトウェアベンダーの推奨があった場合に変更します。ただし、共有メモリーセグメントのサイズを制限する必要がある場合以外は、このパラメータに利用できる最大値を設定しても副次的影響はありません。

コミットレベル

変更の可能性あり

shmsys:shminfo_shmmin (Solaris 8 リリース)

Solaris 9 リリースでは旧式。変数は互換性の理由でカーネルに残されていますが、使用されません。

shmsys:shminfo_shmseg (Solaris 8 リリース)

Solaris 9 リリースでは旧式。変数は互換性の理由でカーネルに残されていますが、使用されません。