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

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

ncsize

備考欄

ディレクトリ名検索キャッシュ (DNLC) のエントリ数を指定します。このパラメータは、UFS、NFS、および ZFS が、解決されたパス名の要素をキャッシュするときに使用します。

Solaris 8 6/00 リリース以降、DNLC は否定的な検索情報もキャッシュします。つまり、キャッシュ内で検出されない名前がキャッシュされます。

データ型

符号付き整数

デフォルト

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

範囲

0 から MAXINT

単位

DNLC のエントリ

動的か

いいえ

検査

ありません。値を増やすと、ファイルシステムのアンマウントに必要な時間が増えます。これは、アンマウントプロセスでそのファイルシステムのエントリをキャッシュから削除する必要があるためです。

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

Solaris 8 6/00 より前のリリースでは、キャッシュが小さすぎるかどうかを判定するのは困難でした。これを推定するには、kstat -n ncstats が返したエントリ数に着目します。システムの負荷やファイルアクセスのパターンに較べこの値が大きいように思われる場合は、DNLC のサイズに原因があるかもしれません。

Solaris 8 6/00 リリース以降では、kstat -n dnlcstats コマンドを使用して、DNLC が小さすぎるために DNLC からエントリが削除されたことを知ることができます。pick_heuristic パラメータと pick_last パラメータの合計は、キャッシュが小さすぎるために再利用されたエントリ (そうでなければ有効であったはずのエントリ) の数を表します。

ncsize の値が大きすぎると、システムに直接的な影響があります。システムは、ncsize の値に基づいて DNLC の一連のデータ構造体を割り当てるからです。32 ビットカーネルが動作しているシステムは ncsize に 36 バイトの構造体を、64 ビットカーネルが動作しているシステムは ncsize に 64 バイトの構造体をそれぞれ割り当てます。ufs_ninode nfs:nrnode が明示的に設定されていないと、この値は UFS と NFS にさらに影響を与えます。

コミットレベル

変更の可能性あり

変更履歴

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

rstchown

備考欄

chown システム呼び出しの POSIX 挙動が有効かどうかを示します。POSIX 挙動は次のとおりです。

  • プロセスは、UID 0 で動作していない限りファイルの所有者を変更できない。

  • プロセスは、UID 0 で動作していない限り、ファイルのグループ所有権を、現在メンバーになっていないグループに変更することはできない。

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

データ型

符号付き整数

デフォルト

1 (POSIX 挙動が使用されている)

範囲

0 (POSIX 挙動が強制されない) または 1 (POSIX 挙動が使用される)

単位

切り替え (オン/オフ)

動的か

はい

検査

なし

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

POSIX 挙動が適切でない場合。POSIX 挙動をオフにすると、さまざまなセキュリティーホールの可能性が出てくる点に留意してください。オフにすると、ユーザーがファイルの所有権を別のユーザーに変更する可能性も生じます。その場合は、新たに所有者になったユーザーかシステム管理者の介入なしにはそのファイルの所有権を元に戻せません。

コミットレベル

旧式

dnlc_dir_enable

備考欄

大きなディレクトリのキャッシングを有効にします。


注 –

このパラメータは NFS または ZFS ファイルシステムでは無効です。


データ型

符号なし整数

デフォルト

1 (有効)

範囲

0 (無効)、1 (有効)

動的か

はい。しかし動的には変更しないでください。このパラメータは、元々無効だった場合に有効にできます。または、元々有効だった場合に、無効にできます。しかし、有効にし、無効にし、再び有効にすると、ディレクトリキャッシュが最新の状態を表さないことがあります。

検査

いいえ

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

ディレクトリキャッシングに既知の問題はありません。しかし、問題が生じた場合は、dnlc_dir_enable を 0 に設定してキャッシングを無効にしてください。

コミットレベル

変更の可能性あり

dnlc_dir_min_size

備考欄

1 つのディレクトリでキャッシュする最小エントリ数を指定します。


注 –

このパラメータは NFS または ZFS ファイルシステムでは無効です。


データ型

符号なし整数

デフォルト

40

範囲

0 から MAXUINT (無制限)

単位

エントリ

動的か

はい、このパラメータはいつでも変更できます。

検査

なし

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

小さいディレクトリのキャッシュにおいてパフォーマンスに問題がある場合は、dnlc_dir_min_size を増やします。個々のファイルシステムに、キャッシングディレクトリの独自の範囲限度があることもある点に留意してください。たとえば、UFS ではディレクトリの最小は ufs_min_dir_cache バイトです (1 エントリ当たり 16 バイトとして、およそ 1024 エントリ)。

コミットレベル

変更の可能性あり

dnlc_dir_max_size

備考欄

1 つのディレクトリでキャッシュできるエントリの最大数を指定します。


注 –

このパラメータは NFS または ZFS ファイルシステムでは無効です。


データ型

符号なし整数

デフォルト

MAXUINT (無制限)

範囲

0 から MAXUINT

動的か

はい、このパラメータはいつでも変更できます。

検査

なし

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

大きなディレクトリでパフォーマンスに問題がある場合は、dnlc_dir_max_size を減らします。

コミットレベル

変更の可能性あり

segmap_percent

備考欄

高速アクセスファイルシステムキャッシュに使用するメモリーの最大量を指定します。このメモリープールは空きメモリーリストから差し引かれます。

データ型

符号なし整数

デフォルト

システム起動時の空きメモリーの 12%。

範囲

2M バイトからphysmem の 100%。

単位

物理メモリーの %

動的か

いいえ

検査

なし

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

活発なファイルシステム動作が予想され、なおかつ使用可能な空きメモリーが十分にある場合は、このパラメータの値を増やします。

コミットレベル

変更の可能性あり