GNU/Linux >> Linux の 問題 >  >> Linux

LinuxでのNFSパフォーマンスの問題をトラブルシューティングするためのnfsstatおよびnfsiostatの使用

ネットワークファイルシステム(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を使用したネットワーク自動化に関する無料の電子ブックをダウンロードしてください。 ]


Linux
  1. ScientificLinux6.3でのNFSサーバーとクライアントのセットアップ

  2. NFSとは何ですか?Linuxにインストールする方法

  3. Linux でのパフォーマンスの問題をトラブルシューティングする方法 – 初心者向けガイド

  1. WindowsPerformanceAnalyzerを使用したパフォーマンスの問題のトラブルシューティング

  2. Linux プロセスのパフォーマンスの問題をデバッグするための 10 の pidstat の例

  3. Linux シェルで rz と sz を使用する

  1. Linux での一般的な NFS の問題のトラブルシューティング

  2. Linux でのパフォーマンスの問題をトラブルシューティングするための基本的なコマンド

  3. Linux で kbhit() と getch() を使用する