この付録には、特定のチューニング可能パラメータの変更履歴を記載します。この付録にパラメータが記載されていれば、旧リリースから変更されていることを意味します。また、元の機能がすでに削除されているパラメータもリストされています。
Solaris 10 の記述部分が更新され、「sun4m」が削除されました。
このパラメータは Solaris 10 10/09 リリースおよび OpenSolaris 2009.06 リリースからの新規パラメータです。詳細は、「ddi_msix_alloc_limit」を参照してください。
デフォルト値が sun4v システムを含むように更新されています。詳細は、「maxphys」を参照してください。
Solaris 10 の maxphys のデフォルトの項から「126,976 (sun4m)」が削除されました。
Solaris 8 バージョンでは、デフォルトは1024 です。それ以降のSolaris リリースでは、デフォルトは 65,536 です。
このパラメータに関する記述は Solaris 10 10/09 リリースで新しく追加されました。詳細は、「zfs_arc_min」を参照してください。
このパラメータに関する記述は Solaris 10 10/09 リリースで新しく追加されました。詳細は、「zfs_arc_max」を参照してください。
Solaris 10 の説明の項が更新され、「および sun4m」の語句が削除され、「64 ビット SPARC および AMD64」の語句が追加されました。
Solaris 10 の説明の項が更新され、AMD64 の場合のデフォルトおよび最大値が追加されました。
SPARC プラットフォームの Solaris 10 のデフォルト値が 24,576 に変更されました。
Solaris 9 の説明の項が更新され、「および sun4d」の語句が削除されました。
旧 Solaris 9 リリースで、単位が 8K バイトのページであるべきところで、誤って M バイトの指定になっていました。さらに、範囲およびデフォルトの項で、Solaris 10 リリースに関して次の語句が削除されました。このパラメータは 64 ビットカーネルが動作しているシステムに限って使用できるからです。
32 ビットカーネルでは 512M バイト
Solaris 10 10/08 リリースでは、説明を明確にするために、「物理」メモリーページ数が調べられるという記述が追加されました。
Solaris 10 バージョンでは、値の範囲が誤って 1 から 1024 と記述されていました。実際の範囲は、システムのアーキテクチャーと入出力サブシステムによって決まります。詳細は、「maxpgio」を参照してください。
Solaris 8 バージョンで、デフォルトの記述が次のようになっています。
トリプレットの最大値(200, tune_t_minarmem + 100, [ブート時に使用可能なメモリーの10%])
Solaris 9 およびそれ以前のリリースでは、「どのような場合に変更するか」の項で、nfs:nrnode パラメータが誤って nfs:nfs_rnode になっていました。
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」を参照してください。
このパラメータの情報は 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 biostats で biostats の kstat を調べると、このシステムでは、buffer_cache_hits と buffer_cache_lookups の割合も適切であることが分かったとします。これらの情報は、このシステムのデフォルト設定であることを示します。
変更の可能性あり
範囲の説明が sun4v システムを含むように更新されています。詳細は、「tmpfs:tmpfs_maxkmem」を参照してください。
Solaris 8 バージョンで、「ページ」であるべき単位が誤って「バイト」になっていました。
Solaris 07 4/4 リリースでは、Sun-8u 固有のパラメータセクションのタイトルが sun4v システムを含むように改訂されました。
デフォルトの記述が変更されました。詳細は、「default_tsb_size」を参照してください。
説明とデフォルト値および範囲の値が変更されました。詳細は、「enable_tsb_rss_sizing」を参照してください。
「どのような場合に変更するか」の記述例が次のように変更されました。
たとえば、tsb_rss_factor を 384 (事実上は 75%) ではなく 256 (事実上は 50%) に変更すると、状況によっては、TSB における仮想アドレスの衝突を排除できることがありますが、特に負荷の大きいシステムでは、カーネルメモリーの使用量が増えます。
Solaris 10 リリースで、デフォルト値に関する記述に誤りがありました。デフォルト値は 4 です。
Solaris 10 の記述が更新され、「NFS バージョン 4 クライアント」の語句が追加されました。
Solaris 10 の記述が更新され、「NFS バージョン 4 クライアント」の語句が追加されました。
Solaris 10 の記述が更新され、「NFS バージョン 4 クライアント」の語句が追加されました。
Solaris 10 の変更する場合の記述が更新され、「NFS バージョン 4 クライアント」の語句が追加されました。
Solaris 10 のデフォルトの記述が32,768,(32K バイト) から 1,048,576 (1M バイト) に変更されました。
以前の Solaris リリースでは、このパラメータの範囲が誤って記載されていました。正しい範囲は 10 ミリ秒から 1 分です。
Solaris 9 リリースおよび Solaris 10 リリースではこれらのパラメータのデフォルト値が誤って記載されていました。正しいデフォルト値は無効です。
IPv4 または IPv6 が、パケットをソース IPv4 ルーティングオプションを指定して転送するか、IPv6 ルーティングヘッダーを指定して転送するかを制御します。
1 (有効)
このパラメータは、Solaris 10 リリースで、IP フラグメントをバッチ内でネットワークドライバに送信するように拡張されました。詳細は、「ip_multidata_outbound」を参照してください。
ネットワークスタックが、転送時、一度に複数のパケットをネットワークデバイスドライバ宛てに送信できるようにします。
このパラメータを有効にすると、ホスト CPU の利用率またはネットワークスループット (あるいはこの両方) が向上し、パケットあたりの処理コストが減少します。
複数データ送信 (multidata transmit 、MDT) 機能は、この機能をサポートするデバイスドライバでのみ有効です。
「tcp_mdt_max_pbufs」も参照してください。
1 (有効)
0 (無効)、1 (有効)
はい
このパラメータをデバッグやその他の目的で有効にする必要がない場合は、無効にします。
変更の可能性あり
詳細は、「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 プロバイダの間でパケットの形が変化することがあります。よって、ifconfig の modinsert 機能を使用して IP 層と DLPI プロバイダ間に動的に挿入されるサードパーティー製 STREAMS モジュールは、 MDT STREAMS データ形式を理解しないため、動作しない可能性があります。
同様に、autopush(1m) 機構によって IP 層と DLPI プロバイダ間に挿入されるモジュールも、動作しない可能性があります。
STREAMS モジュールが MDT を認識しない場合は、この機能を無効にしてください。たとえば、ipfilter や Checkpoint Firewall-1 などのパブリックドメインユーティリティーは MDT を認識しません。
変更の可能性あり
Solaris 10 8/07 リリースで、ゾーン構成情報が追加されました。詳細は、「ip_squeue_fanout」を参照してください。
Solaris 10 8/07 リリースで、ゾーン構成情報が追加されました。詳細は、「ip_squeue_worker_wait」を参照してください。また、このパラメータは「/etc/system ファイルに設定する TCP/IP パラメータ」に移動されました。
Solaris 10 8/07 リリースで、ゾーン構成情報が追加されました。詳細は、「ip_soft_rings_cnt」を参照してください。
Solaris 10 リリースで、このパラメータに関する記述に誤りがありました。 これは削除されています。
このパラメータは Solaris 10 リリースで削除されました。
符号付き整数
512
512 から 1,073,741,824
この値には 2 のべき乗を指定すべきです。
いいえ。このパラメータはブート時にのみ変更できます。
パラメータの値が 2 のべき乗でないと、一番近い 2 のべき乗に丸められます。
何万に上る TCP 接続が継続的にあるシステムでは、この値をそれに応じて増やします。TCP は、デフォルト値で 2 〜 3 千のアクティブ接続までは十分にサポートできます。ハッシュテーブルのサイズを増やすと、それだけ多くのメモリーが必要になりますので、適切な値を指定するようにしてメモリーが不必要に使用されるのを防いでください。
変更の可能性あり
このパラメータのデフォルト値は、Solaris 10 リリースで有効に変更されました。
このパラメータが有効になっていると (デフォルトの設定)、ウィンドウスケールオプションの値が 0 の場合でも、TCP は常にウィンドウスケールオプションを指定して SYN セグメントを送信します。ウィンドウスケールオプションの指定された SYN セグメントを受信すると、パラメータが無効になっている場合でも、TCP は、ウィンドウスケールオプションを指定して SYN セグメントに応答します。オプションの値は受信ウィンドウサイズに従って設定されます。
ウィンドウスケールオプションについては、RFC 1323 を参照してください。
0 (無効)
0 (無効)、1 (有効)
はい
ウィンドウスケールオプションをサポートしていない古い TCP スタックとの相互運用性の問題がある場合は、このパラメータを無効にしてください。
変更の可能性あり
このパラメータは Solaris 10 リリースで削除されました。
すべてのアクティブな (「確立済み (ESTABLISHED)」状態) TCP 接続に対して、IP モジュールのハッシュテーブルサイズを制御します。
符号なし整数
512
512 から 2,147,483,648
この値は 2 のべき乗を指定すべきです。
いいえ。このパラメータはブート時のみ変更することができます。
パラメータの値が 2 のべき乗でないと、一番近い 2 のべき乗に丸められます。
何万に上るアクティブ TCP 接続が継続的にあるシステムでは、この値をそれに応じて増やします。TCP は、デフォルト値で 2 〜 3 千までのアクティブ接続を十分にサポートできます。ハッシュテーブルのサイズを増やすと、それだけ多くのメモリーが必要になりますので、適切な値を指定するようにしてメモリーが不必要に使用されるのを防いでください。
変更の可能性あり
このパラメータは Solaris 10 リリースで削除されました。
1 に設定すると、TIME-WAIT 状態の TCP接続のプロトコル制御ブロックが圧縮され、メモリー使用量が減ります。0 が設定されていると、圧縮は行われません。「tcp_time_wait_interval」 も参照してください。
1 (有効)
0 (無効)、1 (有効)
はい
圧縮機能はオフにしないでください。
変更の可能性あり
このパラメータは Solaris 10 リリースで旧式とされました。
IP がインタフェース間で IPv4 転送を実行するのか、IPv6 転送を実行するのかを制御します。「xxx:ip_forwarding (Solaris 9 リリース)」 も参照してください。
0 (無効)
0 (無効)、1 (有効)
はい
IP 転送が必要な場合は、これを有効にします。
変更の可能性あり
このパラメータは Solaris 10 リリースで旧式とされました。
特定の xxx インタフェースに対して IPv4 転送を有効にします。このパラメータの正確な表記は interface-name:ip_forwarding です。たとえば、2 つのインタフェース hme0 と hme1 があるとします。対応するパラメータ名を示します。
hme0:ip_forwarding と hme1:ip_forwarding
0 (無効)
0 (無効)、1 (有効)
はい
IPv4 転送が必要な場合は、このパラメータを使用してインタフェースごとに転送を有効にします。
変更の可能性あり
「どのような場合に変更するか」の記述が最近の Solaris リリースでは下記から変更されました。
極めて多くの接続要求を受信することがある Web サーバーのようなアプリケーションでは、着信頻度に応じてこのデフォルト値を増やすことができます。
tcp_conn_req_max_q0 と、各ソケットについて保留状態にある接続の最大数との関係は、次のとおりです。
接続要求を受信すると、TCP はまず、受け付けられるのを待っている保留状態の TCP 接続 (3 段階ハンドシェークが終わっている) の数 (N) が、そのリスナーに対する最大数を超えていないかをチェックします。接続数が超えていると、その要求は拒否されます。超えていなければ、TCP は、不完全な保留状態の TCP 接続の数が、N と tcp_conn_req_max_q0 の合計を超えていないかをチェックします。超えていなければ、その要求は受け付けられます。超えていると、最も古い不完全な保留状態の TCP 要求がドロップされます。
次のようになりました。
極めて多くの接続要求を受信することがある Web サーバーのようなアプリケーションでは、着信頻度に応じてこのデフォルト値を増やすことができます。
tcp_conn_req_max_q0 と、各ソケットについて保留状態にある接続の最大数との関係は、次のとおりです。
接続要求を受信すると、TCP はまず、受け付けられるのを待っている保留状態の TCP 接続 (3 段階ハンドシェークが終わっている) の数が、そのリスナーに対する最大数 (N) を超えていないかをチェックします。接続数が超えていると、その要求は拒否されます。超えていなければ、TCP は、不完全な保留状態の TCP 接続の数が、N と tcp_conn_req_max_q0 の合計を超えていないかをチェックします。超えていなければ、その要求は受け付けられます。超えていると、最も古い不完全な保留状態の TCP 要求がドロップされます。
デフォルト値と値の範囲が Solaris 10 リリースで変更されました。
8192 バイト
4096 から 65,536 バイト
デフォルト値と値の範囲が Solaris 10 リリースで変更されました。
8192 バイト
4096 から 65,536 バイト
デフォルト値が Solaris 10 リリースで変更されました。
262,144 バイト
このパラメータの情報は最近の Solaris リリースで大幅に変更されました。「sq_max_size」を参照してください。
2 メッセージ
1 から 0 (無制限)
いいえ
メモリーの大きなシステム上で NCA を動作させている場合、このパラメータの値を増やしてドライバがキューに入れることのできるパケット数を増やします。サーバーの負荷が大きい場合、このパラメータの値を増やして、パケットがドロップされたりパケット処理が後回しにされることなくモジュールやドライバのデータ処理能力を向上させます。
変更の可能性あり
ここでは、最近の Solaris リリースで旧式または削除されたパラメータについて説明します。
Solaris 9 以降のリリースでは旧式
Solaris 8 リリースで、ファイルシステムページのキャッシング方法が変更されました。これらの変更には、優先度ページング機能が含まれます。
cachefree と priority_paging の両方の設定を /etc/system ファイルから削除してください。
キャッシュ方法の変更により、ファイルシステムの動作に伴って発生する仮想メモリーシステムへの負担がほとんど解消されます。統計によると、次のような新しい動作が見られます。
ページ再利用の数が多くなります。これは、入出力が終了すると、ページが明示的に空リストに追加されるためです。
空きメモリーが増えます。これは、空きメモリーのカウントにファイルキャッシュの大部分が含まれるためです。
走査率が大幅に減ります。
旧式
Solaris 9 以降のリリースでは旧式
この変数に基づき lotsfree の 2 倍の値が cachefree に設定されます。
Solaris 8 リリースで、ファイルシステムページのキャッシング方法が変更されました。これらの変更には、優先度ページング機能が含まれます。
cachefree と priority_paging の両方の設定を /etc/system ファイルから削除してください。
廃止
Solaris 10 リリースでは旧式
符号付き整数
50
0 から MAXINT
いいえ。msginfo 構造体の msgmni フィールドにロードされます。
なし
msgget(2) 呼び出しが ENOSPC エラーを返す場合、またはソフトウェアベンダーが推奨する場合
変更の可能性あり
Solaris 10 リリースでは旧式
作成できるメッセージの最大数。msgsnd(2) 呼び出しでこの限度を超える要求が行われた場合は、メッセージヘッダーが使用可能になるまで要求は延期されます。あるいは、その要求で IPC_NOWAIT フラグがオンに設定されていると、要求はエラー EGAIN で失敗します。
符号付き整数
40
0 から MAXINT
いいえ。msginfo 構造体の msgtql フィールドにロードされます。
なし
msgsnd(2) 呼び出しがブロックするか EGAIN エラーを返す場合、またはソフトウェアベンダーが推奨する場合
変更の可能性あり
Solaris 10 リリースでは旧式
符号なし long
4096
0 から物理メモリーの総量
バイト
いいえ。msginfo 構造体の msgmnb フィールドにロードされます。
なし
msgsnd(2) 呼び出しがブロックするか EAGAIN エラーを返す場合、またはソフトウェアベンダーが推奨する場合
変更の可能性あり
Solaris 10 リリースで削除
符号付き整数
40
0 から MAXINT
いいえ。msginfo 構造体の msgtql フィールドにロードされます。
メッセージやキューのために作成されるデータ構造体が最大数存在する場合に消費される空間と、モジュールがロードされるときの使用可能なカーネルメモリーの 25% を比較します。使用される空間があまりに大きいと、メッセージキューモジュールはロードを拒否し、この機能は利用できません。この計算には、メッセージに消費される空間も含まれます。この状態は、モジュールが最初にロードされるときだけ起こります。
デフォルト値では不十分な場合。一般には、ソフトウェアベンダーの推奨があった場合に変更します。
旧式
Solaris 10 リリースで削除
システムがサポートするメッセージの数。
符号付き整数
100
0 から MAXINT
いいえ
メッセージやキューのために作成されるデータ構造体が最大数存在する場合に消費される空間と、モジュールがロードされるときの使用可能なカーネルメモリーの 25% を比較します。使用される空間があまりに大きいと、メッセージキューモジュールはロードを拒否し、この機能は利用できません。この計算には、メッセージに消費される空間も含まれます。この状態は、モジュールが最初にロードされるときだけ起こります。
デフォルト値では不十分な場合。一般には、ソフトウェアベンダーの推奨があった場合に変更します。
旧式
Solaris 10 リリースで削除
使用可能なメッセージメモリーのプールとしてシステムが使用する、msginfo_msgssz セグメントの数。メッセージに使用できる合計メモリーは msginfo_msgseg * msginfo_msgssz です。
符号付き short
1024
0 から 32,767
いいえ
メッセージやキューのために作成されるデータ構造体が最大数存在する場合に消費される空間と、モジュールがロードされるときの使用可能なカーネルメモリーの 25% を比較します。使用される空間があまりに大きいと、メッセージキューモジュールはロードを拒否し、この機能は利用できません。この計算には、メッセージに消費される空間も含まれます。この状態は、モジュールが最初にロードされるときだけ起こります。
デフォルト値では不十分な場合。一般には、ソフトウェアベンダーの推奨があった場合に変更します。
旧式
Solaris 10 リリースで削除
符号なし long
2048
0 から物理メモリーの総量
バイト
いいえ。msginfo 構造体の msgmax フィールドにロードされます。
なし
msgsnd(2) 呼び出しが EINVAL エラーを返す場合、またはソフトウェアベンダーが推奨する場合。
変更の可能性あり
Solaris 10 リリースでは旧式
符号付き整数
10
1 から 65,535
いいえ
SEMA_INDEX_MAX (現在は 65,535) と比較し、それより大きい場合は、SEMA_INDEX_MAX の値にリセットされます。警告メッセージがコンソール、メッセージ、またはその両方に出力されます。
デフォルトの組数では不十分な場合。一般には、ソフトウェアベンダーの推奨があった場合に変更します。現在の設定値を越えるセットを作成しようとしても、エラーメッセージは表示されません。アプリケーションは semget 呼び出しから ENOSPC というリターンコードを受け取ります。
詳細は、semget(2) のマニュアルページを参照してください。
変更の可能性あり
Solaris 10 リリースでは旧式
符号付き整数
25
1 から MAXINT
いいえ
セマフォーとそれらに関係するデータ構造体によって消費され得る空間の量が、モジュールが最初にロードされるときに使用可能なカーネルメモリーの 25% と比較されます。使用される容量がこのメモリーのしきい値より大きい場合、モジュールはロードを拒否し、セマフォー機能は利用できません。
デフォルト値では不十分な場合。一般には、ソフトウェアベンダーの推奨があった場合に変更します。設定された値を越える数のセマフォーを組として作成しようとしても、エラーメッセージは表示されません。semget(2) 呼び出しからアプリケーションにリターンコード EINVAL が返されます。
変更の可能性あり
Solaris 10 リリースでは旧式
semop 呼び出しあたりの System V セマフォー操作の最大数を指定します。このパラメータは、semop() システムコールで使用する sops 配列内の sembufs の数を参照します。詳細は、semop(2) のマニュアルページを参照してください。
符号付き整数
10
1 から MAXINT
いいえ
セマフォーとそれらに関係するデータ構造体によって消費され得る空間の量が、モジュールが最初にロードされるときに使用可能なカーネルメモリーの 25% と比較されます。使用される容量がこのメモリーのしきい値より大きい場合、モジュールはロードを拒否し、セマフォー機能は利用できません。
デフォルト値では不十分な場合。一般には、ソフトウェアベンダーの推奨があった場合に変更します。1 回の semop 呼び出しで、現在許可されている値を超える回数のセマフォー操作を実行しようとしても、エラーメッセージは表示されません。アプリケーションは semop() 呼び出しから E2BIG というリターンコードを受け取ります。
変更の可能性あり
Solaris 10 リリースで削除
符号付き整数
60
1 から MAXINT
いいえ
セマフォーとそれらに関係するデータ構造体によって消費され得る空間の量が、モジュールが最初にロードされるときに使用可能なカーネルメモリーの 25% と比較されます。使用される容量がこのメモリーのしきい値より大きい場合、モジュールはロードを拒否し、セマフォー機能は利用できません。
デフォルトのセマフォー数では不十分な場合。一般には、ソフトウェアベンダーの推奨があった場合に変更します。設定された値を越える数のセマフォーを作成しようとしても、エラーメッセージは表示されません。semget(2) 呼び出しからアプリケーションにリターンコード ENOSPC が返されます。
変更の可能性あり
Solaris 10 リリースで削除
符号付き整数
30
1 から MAXINT
いいえ
セマフォーとそれらに関係するデータ構造体によって消費され得る空間の量が、モジュールが最初にロードされるときに使用可能なカーネルメモリーの 25% と比較されます。使用される容量がこのメモリーのしきい値より大きい場合、モジュールはロードを拒否し、セマフォー機能は利用できません。
デフォルト値では不十分な場合。一般には、ソフトウェアベンダーの推奨があった場合に変更します。設定された値を越える回数の取り消し操作を実行しようとしても、エラーメッセージは表示されません。システムが取り消し構造体を使い果たすと、semop(2) 呼び出しからアプリケーションに戻り値 ENOSPC が返されます。
変更の可能性あり
Solaris 10 リリースで削除
符号付き整数
10
1 から MAXINT
いいえ
セマフォーとそれらに関係するデータ構造体によって消費され得る空間の量が、モジュールが最初にロードされるときに使用可能なカーネルメモリーの 25% と比較されます。使用される容量がこのメモリーのしきい値より大きい場合、モジュールはロードを拒否し、セマフォー機能は利用できません。
デフォルト値では不十分な場合。一般には、ソフトウェアベンダーの推奨があった場合に変更します。設定された値を越える回数の取り消し操作を実行しようとしても、エラーメッセージは表示されません。semop(2) 呼び出しからアプリケーションにリターンコード EINVAL が返されます。
変更の可能性あり
Solaris 10 リリースで削除
符号なし short
32,767
1 から 65,535
いいえ
なし
デフォルト値では不十分な場合。一般には、ソフトウェアベンダーの推奨があった場合に変更します。この最大値を越えても、エラーメッセージは表示されません。semop(2) 呼び出しからアプリケーションにリターンコード ERANGE が返されます。
変更の可能性あり
Solaris 10 リリースで削除
符号なし short
16,384
1 から 65,535
いいえ
なし
デフォルト値では不十分な場合。一般には、ソフトウェアベンダーの推奨があった場合に変更します。設定された値を越える回数の取り消し操作を実行しようとしても、エラーメッセージは表示されません。semop(2) 呼び出しからアプリケーションにリターンコード EINVAL が返されます。
変更の可能性あり
Solaris 10 リリースでは旧式
符号付き整数
100
0 から MAXINT
いいえ。shminfo 構造体の shmmni フィールドにロードされます。
System V 共有メモリーに関係するデータ構造体が最大数存在する場合に消費され得る空間量を、モジュールをロードしたときに使用可能なカーネルメモリーの 25% と比較します。消費されるメモリーが大きすぎると、モジュールをロードする試みは失敗します。
システムの限度が小さすぎる場合。一般には、ソフトウェアベンダーの推奨があった場合に変更します。
変更の可能性あり
Solaris 10 リリースでは旧式
作成できるSystem V 共有メモリーセグメントの最大サイズ。このパラメータは、アプリケーションが要求されたメモリーセグメントを作成するために必要な物理リソースが実際にあるか調べる前に検査される上限値です。
サイズが 0 の共有メモリーセグメントや、指定した値より大きいサイズの共有メモリーセグメントを作成しようとすると、 EINVAL エラーとなります。
このパラメータは、共有メモリーセグメントのサイズとしてオペレーティングシステムが受け付けることができる最大の値だけを指定します。セグメントを作成できるかどうかは、システム上で使用可能なスワップ空間の量に完全に依存します。32 ビットプロセスの場合は、接続されるセグメントのためにプロセスのアドレス空間に十分な容量があるかどうかも影響します。
符号なし long
8,388,608
32 ビットシステムでは 0 から MAXUINT32、64 ビットシステムでは 0 から MAXUINT64
バイト
いいえ。shminfo 構造体の shmmax フィールドにロードされます。
なし
デフォルト値では足りない場合。一般には、ソフトウェアベンダーの推奨があった場合に変更します。ただし、共有メモリーセグメントのサイズを制限する必要がある場合以外は、このパラメータに利用できる最大値を設定しても副次的影響はありません。
変更の可能性あり
Solaris 9 リリースでは旧式。変数は互換性の理由でカーネルに残されていますが、使用されません。