ディレクトリ名ルックアップキャッシュ (DNLC) のエントリ数。このパラメータは、UFS や NFS が、解決されたパス名の要素をキャッシュするときに使用します。
Solaris 8 6/00 リリースから、DNLC には、ネガティブルックアップ情報もキャッシュされます。つまり、名前がキャッシュにない場合は、その名前がキャッシュされます。
符号付き整数
4 × (v.v_proc + maxusers) + 320
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_inode や nfs:nfs_rnode が明示的に設定されていない場合は、この値が UFS や NFS にも影響を与えます。
変更の可能性あり
chown(2) システム呼び出しの POSIX 挙動が有効かどうかを示します。POSIX 挙動は次のとおりです。
プロセスは、UID 0 で動作していない限りファイルの所有者を変更できない。
プロセスは、UID 0 で動作していない限り、ファイルのグループ所有権を、現在メンバーになっていないグループに変更することはできない。
符号付き整数
1 (POSIX 挙動が使用されている)
0 = POSIX 挙動が有効ではない、1 = POSIX 挙動が使用されている
切り替え (オン/オフ)
はい
なし
POSIX 挙動が適切でない場合。POSIX 挙動をオフにすると、さまざまなセキュリティホールの可能性が出てくる点に留意してください。さらに、ユーザーがファイルの所有権を別のユーザーに変更する可能性も生じます。その場合は、新たに所有者になったユーザーかシステム管理者の介入なしにはそのファイルの所有権を元に戻せません。
廃止または互換性がなくなる可能性あり
符号なし整数
1 (有効)
0 (無効)、1 (有効)
はい。しかし、このチューニング可能パラメータを動的に変更してはいけません。これが無効になっていれば有効に、有効になっていれば無効にすることはできますが、このパラメータを有効にし、無効にし、再び有効にすると、ディレクトリキャッシュが最新の状態を表さないことがあります。
なし
ディレクトリキャッシュ機能に既知の問題はありませんが、何らかの問題が発生した場合は、dnlc_dir_enable を 0 に設定してキャッシュを無効にしてください。
変更の可能性あり
符号なし整数
40
0 から MAXUINT (無制限)
エントリ
はい。いつでも変更できます。
なし
小さいディレクトリのキャッシュにおいてパフォーマンスに問題がある場合は、dnlc_dir_min_size を増やします。個々のファイルシステムに、キャッシングディレクトリの独自の範囲限度があることもある点に留意してください。たとえば、UFS ではディレクトリの最小は ufs_min_dir_cache バイトです (1 エントリ当たり 16 バイトとして、およそ 1024 エントリ)。
変更の可能性あり