Sun NFS サーバーの調整

メモリー

NFS はディスク入出力処理の多いサービスのため、低速のサーバーは、入出力が問題になることがあります。メモリーを増設し、ファイルシステムキャッシュを大きくすることによって、この入出力の問題は解消します。

システムは、ファイルシステムのページ待ち状態である場合や、スワップデバイスとの間でプロセスイメージをページングしている場合もあります。NFS サービスは、完全にオぺレーティングシステムのカーネル内で動作するため、ページング中にさらにサービスが供給された場合にだけ問題となります。

スワップデバイスで入出力動作が何も行われていない場合は、すべてのページング動作は、NFS 読み取りや書き込み、属性、ルックアップなどのファイル入出力操作に伴います。

NFS サーバーがメモリーを大量に使用するかどうかの調査

NFS サーバーの性能上、ディスクからメモリーへのファイルシステムデータのページングが問題になる場合があります。

NFS サーバーシステムがメモリーを大量に使用するかどうかを調査する
  1. vmstat 30 コマンドを実行してスキャンレートを調べます。

    スキャンレート (sr、スキャンされたページ数) が毎秒 200 ページを超える場合は、メモリーが不足しています。システムは、再利用可能な未使用ページを探します。再利用可能なページをキャッシュして、NFS クライアントによる再読み取りが行えるようにします。

  2. メモリーを増設します。

    メモリーを増設することによって、同じデータが繰り返し読み取られることがなくなり、サーバーのページキャッシュとのやりとりで NFS 要求を処理することができます。NFS サーバーに必要なメモリーの大きさの計算方法については、「メモリー容量の計算」を参照してください。

最適な性能を得るために必要なメモリー容量は、そのサーバー上で使用されるファイルの大きさの合計値によって異なります。メモリーは、最近読み取られたファイルに対してはキャッシュとして動作します。キャッシュを最も効率的に使用するには、使用するファイルの大きさの合計にできるだけ近い値にします。

メモリーキャッシュ機能が使用されているため、サーバーが長時間アクティブな場合は、NFS サーバーの未使用メモリーが、0.5MB〜1.0MB の範囲になる場合があります。メモリーを十分に確保することで、複数の要求を問題なく処理することができます。

実際に使用されるファイルは、時間とともに変化します。しかしながら、全体として使用されるファイルの大きさは、比較的一定です。NFS は、ある一定の監視期間に取り扱うファイルに依存して、アクティブなファイルのスライドウインドウを作成します。

メモリー容量の計算

メモリー容量は、一般的なメモリー規則、または条件付きメモリー規則のいずれかの方法に従って求めることができます。

一般的なメモリー規則

以下の一般的なガイドラインに従って、必要なメモリーの容量を計算します。

メモリーの大きさは、16MB に、5 分間に 2 回以上アクセスされるデータをキャッシュするためのメモリー容量を加えた値になります。

条件付きのメモリー規則

以下の条件付きのガイドラインに従って、必要なメモリーの容量を計算します。

スワップ領域

NFS サーバーはユーザー処理を実行しないため、スワップ領域が必要になることはほとんどありません。

スワップ領域を設定する
  1. 仮想メモリー (メインメモリー + スワップ領域) を最低でも 64MB の大きさにします。

  2. システムに障害が発生したときに障害ダンプを保存できるように、メインメモリーの 50 % を緊急用のスワップ領域として設定します。

    表 3-4 必要なスワップ領域

    RAM の容量 

    必要なスワップ領域 

    16 MB 

    48 MB 

    32 MB 

    32 MB 

    64 MB 以上 

    なし