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

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

この付録には、特定のパラメータの変更履歴を記載します。また、元の機能がすでに削除されているパラメータもリストされています。

カーネルパラメータ

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

maxusers (Solaris 7 リリース)

説明

maxusers パラメータから max_nprocsmaxuprc が計算されます。

データ型

符号付き整数

デフォルト

M バイト単位のメモリー量と 1024 の小さい方

範囲

1 から 2048


注 –

/etc/system には、1024 より大きい値を指定する必要があります。2048 より大きい値が提供されると、計算では 2048 の値を使用しますが、その後の処理では、指定された値に設定されます。


単位

ユーザー

動的か

いいえ。この変数に依存する変数を計算した後に maxusers が再び参照されることはありません。

検査

なし

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

システムが計算したデフォルトのユーザープロセス数では足りない場合。プロセス数が足りないと、次のメッセージがシステムコンソールやメッセージファイルに出力されます。


out of processes
コミットレベル

変更の可能性あり

max_nprocs (Solaris 8 より前のリリース)

説明

システム上に作成できるプロセスの最大数。これには、システムプロセスとユーザープロセスが含まれます。Solaris 8 より前のリリースでは、この値は計算によって算出され、maxuprc の設定に使用されていました。

さらに、この値は、他のシステムデータ構造体のサイズを決める際にも使用されます。Solaris 8 より前のリリースでは、/etc/system に値が指定されていると、計算された値の代わりにこの値が使用されます。この変数が使用される他のデータ構造体は次のとおりです。

  • ディレクトリ名ルックアップキャッシュのサイズを決めるとき (ncsize が指定されていない場合)

  • UFS のディスク割り当て構造体を割り当てるとき (ndquot が指定されていない場合)

  • 構成されたシステム V セマフォによって使用されるメモリーの総量がシステム限度を超えていないか確認するとき

  • sun4d、sun4m、Intel プラットフォーム向けのハードウェアアドレス変換のリソースを構成するとき

データ型

符号付き整数

デフォルト

10 + (16 × maxusers)

範囲

266 から pidmax の値

動的か

いいえ。初期のパラメータ計算の後に、max_nprocsv 構造体の v_proc 要素に代入されます。動作しているシステムの v.v_proc を変更すると、ほぼ確実に、システムがクラッシュするか、エラー表示のないままデータが損傷を受けます。

検査

maxpid と比較し、それより大きい場合は、maxpid に設定されます。sun4d と Intel プラットフォームでは、さらにプラットフォーム固有の値と比較されます。max_nprocs は、max_nprocsmaxpid、プラットフォーム値のうち最も小さい値に設定されます。両プラットフォームとも、プラットフォーム値として 65,534 を使用します。

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

Solaris 8 リリースから、この値を変更することで 1 つのシステムで 30,000 を超えるプロセスをサポートできるようになりました。このパラメータの変更は、一つのシステムで 30,000 を越えるプロセスを可能にするために必要となる手順の 1 つです。

コミットレベル

変更の可能性あり

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

Solaris 2.6 カーネルパッチの一部のリビジョン (SPARC プラットフォームの 105181-10 および Intel プラットフォームの 105182-09) と Solaris 7 リリースで、新しいパラメータが導入されました。priority_paging (優先ページング) です。ページアウトスレッド活動の新しい開始点 (cachefree) も使用されます。使用可能なメモリーが cachefreelotsfree の間にある間は、実行可能部分 (テキスト、スタック、またはデータ) からのページである場合は、優先ページングはそのページをスキップするようページ検査のアルゴリズムを変更します。メモリーが lotsfree を下回ると、すべてのページが同等にみなされます。この機能はデフォルトで無効になっています。この機能を有効にするには、cachefreelotsfree より大きい値を設定するか、priority_paging 変数にゼロ以外の値を設定します (cachefreelotsfree の 2 倍の値が設定されます)。

priority_paging (Solaris 2.6 リリースおよび Solaris 7 リリース)

説明

優先ページング機能を有効にします。設定すると、cachefreelotsfree の 2 倍の値が設定され、優先ページングが有効になります。

データ型

符号付き整数

デフォルト

0

範囲

0 (cachefree が別途設定されていない場合、優先ページングを無効にする) か 1 (有効にする)

単位

切り替え (オン/オフ)

動的か

いいえ。cachefree の値はブート時にのみ設定します。実行時に有効にするには、システムの動作中に adbcachefree を設定します。

検査

なし

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

システムのメモリーが逼迫している場合、およびファイルの内容が将来必要であるような入出力を極めて多く行う場合を除き、常に有効にしておくべきです。

コミットレベル

廃止または互換性がなくなる可能性あり

cachefree (Solaris 2.6 リリースおよび Solaris 7 リリース)

説明

cachefreelotsfree より大きい値を設定すると、優先ページング機能が有効になります。この変数は、少なくともパッチ 105181 のリビジョン 10 がインストールされた Solaris 2.6 リリース、および Solaris 7 リリースが動作するシステムで使用できます。この機能は、デフォルトでは無効になっています (cachefreelotsfree が等しい)。

データ型

符号なし long

デフォルト

priority_paging が設定されていない場合は、lotsfree の値です。設定されている場合は、cachefreelotsfree の 2 倍です。

範囲

lotsfree からシステムの物理メモリー量

単位

ページ

動的か

はい

検査

lotsfree より小さいと、lotsfree の値にリセットされます。

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

システムのメモリーが逼迫している場合、およびファイルの内容が将来必要であるような入出力を極めて多く行う場合を除き、常に有効にしておくべきです。

コミットレベル

廃止または互換性がなくなる可能性あり

一般的なカーネル変数

noexec_user_stack (Solaris 2.6 リリースおよび Solaris 7 リリース)

説明

Solaris 2.6 リリースで導入されたもので、スタックを実行不能と印付けすることができます。これにより、バッファオーバーフロー攻撃が前よりも困難になります。

Solaris 2.6 リリースでは、この値はスレッド化されたアプリケーションには適用されません。すべての 64 ビットの Solaris アプリケーションでは、この変数の設定に関係なく、すべてのスタックが実行不能にされます。


注 –

この変数は Solaris 2.6、7、または 8 リリースが動作しているすべてのシステムに存在しますが、sun4u、sun4m、sun4d アーキテクチャでのみ有効です。


データ型

符号付き整数

デフォルト

0 (無効)

範囲

0 (無効)、1 (有効)

単位

切り替え (オン/オフ)

動的か

はい。ただし、すでに実行中のプロセスに対しては無効です。値が設定された後に起動されたプロセスに対してのみ有効です。

検査

なし

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

アプリケーションが、mprotect(2) を使用してスタックを実行可能にすることなくスタックに実行可能コードを意図的に置いている場合を除き、この変数は常に有効にすべきです。

コミットレベル

変更の可能性あり

一般的な入出力

rlim_fd_cur (Solaris 7 リリースおよびそれより前のリリース)

説明

1 つのプロセスがオープンできるファイル記述子数の「弱い」限度。プロセスは、自身のファイル記述子数限度を、rlim_fd_max で定義される「強い」限度の範囲内で調整できます。それには、setrlimit() 呼び出しを使用するか、プロセスを実行するシェルで limit コマンドを実行します。「強い」限度の範囲内で値を調整する場合には、スーパーユーザー特権は必要ありません。

データ型

符号付き整数

デフォルト

64

範囲

1 から MAXINT

単位

ファイル記述子

動的か

いいえ。rlimits 構造体にロードされます。

検査

rlim_fd_max と比較され、rlim_fd_cur の方が大きい場合は、rlim_fd_currlim_fd_max にリセットされます。

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

1 プロセス当たりのデフォルトのオープンファイル数が十分でない場合。この値を増やす意味は、プログラムで setrlimit(2) を使用して自身で利用できる最大ファイル記述子数を増やす必要がなくなる点にあります。

コミットレベル

変更の可能性あり

segkpsize (Solaris 7 リリースおよびそれより前のリリース)

説明

利用できるページング可能なカーネルのメモリー量を指定します。このメモリーは主にカーネルスレッドのスタックに使用されます。この値を増やすと、スレッドの数を増やさないのであれば個々のスレッドでより大きなスタックが使用でき、あるいはより多くのスレッドを使用できるようになります。このパラメータは 64 ビットカーネルでのみ設定できます。64 ビットカーネルは、デフォルトでスタックサイズに 24K バイトを使用します。

このパラメータは、パッチ 106541-04 が適用された Solaris 7 リリースか、Solaris 7 5/99 リリース、および Solaris 8 リリースで使用できます。

データ型

符号なし long

デフォルト

64 ビットカーネルでは 2G バイト

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

範囲

64 ビットカーネルでは 512M バイトから 24G バイト

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

単位

M バイト

動的か

いいえ

検査

なし

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

スレッドを増やしたい場合

コミットレベル

変更の可能性あり

仮想端末

pt_cnt (Solaris 7 リリースおよびそれより前のリリース)

説明

再構成ブートで作成する /dev/pts (telnetrlogin でネットワークログインに使用される仮想端末デバイス) エントリの数。このパラメータにより、ネットワークを介して同時にログインできるユーザー数が、pt_cnt の値に制限されます。追加のデバイスノードを作成するためには、/etc/system ファイルを変更した後で再構成ブート (boot -r) を行う必要があります。

データ型

符号付き整数

デフォルト

48

範囲

0 から maxpid

単位

ログイン / ウィンドウ

動的か

いいえ

検査

なし。値が過度に大きすぎると、システムがハングします。

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

必要な数のユーザーがシステムにログインできない場合

コミットレベル

変更の可能性あり

Sun4u 特有

enable_grp_ism (Solaris 2.6 リリース)

説明

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 を使用する場合に有効にする

コミットレベル

変更の可能性あり

機能が削除されたパラメータ

この節では、機能はすでに削除されているが、互換性の理由でまだ残されているパラメータについて記述します。これらのパラメータを設定しても無視されます。

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

tune_t_gpgslo

説明

廃止。変数は互換性の理由で残されています。

tune_t_minasmem

説明

廃止。変数は互換性の理由で残されています。

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

msgsys:msginfo_msgssz

説明

システムがメッセージバッファ用の空間の制御に使用する断片のサイズを指定します。Solaris 8 リリースから廃止されています。

データ型

符号付き整数

デフォルト

40

範囲

0 から MAXINT

動的か

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

検査

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

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

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

コミットレベル

廃止または互換性がなくなる可能性あり

msgsys:msginfo_msgmap

説明

システムがサポートするメッセージの数。Solaris 8 リリースから廃止されています。

データ型

符号付き整数

デフォルト

100

範囲

0 から MAXINT

動的か

いいえ

検査

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

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

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

コミットレベル

廃止または互換性がなくなる可能性あり

msgsys:msginfo_msgseg

説明

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

データ型

符号付き short

デフォルト

1024

範囲

0 から 32,767

動的か

いいえ

検査

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

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

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

コミットレベル

廃止または互換性がなくなる可能性あり

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

semsys:seminfo_semmap

廃止。変数は互換性の理由でカーネルに残されていますが、使用されません。

semsys:seminfo_semusz

廃止。値を入力しても無視されます。

NFS モジュールのパラメータ

nfs:nfs_32_time_ok

Solaris 8 リリースで廃止されています。

nfs:nfs_acl_cache

Solaris 2.6 リリースで廃止されています。