ネットワークファイルシステム(NFS)を使用すると、マシンは、ローカルディスクであるかのように、リモートマシンにディスクパーティションをマウントできます。これにより、ネットワーク全体でファイルを高速かつシームレスに共有できます。ただし、NFSは既存のネットワークインフラストラクチャに依存しているため、ネットワーク上のグリッチが接続のパフォーマンスに影響を与える可能性があります。サーバーとクライアントの両方の観点からNFSのパフォーマンスを分析するために私が長年使用してきた2つの最も重要なツールは、nfsstat
です。 およびnsfiostat
。 2つのツールはnfs-utilsパッケージの一部であり、そのようにインストールする必要があります。
yum install -y nfs-utils
ツールの出力を理解すると、NFSパフォーマンスを最適化するのに役立ちます。
nfsstatコマンド
nfsstat
コマンドは、カーネルへのNFSおよびリモートプロシージャコール(RPC)インターフェイスに関する統計情報を表示します。
NFSサーバーで、次のコマンドを実行します。
nfsstat -s
出力は次のようになります。
Server rpc stats:
calls badcalls badclnt badauth xdrcall
107310012 0 0 0 0
Server nfs v4:
null compound
21 0% 107310004 99%
Server nfs v4 operations:
op0-unused op1-unused op2-future access close commit
0 0% 0 0% 0 0% 910848 0% 5671218 2% 153218 0%
create delegpurge delegreturn getattr getfh link
4104 0% 0 0% 517 0% 58659066 22% 8700995 3% 0 0%
チェックする最も重要なフィールドは、badcalls
です。 、RPC層によって拒否された呼び出しの総数を表します。 badcalls
の場合 遅延が発生する可能性があるため、基になるネットワークをチェックする必要があるよりも0より大きい。また、ネットワークを設計するときは、NFSサーバーをNFSクライアントと同じサブネットに配置することが非常に重要です。
NFSクライアントでは、次を実行します。
nfsstat -c
出力は次のようになります。
Client rpc stats:
calls retrans authrefrsh
30557550 27686 11075
Client nfs v4:
null read write commit open open_conf
0 0% 1601136 5% 568239 1% 23683 0% 1652804 5% 1466260 4%
open_noat open_dgrd close setattr fsinfo renew
0 0% 0 0% 1648000 5% 27154 0% 8 0% 28320 0%
上記のことから、クライアントは再送信要求が比較的少ないため、順調に進んでいます。過度の再送信が発生した場合は、mount
で指定されているデータ転送バッファサイズを調整することをお勧めします。 コマンドオプションrsize
およびwsize
。
サーバーとクライアントの両方で次のコマンドを実行して、ドロップされたパケットを確認することもできます。
nfsstat -o net
nfsiostatコマンド
nfsiostat
コマンドはiostat
と同様に機能します コマンドですが、サーバー上のNFSマウントポイントに使用されます。 /proc/self/mountstats
ファイルを使用します 入力として、システムにマウントされたNFS共有の入出力パフォーマンスに関する情報を提供します。
nfsiostat
コマンドはNFSクライアントで使用され、NFSサーバーと通信するときのパフォーマンスを確認します。
nfsiostat
を実行しています 引数なしでは、次のような出力が必要です。
10.10.1.10:/data/share mounted on /samba/students:
op/s rpc bklog
16.96 0.00
read: ops/s kB/s kB/op retrans avg RTT (ms) avg exe (ms)
0.900 5.392 5.990 0 (0.0%) 0.550 0.660
write: ops/s kB/s kB/op retrans avg RTT (ms) avg exe (ms)
0.031 21.818 708.149 0 (0.0%) 122.745 35874.872
注意すべき最も重要な統計は次のとおりです。
-
retrans
-これは再送信の数です。 -
avg RTT (ms)
-これは、クライアントのカーネルがRPC要求を送信してから応答を受信するまでの期間です。 -
avg exe (ms)
-これは、NFSクライアントがカーネルに対してRPC要求を行ってから、RPC要求が完了するまでの期間です。これにはRTTが含まれます。
非常に高いavg RTT(ms)
およびretrans
ネットワークに高い遅延があることを示します。タイムアウトが多くなるため、レイテンシが高いとI/Oパフォーマンスにも影響します。クライアントは遅くなり、作業が困難になります。
また、高スループットを確保するために、NFSサーバーとNFSクライアントの間に常に専用のネットワークを用意することも非常に重要です。
まとめ
nfsstat
の使用 およびnfsiostat
NFSパフォーマンスの問題のトラブルシューティングを行うと、システム管理者の効率が大幅に向上します。これらの優れたNFSツールを学び、使用するために時間をかけてください。
[ネットワークにもっと欲しいですか? Ansibleを使用したネットワーク自動化に関する無料の電子ブックをダウンロードしてください。 ]