NFS モデルのサービス
次のセクションでは、クライアントとサーバー間の通信用のネットワーク ファイル システム (NFS) モデルの Microsoft Services に関する情報を提供します。 NFS v2 と NFS v3 は引き続き最も広くデプロイされているバージョンのプロトコルであるため、MaxConcurrentConnectionsPerIp を除くすべてのレジストリ キーは NFS v2 と NFS v3 にのみ適用されます。
NFS v4.1 プロトコルでは、レジストリチューニングは必要ありません。
NFS モデルのサービスの概要
Microsoft Services for NFS は、Windows 環境と UNIX 環境が混在する企業のためのファイル共有ソリューションです。 この通信モデルは、クライアント コンピューターとサーバーで構成されます。 クライアント上のアプリケーションがサーバーにあるファイルを、リダイレクター (Rdbss.sys) および NFS ミニリダイレクター (Nfsrdr.sys) を介して要求します。 ミニリダイレクターは、NFS プロトコルを使用して、TCP/IP 経由で要求を送信します。 サーバーはクライアントからの複数の要求を TCP/IP を介して受信して、その要求をローカル ファイル システム (Ntfs.sys) にルーティングすると、そこからストレージ スタックにアクセスします。
次の図は、NFS の通信モデルを示しています。
NFS ファイル サーバーのチューニング パラメーター
次のREG_DWORDレジストリ設定は、NFS ファイル サーバーのパフォーマンスに影響する可能性があります。
オプティマルリード
HKLM\System\CurrentControlSet\Services\NfsServer\Parameters\OptimalReads
既定値は 0 です。 このパラメーターは、ワークロード I/O 特性に応じて、ファイルをFILE_RANDOM_ACCESSまたはFILE_SEQUENTIAL_ONLY用に開くかどうかを決定します。 FILE_RANDOM_ACCESSのファイルを強制的に開くには、この値を 1 に設定します。 FILE_RANDOM_ACCESSはファイルシステムとキャッシュマネージャーがプリフェッチを行わないようにします。
注
この設定は、システム ファイル キャッシュの拡大に影響する可能性があるため、慎重に評価する必要があります。
RdWrHandleLifeTime(RdWrハンドルライフタイム)
HKLM\System\CurrentControlSet\Services\NfsServer\Parameters\RdWrHandleLifeTime
既定値は 5 です。 このパラメーターは、ファイル ハンドル キャッシュ内の NFS キャッシュ エントリの有効期間を制御します。 このパラメーターは、開いている NTFS ファイル ハンドルが関連付けられているキャッシュ エントリを参照します。 実際の有効期間は、RdWrHandleLifeTime に RdWrThreadSleepTime を乗算した値とほぼ同じです。 最小値は 1、最大値は 60 です。
RdWrNfsHandleLifeTime(RdWrNfsハンドルライフタイム)
HKLM\System\CurrentControlSet\Services\NfsServer\Parameters\RdWrNfsHandleLifeTime
既定値は 5 です。 このパラメーターは、ファイル ハンドル キャッシュ内の NFS キャッシュ エントリの有効期間を制御します。 このパラメーターは、開いている NTFS ファイル ハンドルが関連付けられていないキャッシュ エントリを参照します。 NFS サービスでは、これらのキャッシュ エントリを使用して、ファイル システムで開いているハンドルを保持せずに、ファイルのファイル属性を格納します。 実際の有効期間は、RdWrNfsHandleLifeTime に RdWrThreadSleepTime を乗算した値とほぼ同じです。 最小値は 1、最大値は 60 です。
RdWrNfsReadHandlesライフタイム
HKLM\System\CurrentControlSet\Services\NfsServer\Parameters\RdWrNfsReadHandlesLifeTime
既定値は 5 です。 このパラメーターは、ファイル ハンドル キャッシュ内の NFS 読み取りキャッシュ エントリの有効期間を制御します。 実際の有効期間は、RdWrNfsReadHandlesLifeTime に RdWrThreadSleepTime を乗算した値とほぼ同じです。 最小値は 1、最大値は 60 です。
RdWrThreadスリープタイム
HKLM\System\CurrentControlSet\Services\NfsServer\Parameters\RdWrThreadSleepTime
既定値は 5 です。 このパラメーターは、ファイル ハンドル キャッシュでクリーンアップ スレッドを実行する前の待機間隔を制御します。 値はティック単位で、非決定論的です。 1 ティックは約 100 ナノ秒に相当します。 最小値は 1、最大値は 60 です。
File Handle Cache Size in MB
HKLM\System\CurrentControlSet\Services\NfsServer\Parameters\FileHandleCacheSizeinMB
既定値は 4 です。 このパラメーターは、ファイル ハンドル キャッシュ エントリによって消費される最大メモリを指定します。 最小値は 1、最大値は 1*1024*1024*1024 (1073741824) です。
LockFileHandleCacheInMemory
HKLM\System\CurrentControlSet\Services\NfsServer\Parameters\LockFileHandleCacheInMemory
既定値は 0 です。 このパラメーターは、FileHandleCacheSizeInMB で指定されたキャッシュ サイズに割り当てられている物理ページがメモリ内でロックされているかどうかを指定します。 この値を 1 に設定すると、このアクティビティが有効になります。 ページはメモリ内でロックされます (ディスクにページングされません)。これにより、ファイル ハンドルを解決するパフォーマンスが向上しますが、アプリケーションで使用できるメモリが削減されます。
MaxIcbNfsReadHandlesCacheSize
HKLM\System\CurrentControlSet\Services\NfsServer\Parameters\MaxIcbNfsReadHandlesCacheSize
既定値は 64 です。 このパラメーターは、読み取りデータ キャッシュのボリュームあたりのハンドルの最大数を指定します。 読み取りキャッシュ エントリは、メモリが 1 GB を超えるシステムでのみ作成されます。 最小値は 0 で、最大値は0xFFFFFFFF。
ハンドル署名が有効
HKLM\System\CurrentControlSet\Services\NfsServer\Parameters\HandleSigningEnabled
既定値は 1 です。 このパラメーターは、NFS ファイル サーバーによって提供されるハンドルが暗号化によって署名されるかどうかを制御します。 0 に設定すると、ハンドル署名が無効になります。
RdWrNfsDeferredWritesFlushDelay
HKLM\System\CurrentControlSet\Services\NfsServer\Parameters\RdWrNfsDeferredWritesFlushDelay
既定値は 60 です。 このパラメーターは、NFS V3 の UNSTABLE Write データ キャッシュの期間を制御するソフト タイムアウトです。 最小値は 1、最大値は 600 です。 実際の有効期間は、RdWrNfsDeferredWritesFlushDelay に RdWrThreadSleepTime を乗算した値とほぼ同じです。
CacheAddFromCreateAndMkDir (英語)
HKLM\System\CurrentControlSet\Services\NfsServer\Parameters\CacheAddFromCreateAndMkDir
既定値は 1 (有効) です。 このパラメーターは、NFS V2 および V3 CREATE および MKDIR RPC プロシージャ ハンドラーの間に開かれたハンドルをファイル ハンドル キャッシュに保持するかどうかを制御します。 CREATE および MKDIR コード パスのキャッシュへのエントリの追加を無効にするには、この値を 0 に設定します。
AdditionalDelayedWorkerThreads
HKLM\SYSTEM\CurrentControlSet\Control\SessionManager\Executive\AdditionalDelayedWorkerThreads
指定した作業キューに対して作成される遅延ワーカー スレッドの数を増やします。 遅延ワーカー スレッドは、タイム クリティカルと見なされず、作業項目の待機中にメモリ スタックがページアウトされる可能性がある作業項目を処理します。 スレッドの数が不足すると、作業項目が処理される速度が低下します。値が大きすぎると、システム リソースが不必要に消費されます。
NtfsDisable8dot3NameCreation (英語)
HKLM\System\CurrentControlSet\Control\FileSystem\NtfsDisable8dot3NameCreation
Windows Server 2012、Windows Server 2012 R2、およびそれ以降のバージョンの Windows Server の既定値は 2 です。 Windows Server 2012 より前のリリースでは、既定値は 0 です。 このパラメーターは、NTFS が長いファイル名と拡張文字セットの文字を含むファイル名の 8dot3 (MSDOS) 名前付け規則で短い名前を生成するかどうかを決定します。 このエントリの値が 0 の場合、ファイルには、ユーザーが指定する名前と NTFS で生成される短い名前の 2 つの名前を指定できます。 ユーザー指定の名前が 8dot3 名前付け規則に従っている場合、NTFS は短い名前を生成しません。 値 2 は、このパラメーターをボリュームごとに構成できることを意味します。
注
システム ボリュームでは、既定で 8dot3 が有効になっています。 Windows Server 2012 および Windows Server 2012 R2 の他のすべてのボリュームでは、既定で 8dot3 が無効になっています。 この値を変更してもファイルの内容は変更されませんが、ファイルの短い名前の属性の作成が回避され、NTFS によるファイルの表示と管理も変更されます。 ほとんどのファイル サーバーでは、推奨設定は 1 (無効) です。
NtfsDisableLastAccessUpdateの
HKLM\System\CurrentControlSet\Control\FileSystem\NtfsDisableLastAccessUpdate
既定値は 1 です。 このシステム グローバル スイッチは、最後のファイルまたはディレクトリ アクセスの日付と時刻スタンプの更新を無効にすることで、ディスク I/O の負荷と待機時間を削減します。
MaxConcurrentConnectionsPerIp
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Rpcxdr\Parameters\MaxConcurrentConnectionsPerIp
MaxConcurrentConnectionsPerIp パラメーターの既定値は 16 です。 この値を最大 8192 まで増やして、IP アドレスあたりの接続数を増やすことができます。