この付録では、サーバーの NFS とネットワークの性能を監視するためのツールについて説明します。監視ツールは、性能向上に向けた調整に役立つ情報を提供します。詳細は、第 2 章「NFS 性能の分析」と第 3 章「最適な NFS 性能を得るためのサーバーとクライアントの設定」を参照してください。
監視ツールについての詳細は、そのツールに関するマニュアルページを参照してください。サン以外のツールについては、製品に付属しているマニュアルを参照してください。
また、この章では、SPEC SFS 2.0 という NFS ファイルサーバーのベンチマークツールについても説明します。
NFS の動作と性能を監視するためのツールを以下に示します。
表 A-1 NFS 動作と性能の監視ツール
ツール |
機能 |
---|---|
iostat |
ディスク入出力などの入出力統計情報を提供します。 |
nfsstat |
カーネルの NFS や RPC (遠隔手続き呼び出し) インタフェースなどの NFS 統計情報を提供します。統計情報の初期設定に使用することもできます。 |
nfswatch |
ファイルシステム別に NFS トランザクションを提供します。nfswatch はフリーソフトウェアです。近くの ftp サイトから入手してください。 |
sar |
CPU の使用状況やバッファーの状態、ディスクドライブや テープドライブなどの動作状況を提供します。 |
SharpShooter* |
障害となっている問題を特定し、クライアントとサーバーに NFS 負荷を均等に分散します。アプリケーションの分散状況を示し、サーバーにネットワークトラフィックを均等に分散させます。ユーザーまたはグループ別のディスク使用状況も提供します。 |
vmstat |
ディスクの動作状況を含む、仮想メモリーの統計情報を提供します。 |
* Network General Corporation (旧 ATM Technology) |
他のネットワークユーティリティやネットワーク監視ユーティリティについては、購入先にお問い合わせください。
NFS 関係のネットワークの性能を監視するためのツールを以下に示します。
表 A-2 ネットワーク監視ツール
ツール |
機能 |
---|---|
snoop |
Ethernet の指定パケットに関する情報を表示します。 |
netstat |
ネットワーク関連のデータ構造体の内容を表示します。 |
ping |
ネットワークホストに ICMP ECHO_REQUEST パケットを送信します。 |
NetMetrix Load Monitor |
リアルタイムまたは特定の時間範囲でネットワークの負荷を監視できます。負荷情報として、時間や発信元、宛先、プロトコル、パケットの大きさを提供します。 |
SunNet Manager |
ネットワーク装置の監視と障害追跡を行う管理・監視ツールです。 |
LAN アナライザ: Network General Sniffer, Novell/Excelan Lanalyzer |
パケットの分析を行います。 |
snoop コマンドを実行すると、サンのシステムはネットワーク監視装置となります。snoop コマンドは、特定の数のネットワークパケットを確保するため、クライアントからサーバーへの呼び出しを追跡して、パケットの内容を表示することができます。パケットの内容をファイルに保存して、後で調査することもできます。
snoop コマンドは以下を行います。
パケットを記録・表示します。
ネットワークの NIS などの RPC 応答時間の調査に使用可能な、正確なタイムスタンプを提供します。
パケットとプロトコルの情報を見やすく表示します。
snoop コマンドのパケット表示形式には、1 行で表示する要約形式と拡張形式の 2 つがあります。要約形式では、最上位のプロトコルに関するデータだけが表示されます。たとえば、NFS パケットであれば NFS 情報だけが表示され、その下の RPC (遠隔手続き呼び出し) や UDP (ユーザーデータプロトコル) 、IP (インターネットプロトコル) 、ネットワークフレーム情報は表示されません。こうした情報を表示する場合は、コマンドに詳細 (-v または -V) オプションを指定します。
snoop コマンドは、データリンクプロバイダインタフェース (DLPI) のパケットフィルタとバッファーモジュールの両方を使用し、ネットワークを介してやりとりされるパケットを効率良く捕捉します。
任意の 2 台のシステム間の、全トラフィックを表示または捕捉するには、その 2 台以外のシステムで snoop を実行してください。
無制限のパケット確保では、フィルターが無効になり、使用しているシステム宛てのものかどうかに関係なく、サブネットのあらゆるパケットを監視することができます。使用しているシステム宛てではないパケットを、間接的に監視することもできます。無制限モードでは、スーパーユーザーでのみ使用することができます。
snoop はパケット解析ツールであるため、サブネットを構築する場合に特に有用となります。snoop コマンドを実行して得られる出力を使用し、負荷統計情報を蓄積するスクリプトを実行することができます。また、このコマンドには、パケットヘッダーを取り出す機能があり、この情報を利用してパケットをデバッグしたり、非互換の問題の原因を突き止めたりすることができます。
snoop コマンドの引数は以下のとおりです。
表 A-3 snoop コマンドの引数引数 | 説明 |
---|---|
-i pkts | pkts ファイルに確保されているパケット情報を表示します。 |
-p99, 108 | 確保したファイルから読み出すパケット範囲の指定です。パケット番号 99 から 108 のパケットの情報が表示されます。確保したファイルの先頭パケットのパケット番号は 1 です。 |
-o pkts.nfs | pkts.nfs ファイルに表示中のパケット情報を保存します。 |
rpc nfs | RPC 呼び出しのパケットまたは NFS プロトコルの応答パケットを表示します。nfs の後に、/etc/rpc の RPC プロトコル名かプログラム番号オプションが続きます。 |
and | 2 つのブール値の論理和をとります。たとえば、sunroof boutique は、sunroof and boutique と同じです。 |
-v | 詳細モードの指定です。パケット 101 のヘッダーの詳細情報を表示します。このオプションは、特定のパケットに関する情報が必要なときに使用します。 |
統計情報には、読み取り要求を出しているクライアントが示されます。左側の列に 約 4 マイクロ秒の精度で秒数が表示されます。
読み取りまたは書き込み要求を発行したときに、サーバーが時間切れにならないようにしてください。サーバーが時間切れになると、クライアントは要求を再送信する必要があり、クライアントの IP コードによって、書き込みブロックがより小さな UDP ブロックに分解されます。デフォルトの書き込み時間は 0.07 秒です。時間切れの値は、mount コマンドで変更することができます。
# snoop -i pkts -p99,108 99 0.0027 boutique -> sunroof NFS C GETATTR FH=8E6C 100 0.0046 sunroof -> boutique NFS R GETATTR OK 101 0.0080 boutique -> sunroof NFS C RENAME FH=8E6C MTra00192 to .nfs08 102 0.0102 marmot -> viper NFS C LOOKUP FH=561E screen.r.13.i386 103 0.0072 viper -> marmot NFS R LOOKUP No such file or directory 104 0.0085 bugbomb -> sunroof RLOGIN C PORT=1023 h 105 0.0005 kandinsky -> sparky RSTAT C Get Statistics 106 0.0004 beeblebrox -> sunroof NFS C GETATTR FH=0307 107 0.0021 sparky -> kandinsky RSTAT R 108 0.0073 office -> jeremiah NFS C READ FH=2584 at 40960 for 8192
snoop -i pkts -v 101 コマンドは、パケット 101 に関する詳細情報を表示します。
# snoop -i pkts rpc nfs and sunroof and boutique 1 0.0000 boutique -> sunroof NFS C GETATTR FH=8E6C 2 0.0046 sunroof -> boutique NFS R GETATTR OK 3 0.0080 boutique -> sunroof NFS C RENAME FH=8E6C MTra00192 to .nfs08
この例では、sunroof システムと boutique システム間の NFS パケットを表示しています。
snoop コマンドの使用法およびオプションについての詳細は、snoop のマニュアルページを参照してください。
SPEC System File Server (SFS) 2.0 は、NFS ファイルサーバーのスループットと応答時間を計測します。これは、097.LADDIS から成るテストベンチマーク群です。異なるアプリケーション環境下の 1,000 以上の NFS サーバーの調査結果に基づいて開発された、更新された作業負荷情報が含まれます。サーバーの技術進歩により、SFS 1.1 で使用されていたときよりも、作業負荷はより大きく、応答時間のしきい値はより低くなっています。このような変更と、その他の変更により、 SPEC SFS 2.0 の結果と SFS 1.1 や SFS 1 の結果とを比較することはできません。
また、一般的なコードの改善により、SPEC SFS 2.0 には以下の機能が追加されました。
NFS バージョン 2 およびバージョン 3 の結果の計測
TCP サポートの追加 (TCP または UDP のいずれかがネットワークトランスポートに使用される)
実際の NFS の作業負荷に応用できる複雑な操作が可能
インタフェースの向上
097.LADDIS では、以下の基準ポイントが考慮されます。
NFS 操作スループット
テスト対象のサーバーが、指定されたミリ秒数の間に完了することが可能な、最高 NFS 操作回数です。NFS 操作回数が多いほど、より多くのユーザーにサービスを提供することができます。
応答時間
NFS クライアントが、NFS 要求に対する応答を、テスト対象のサーバーから受け取るのに要する平均時間です。クライアントが認識するサーバーの速さは、この応答時間です。
LADDIS は、テスト対象のサーバーの性能が、あるレベル以下になるまで徐々に作業負荷を大きくできるように設計されています。そのレベルは、50ms を超える平均応答時間と定義されています。この制限は、NFS 操作において、応答時間が 50ms 以下のときの 1 秒あたりの最高のスループットを導出するときに適用されます。
作業負荷とともにスループットが高くなり続けるかぎり、50ms 時のスループットが報告されます。しかし、多くの場合、スループットは、応答時間が制限の 50ms を下回ったときから低下し始め、この後に示すような形式の表によって、最高のスループット時の応答時間が報告されます。
SPEC SFS 1 (097.LADDIS) ベンチマークは、アプリケーションの抽象化と NFS の操作群、NFS 操作要求率に基づく総合的な NFS の作業負荷テストです。このベンチマークによって生成される作業負荷は、NFS プロトコルレベルで集中的なソフトウェア開発環境をエミュレートします。LADDIS は、サーバーに対して直接 RPC 呼び出しを行い、実際に使用されている NFS クライアントの差を排除します。結果として、操作群や作業負荷の制御が簡単になるため、ベンダー同士の結果比較の際に有用です。ただし、この方法は同時に、キャッシュファイルシステムクライアントのように、個々のクライアントの持つ特長を隠すという側面もあります。
NFS 操作群の各操作の割合を以下にまとめます。示した値は、各操作の呼び出し数の相対値です。
表 A-4 呼び出し別の NFS 操作群
NFS 操作 |
割合 |
---|---|
Lookup |
34 |
Read |
22 |
Write |
15 |
GetAttr |
13 |
ReadLink |
8 |
ReadDir |
3 |
Create |
2 |
Remove |
1 |
Statfs |
1 |
SetAttr |
1 |
NFS ファイルシステム用の LADDIS ベンチマークでは、書き込み操作が 15 % の操作群が使用されています。このため、実際の NFS クライアントが 1 〜 2 % の書き込み操作しか行わない場合は、性能は低く見積もられることになります。実際の操作が、操作群の割合に近いほど、NFS 操作の最大スループットは基準としてより信頼性が高くなります。
LADDIS ベンチマークを行うには、NFS 負荷ジェネレータとして、テスト対象のサーバーに少なくとも 2 台のクライアントが、独立したネットワークで接続されている必要があります。1 つのネットワークでは、サーバーの最高の性能に達する前に飽和することがあるため、複数のネットワークをサポートすることは非常に重要です。1 台のクライアントを、LADDIS 第 1 負荷ジェネレータとして指定し、そのクライアントによって、すべての負荷生成クライアントでの LADDIS 負荷生成コードの実行を制御します。一般的に、ベンチマークも、第 1 負荷ジェネレータが制御します。また、第 1 負荷ジェネレータは、作業負荷のそれぞれのポイントでスループットと応答時間データを収集し、結果を生成することもできます。
応答時間を短くするには、NFS サーバーに NVRAM-NVSIMM Prestoserve NFS アクセラレータを追加してください。NVSIMMは、直接高速のメモリーサブシステムに記憶領域を確保しますから、待ち時間が大幅に短くなり、より少ないディスク入出力で、求めるレベルの性能を得ることができます。
NVSIMM との間では、余分なデータコピーがやりとりされるため、最高のスループットは抑えられます。しかし、NFS の負荷によって最高のスループットが維持されることはないため、NVSIMM を使用して応答時間を短くすることをお勧めします。Prestoserve NFS アクセラレータについての詳細は、Prestoserve NFS アクセラレータを参照してください。