この付録には、特定のパラメータの変更履歴を記載します。また、元の機能がすでに削除されているパラメータもリストされています。
符号付き整数
M バイト単位のメモリー量と 1024 の小さい方
1 から 2048
/etc/system には、1024 より大きい値を指定する必要があります。2048 より大きい値が提供されると、計算では 2048 の値を使用しますが、その後の処理では、指定された値に設定されます。
ユーザー
いいえ。この変数に依存する変数を計算した後に maxusers が再び参照されることはありません。
なし
システムが計算したデフォルトのユーザープロセス数では足りない場合。プロセス数が足りないと、次のメッセージがシステムコンソールやメッセージファイルに出力されます。
out of processes |
変更の可能性あり
システム上に作成できるプロセスの最大数。これには、システムプロセスとユーザープロセスが含まれます。Solaris 8 より前のリリースでは、この値は計算によって算出され、maxuprc の設定に使用されていました。
さらに、この値は、他のシステムデータ構造体のサイズを決める際にも使用されます。Solaris 8 より前のリリースでは、/etc/system ファイルに値が指定されていると、計算された値の代わりにこの値が使用されます。この変数が使用される他のデータ構造体は次のとおりです。
ディレクトリ名ルックアップキャッシュのサイズを決めるとき (ncsize が指定されていない場合)
UFS のディスク割り当て構造体を割り当てるとき (ndquot が指定されていない場合)
構成されたシステム V セマフォによって使用されるメモリーの総量がシステム限度を超えていないか確認するとき
sun4d、sun4m、Intel プラットフォーム向けのハードウェアアドレス変換のリソースを構成するとき
符号付き整数
10 + (16 x maxusers )
266 から pidmax の値
いいえ。初期のパラメータ計算の後に、max_nprocs は v 構造体の v_proc 要素に代入されます。動作しているシステムの v.v_proc を変更すると、ほぼ確実に、システムがクラッシュするか、エラー表示のないままデータが損傷を受けます。
maxpid と比較し、それより大きい場合は、maxpid に設定されます。sun4d と Intel プラットフォームでは、さらにプラットフォーム固有の値と比較されます。max_nprocs は、max_nprocs、maxpid、プラットフォーム値のうち最も小さい値に設定されます。両プラットフォームとも、プラットフォーム値として 65,534 を使用します。
Solaris 8 リリースから、この値を変更することで 1 つのシステムで 30,000 を超えるプロセスをサポートできるようになりました。このパラメータの変更は、1 つのシステムで 30,000 を越えるプロセスを可能にするために必要となる手順の 1 つです。
変更の可能性あり
Solaris 2.6 カーネルパッチの一部のリビジョン (SPARC プラットフォームの 105181-10 および Intel プラットフォームの 105182-09) と Solaris 7 リリースで、新しいパラメータが導入されました。 priority_paging (優先度ページング) です。ページアウトスレッド活動の新しい開始点 (cachefree) も使用されます。使用可能なメモリーが cachefree と lotsfree の間にある間は、実行可能部分 (テキスト、スタック、またはデータ) からのページである場合は、優先度ページングはそのページをスキップするようページ検査のアルゴリズムを変更します。メモリーが lotsfree を下回ると、すべてのページが同等にみなされます。この機能はデフォルトで無効になっています。この機能を有効にするには、cachefree に lotsfree より大きい値を設定するか、priority_paging 変数にゼロ以外の値を設定します (cachefree に lotsfree の 2 倍の値が設定されます)。
Solaris 8 リリースで、ファイルシステムページのキャッシュ方法が変更されました。これらの変更には、優先度ページング機能が含まれます。
cachefree と priority_paging の両方の設定を /etc/system ファイルから削除してください。
キャッシュ方法の変更により、ファイルシステムの動作に伴って発生する仮想メモリーシステムへの負担がほとんど解消されます。統計によると、次のような新しい動作が見られます。
ページ再利用の数が多くなります。これは、入出力が終了すると、ページが明示的に空リストに追加されるためです。
空きメモリーが増えます。これは、空きメモリーのカウントにファイルキャッシュの大部分が含まれるためです。
走査率が大幅に減ります。
廃止または互換性がなくなる可能性あり
詳細は、cachefree (Solaris 2.6 リリースおよび Solaris 7 リリース)を参照してください。
cachefree に lotsfree より大きい値を設定すると、優先度ページング機能が有効になります。この変数は、少なくともパッチ 105181 のリビジョン 10 がインストールされた Solaris 2.6 リリース、および Solaris 7 リリースが動作するシステムで使用できます。この機能は、デフォルトでは無効になっています (cachefree と lotsfree が等しい)。
符号なし long
priority_paging が設定されていない場合は、lotsfree の値です。設定されている場合は、cachefree は lotsfree の 2 倍です。
lotsfree からシステムの物理メモリー量
ページ
はい
lotsfree より小さいと、lotsfree の値にリセットされます。
システムのメモリーが逼迫している場合、およびファイルの内容が将来必要であるような入出力を極めて多く行う場合を除き、常に有効にしておくべきです。
廃止または互換性がなくなる可能性あり
この変数に基づき lotsfree の 2 倍の値が cachefree に設定されます。
Solaris 8 リリースで、ファイルシステムページのキャッシュ方法が変更されました。これらの変更には、優先度ページング機能が含まれます。
cachefree と priority_paging の両方の設定を /etc/system ファイルから削除してください。
廃止または互換性がなくなる可能性あり
詳細は、priority_paging (Solaris 2.6 リリースおよび Solaris 7 リリース)を参照してください。
優先度ページング機能を有効にします。設定すると、cachefree に lotsfree の 2 倍の値が設定され、優先度ページングが有効になります。
符号付き整数
0
(cachefree が別途設定されていない場合、優先度ページングを無効にする) か 1 (有効にする)
切り替え (オン/オフ)
いいえ。cachefree の値はブート時にのみ設定します。実行時に有効にするには、システムの動作中に mdb で cachefree を設定します。
なし
システムのメモリーが逼迫している場合、およびファイルの内容が将来必要であるような入出力を極めて多く行う場合を除き、常に有効にしておくべきです。
廃止または互換性がなくなる可能性あり
符号付き long
256
0 からスワップ空間サイズの最大値
バイト
はい
なし
TMPFS が大量に使用されるシステムで適度なスワップ空間を維持するために、この値を増やすことができます。次のメッセージがコンソールやシステムメッセージファイルに出力された場合は、使用量がこの限度に達したことを示しています。
fs-name: File system full, swap space limit exceeded |
変更の可能性あり
ロックされていないことをシステムが要求するページ数を定義します。ページのロック要求によって使用可能なメモリーがこの値を下回る場合は、その要求は拒否されます。
符号なし long
200、tune_t_minarmem + 100、[ブート時に使用可能なメモリーの 10%] 、のうちで最も大きいもの
デフォルト値から物理メモリーの 20% 以内。システムは、「検査」の項目で記述されていなければ、この範囲を強制しません。
ページ
はい、ただしメモリーの追加や削除を伴う動的再構成が行われると、動的に変更した値は無効になります。その時点でこの値は、/etc/system ファイルに指定された値か、計算された値にリセットされます。
200、tune_t_minarmem + 100、[使用可能なメモリーの 10%]、/etc/system からの値の中で最も大きいもの。/etc/system からの値が増やされても、メッセージは表示されません。ブート時にのみ行われます。
メモリーのロック要求や、SHARE_MMU フラグを指定した共有メモリーセグメントへの接続が失敗したが、使用可能なメモリーが十分ありそうな場合。32G バイトシステムで、メモリーの 10% を空き状態に維持することは過剰である場合があります。
値が大きすぎると、メモリーロック要求が不必要に失敗する可能性があります。
変更の可能性あり
Solaris 2.6 リリースで導入されたもので、スタックを実行不能と印付けすることができます。これにより、バッファオーバーフロー攻撃が前よりも困難になります。
Solaris 2.6 リリースでは、この値はスレッド化されたアプリケーションには適用されません。すべての 64 ビットの Solaris アプリケーションでは、この変数の設定に関係なく、すべてのスタックが実行不能にされます。
この変数は Solaris 2.6、7、または 8 リリースが動作しているすべてのシステムに存在しますが、sun4u、sun4m、sun4d アーキテクチャでのみ有効です。
符号付き整数
0 (無効)
0 (無効)、1 (有効)
切り替え (オン/オフ)
はい。ただし、すでに実行中のプロセスに対しては無効です。値が設定された後に起動されたプロセスに対してのみ有効です。
なし
アプリケーションが、mprotect(2) を使用してスタックを実行可能にすることなくスタックに実行可能コードを意図的に置いている場合を除き、この変数は常に有効にすべきです。
変更の可能性あり
1 つのプロセスがオープンできるファイル記述子数の「弱い」限度。プロセスは、自身のファイル記述子数限度を、rlim_fd_max で定義される「強い」限度の範囲内で調整できます。それには、setrlimit() 呼び出しを使用するか、プロセスを実行するシェルで limit コマンドを実行します。「強い」限度の範囲内で値を調整する場合には、スーパーユーザー特権は必要ありません。
符号付き整数
64
1 から MAXINT
ファイル記述子
いいえ。rlimits 構造体にロードされます。
rlim_fd_max と比較され、rlim_fd_cur の方が大きい場合は、rlim_fd_cur は rlim_fd_max にリセットされます。
1 プロセス当たりのデフォルトのオープンファイル数が十分でない場合。この値を増やす意味は、プログラムで setrlimit(2) を使用して自身で使用できる最大ファイル記述子数を増やす必要がなくなる点にあります。
変更の可能性あり
符号付き整数
1024
1 から MAXINT
ファイル記述子
いいえ
なし
1 プロセス当たりの最大オープンファイル数が十分でない場合。ただし、システムには他の制限もあるため、ファイル記述子の数を増やすことが必ずしも有用とは限らないことに留意してください。
標準入出力を使用する 32 ビットプログラムでは、256 ファイル記述子に制限されます。標準入出力を使用する 64 ビットプログラムでは、20 億の記述子まで使用できます。
select(3C) では、デフォルトで、fd_set によって 1024 記述子に限定されます。ただし、Solaris 7 リリース以降では、32 ビットアプリケーションコードをより大きな fd_set サイズ (65,536 以下) で再コンパイルできます。64 ビットアプリケーションの fd_set サイズは 65,536 で、変更することはできません。
システム全体に対してこれを変更する別の方法として plimit(1) コマンドがあります。plimit を使用して親となるプロセスの限度を変更すると、すべての子プロセスがその限度を継承します。これは inetd などのデーモンに便利です。
変更の可能性あり
利用できるページング可能なカーネルのメモリー量を指定します。このメモリーは主にカーネルスレッドのスタックに使用されます。この値を増やすと、スレッドの数を増やさないのであれば個々のスレッドでより大きなスタックが使用でき、あるいはより多くのスレッドを使用できるようになります。このパラメータは 64 ビットカーネルでのみ設定できます。64 ビットカーネルは、デフォルトでスタックサイズに 24K バイトを使用します。
このパラメータは、パッチ 106541-04 が適用された Solaris 7 リリース、Solaris 7 5/99 リリース、および Solaris 8 リリースで使用できます。
符号なし long
64 ビットカーネルでは 2G バイト
32 ビットカーネルでは 512M バイト
64 ビットカーネルでは 512M バイトから 24G バイト
32 ビットカーネルでは 512M バイト
M バイト
いいえ
なし
スレッドを増やしたい場合
変更の可能性あり
再構成ブートで作成する /dev/pts (telnet や rlogin でネットワークログインに使用される仮想端末デバイス) エントリの数。このパラメータにより、ネットワークを介して同時にログインできるユーザー数が、pt_cnt の値に制限されます。追加のデバイスノードを作成するためには、/etc/system ファイルを変更した後で再構成ブート (boot -r) を行う必要があります。
符号付き整数
48
0 から maxpid
ログイン / ウィンドウ
いいえ
なし。値が過度に大きすぎると、システムがハングします。
必要な数のユーザーがシステムにログインできない場合
変更の可能性あり
SHARE_MMU フラグを設定して接続された System V Shared Memory の共有メモリー Translation Setaside Buffer (TSB) 機能を有効にします。このパラメータは、パッチ 105181-05 以降がインストールされた Solaris 2.6 リリースで利用できます。Solaris 7 リリースからはこのパラメータ名は削除されましたが、システムはデフォルトでこの機能を実装します。
符号付き整数
0
0 (無効)、1 (有効)
いいえ
なし
SHARE_MMU フラグを設定して接続された System V Shared Memory を使用する場合に有効にする
変更の可能性あり
この節では、機能はすでに削除されているが、互換性の理由でまだ残されているパラメータについて記述します。これらのパラメータを設定しても無視されます。
システムがメッセージバッファ用の空間の制御に使用する断片のサイズを指定します。Solaris 8 リリースから廃止されています。
符号付き整数
40
0 から MAXINT
いいえ。msginfo 構造体の msgtql フィールドにロードされます。
メッセージやキューのために作成されるデータ構造体が最大数存在する場合に消費される空間と、モジュールがロードされるときの使用可能なカーネルメモリーの 25% を比較します。使用される空間があまりに大きいと、メッセージキューモジュールはロードを拒否し、この機能は利用できません。この計算には、メッセージに消費される空間も含まれます。この状態は、モジュールが最初にロードされるときだけ起こります。
デフォルト値では不十分な場合。一般には、ソフトウェアベンダーの推奨があった場合に変更します。
廃止または互換性がなくなる可能性あり
符号付き整数
100
0 から MAXINT
いいえ
メッセージやキューのために作成されるデータ構造体が最大数存在する場合に消費される空間と、モジュールがロードされるときの使用可能なカーネルメモリーの 25% を比較します。使用される空間があまりに大きいと、メッセージキューモジュールはロードを拒否し、この機能は利用できません。この計算には、メッセージに消費される空間も含まれます。この状態は、モジュールが最初にロードされるときだけ起こります。
デフォルト値では不十分な場合。一般には、ソフトウェアベンダーの推奨があった場合に変更します。
廃止または互換性がなくなる可能性あり
使用可能なメッセージメモリーのプールとしてシステムが使用する msginfo_msgssz セグメントの数。メッセージに使用できる合計のメモリーは msginfo_msgseg * msginfo_msgssz です。Solaris 8 リリースで廃止されています。
符号付き short
1024
0 から 32,767
いいえ
メッセージやキューのために作成されるデータ構造体が最大数存在する場合に消費される空間と、モジュールがロードされるときの使用可能なカーネルメモリーの 25% を比較します。使用される空間があまりに大きいと、メッセージキューモジュールはロードを拒否し、この機能は利用できません。この計算には、メッセージに消費される空間も含まれます。この状態は、モジュールが最初にロードされるときだけ起こります。
デフォルト値では不十分な場合。一般には、ソフトウェアベンダーの推奨があった場合に変更します。
廃止または互換性がなくなる可能性あり
廃止または互換性がなくなる可能性あり。変数は互換性の理由でカーネルに残されていますが、使用されません。
廃止または互換性がなくなる可能性あり。値を入力しても無視されます。
廃止または互換性がなくなる可能性あり。変数は互換性の理由でカーネルに残されていますが、使用されません。
廃止または互換性がなくなる可能性あり。変数は互換性の理由でカーネルに残されていますが、使用されません。