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

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

この節では、nfssrv モジュールの NFS パラメータについて説明します。

nfssrv:nfs_portmon

備考欄

NFS サーバーがクライアント側の整合性を確保するために行おうとする一部のセキュリティーチェックを制御します。NFS では、要求を送信したソースポートが「予約ポート」だったかどうかをチェックできます。予約ポートには 1024 未満の番号が与えられます。BSD ベースのシステムでは、これらのポートは root が実行するプロセス用に予約されています。このセキュリティーチェックでは、ユーザーが独自の RPC ベースのアプリケーションを作成して、NFS クライアントが使用するアクセスチェックを破ることを防止できます。

データ型

整数 (32 ビット)

デフォルト

0 (セキュリティーチェックを無効にする)

範囲

0 (セキュリティーチェックを無効にする) または 1 (セキュリティーチェックを有効にする)

単位

ブール値

動的か

はい

検査

なし

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

悪意のあるユーザーが、普通ならアクセス権のない NFS サーバーを使用してファイルにアクセスするのを防ごうとする場合、このパラメータを使用します。しかし、「予約ポート」は広範にサポートされている概念ではありません。したがって、このチェックにおけるセキュリティーの側面は非常に弱いものです。また、すべての NFS クライアントが予約の範囲内のポート番号にトランスポート終端を結びつけるわけでもありません。したがって、セキュリティーチェックを有効にすると、相互運用性に関する問題が起きることがあります。

コミットレベル

変更の可能性あり

nfssrv:rfs_write_async

備考欄

NFS バージョン 2 サーバーが WRITE 要求をどのように処理するかを制御します。NFS バージョン 2 プロトコルでは、WRITE 要求に関連するすべての変更済みデータとメタデータが安定したストレージに格納されていないと、サーバーはクライアントに応答できません。NFS バージョン 2 の WRITE 要求は、データは 8192 バイトに制限されます。したがって、各 WRITE 要求によって、複数の小さい書き込みがストレージサブシステムに対して行われることがあります。これは、パフォーマンス低下の原因になります。

NFS バージョン 2 の WRITE 要求を高速化する方法の 1 つは、クライアントの動作を活用することです。クライアントは、複数の WRITE 要求をバッチで (一括して) 送信する傾向があります。サーバーでは、この動作を利用して複数の WRITE 要求を 1 つの要求にクラスタ化し、ファイルシステムに出すことができます。こうして、要求の数を少なくし、要求のサイズを大きくして、データをストレージサブシステムに書き込むことができます。この方式によって、WRITE 要求のスループットが大幅に向上します。

データ型

整数 (32 ビット)

デフォルト

1 (クラスタ化を有効にする)

範囲

0 (クラスタ化を無効にする) または 1 (クラスタ化を有効にする)

単位

ブール値

動的か

はい

検査

なし

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

特に PC クライアントなど、非常に小さい NFS クライアントのなかには、複数の WRITE 要求をバッチ化しないものがあります。したがって、クライアントが要求した動作が存在しないということもあります。また、NFS バージョン 2 サーバーにおいて、クラスタ化はオーバーヘッドの増加をもたらすだけで、パフォーマンスがむしろ下がるという場合もあります。

コミットレベル

変更の可能性あり

nfssrv:nfsauth_ch_cache_max

備考欄

NFS 認証サーバーに接続するクライアントハンドルのキャッシュサイズを制御します。サーバーは、NFS クライアントを認証して、クライアントが使用しようとしているファイルハンドルへのアクセスが許可できるかどうかを判定します。

データ型

整数 (32 ビット)

デフォルト

16

範囲

0 から 231 - 1

単位

クライアントハンドル

動的か

はい

検査

なし

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

このキャッシュは動的でないため、すべてのクライアントハンドルが使用されていると、クライアントハンドルの割り当て要求は失敗します。その結果、NFS サーバーは、この要求を認証できなかったという理由で要求を廃棄します。しかし、ほとんどの場合、NFS クライアントはタイムアウトになり、要求を再転送するため、これは問題になりません。しかし、クライアントにソフトマウントされたファイルシステムの場合、クライアントは、タイムアウトになっても要求を再試行せず、アプリケーションにエラーを返すことがあります。サーバーのキャッシュを負荷に対応できるだけの大きさにしておけば、このような状況を防止できることがあります。

コミットレベル

変更の可能性あり

nfssrv:exi_cache_time

備考欄

システムのメモリー要求によりエントリが破棄されるまでに、NFS 認証キャッシュに保持される時間の長さを制御します。

データ型

long 整数 (32 ビットプラットフォームでは 32 ビット、64 ビットプラットフォームでは 64 ビット)

デフォルト

3600 秒 (1 時間)

範囲

32 ビットプラットフォームでは 0 から 231 - 1

64 ビットプラットフォームでは 0 から 263 - 1

単位

動的か

はい

検査

なし

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

NFS 認証キャッシュのサイズは、エントリがキャッシュから消去されるまでの最小限の時間を変更することによって調整することができます。キャッシュのサイズは、大きくなりすぎないように制御すべきです。そうすれば、この時間のプロセスによって開放されなかったシステムリソースを使用できます。

コミットレベル

変更の可能性あり