PowerScale OneFS:パフォーマンスの問題のトラブルシューティング
Summary: InsightIQを使用したネットワーク構成、処理負荷、モニタリングに関する包括的なガイドを使用して、PowerScale OneFSのパフォーマンス低下をトラブルシューティングし、クラスターの効率性を向上させます。
Symptoms
クライアント コンピューターの動作が遅い。特定のジョブ、特にクラスターで実行されているジョブが失敗するか、予想以上に時間がかかる。
Cause
パフォーマンスの問題は、通常、ネットワーク トラフィック、ネットワーク構成の問題、クライアントまたはクラスターの処理負荷、またはこれらの要因の組み合わせが原因です。この記事では、パフォーマンスに関する問題をトラブルシューティングする効果的な方法について説明します。
Resolution
InsightIQを使用したトラブルシューティング
目次:
- Isilon InsightIQの使用方法
- InsightIQを使用しないトラブルシューティング
- ネットワーク スループット
- クライアント接続の分散
- クラスター スループット
- クラスター処理
- キューに登録された操作
- CPU
Isilon InsightIQの使用方法
Isilon InsightIQを使用することは、パフォーマンスを監視し、パフォーマンスの問題をトラブルシューティングするための最良の方法です。
Isilon InsightIQ仮想アプライアンスを使用すると、InsightIQ Webベース アプリケーションの柔軟でカスタマイズ可能なチャート ビューを使用して、Isilonクラスターのアクティビティーを監視および分析できます。これらのチャートには、クラスターのハードウェア、ソフトウェア、ファイル システム、プロトコルの動作に関する詳細情報が表示されます。InsightIQは、パフォーマンスの異常値を強調する視覚的な情報にデータを変換し、ボトルネックの迅速な診断やワークフローの最適化を可能にします。
InsightIQの使用方法の詳細については、 PowerScale InsightIQ - Info Hubを参照してください。
InsightIQを使用しないトラブルシューティング
InsightIQを使用していない場合は、さまざまなコマンドを実行してパフォーマンスの問題を調査できます。まず、ネットワークとクラスターのスループットを調べ、次にクラスターの処理を調べ、最後に個々のノードのCPUレートを調べることで、パフォーマンスの問題をトラブルシューティングします。
ネットワーク スループット
次のようなネットワーク テスト ツールを使用します。 Iperf または Iperf3 ネットワーク上のクラスターとクライアント コンピューターのスループット機能を確認します。
使用 Iperfで、クラスターとクライアントで次のコマンドを実行します。これらのコマンドは、ネットワーク リンクがレイテンシーの問題を生じた潜在的な原因であるかどうかを明らかにするのに十分なウィンドウ サイズを定義します。
- クラスター:
iperf -s -w 262144 - クライアント:
iperf -c <cluster IP> -w 262144
ユーザー インターフェイス アプリケーションを起動するために Iperf3で、クラスターとクライアントで次のコマンドを実行します。これらのコマンドは、ネットワーク リンクがレイテンシーの問題を生じた潜在的な原因であるかどうかを明らかにするのに十分なウィンドウ サイズを定義します。
- クラスター:
iperf3 -s -w 262144 クライアント:iperf3 -c <cluster IP> -w 262144
クライアント接続の分散
クラスターに接続されているNetwork File System (NFS)およびServer Message Block (SMB)クライアントの数を確認して、1つのノードを優先していないことを確認します。
- クラスター内の任意のノードでSSH接続を開き、を使用してログインします。
rootアカウント。 - 次のコマンド:
isi statistics query current list --nodes=all --keys=node.clientstats.connected.nfs,node.clientstats.active.nfs -dコマンドを使用してNFSクライアントをチェックします。
出力には、ノードごとに接続されているクライアントの数と、各ノードでアクティブなクライアントの数が表示されます。 - 次のコマンド:
isi statistics query current list --keys=node.clientstats.connected.smb,node.clientstats.active.smb1,node.clientstats.active.smb2 -n all -dコマンドを使用してSMBクライアントをチェックします。
出力には、ノードごとに接続されているクライアントの数と、各ノードでアクティブなクライアントの数が表示されます。
クラスター スループット
ファイルの読み取りと書き込みにかかる時間を測定する書き込みおよび読み取りテストを実施して、クラスターのスループットを評価します。次のように、少なくとも1回の書き込みテストと1回の読み取りテストを実施します
テストを記述します。
- クラスター内の任意のノードでSSH接続を開き、を使用してログインします。
rootアカウント。 - [
/ifsディレクトリ:cd /ifs - クラスター上のコマンド ライン インターフェイス(CLI)、またはUNIXまたはLinuxクライアント コンピューターから、
ddコマンドを実行して、新しいファイルをクラスターに書き込みます。
次のコマンドを実行します。dd if=/dev/zero of=1GBfile bs=1024k count=1024
このコマンドは、1GBのサンプル ファイルを作成し、ディスクへの書き込みにかかった時間を報告します。 - このコマンドの出力から、シングル ストリーム ワークフローでディスクに書き込み可能な1秒あたりのMB数を推定します。
- MACクライアントがあり、さらに分析を行う場合は、
- アクティビティー モニターを開始します。
- 次のコマンド:
cat /dev/zero > /pathToFilecommand、ここでpathToFileは、ターゲット ファイルのファイル パスです
このコマンドは、Isilonクラスターでの書き込み操作のスループットを測定するのに役立ちます。(ただし、Macクライアントからddコマンドを MAC クライアントから実行すると、結果に一貫性がなくなる可能性があります。 - アクティビティ モニターの [ネットワーク ]タブで、コマンドの結果を監視します。
テストを読みます。
読み取り操作のスループットを測定する場合は、書き込みテスト中に作成したファイルに対して読み取りテストを実行しないでください。このファイルはキャッシュされているため、読み取りテストの結果は不正確になる可能性があります。代わりに、キャッシュされていないファイルの読み取り処理をテストします。クラスター上で1GBを超えるファイルを見つけ、読み取りテストでそのファイルを参照します。
- クラスター内の任意のノードでSSH接続を開き、を使用してログインします。
rootアカウント。 - クラスター上のCLIまたはUNIXまたはLinuxクライアント コンピューターから、
ddコマンドを使用して、クラスター上のファイルを読み取ります。
次のコマンドを実行します。dd if=/pathToLargeFile of=/dev/null bs=1024kコマンドで、pathToFileは、ターゲット ファイルのファイル パスです
このコマンドは、ターゲット ファイルを読み取り、その読み取りにかかった時間を報告します。 - MACクライアントがあり、さらに分析を行う場合は、
- アクティビティー モニターを開始します。
- 次のコマンド:
time cp /pathToLargeFile > /dev/nullコマンドで、pathToFileは、ターゲット ファイルのファイル パスです
このコマンドは、Isilonクラスターでの読み取り操作のスループットを測定するのに役立ちます。(ただし、Macクライアントからddコマンドを MAC クライアントから実行すると、結果に一貫性がなくなる可能性があります。 - アクティビティ モニターの [ネットワーク ]タブで、コマンドの結果を監視します。
クラスター処理
ジョブを再ストライピングします。
クラスターの入出力(I/O)操作(IOPS)を調べる前に、次の手順を実行します。
- クラスターで実行されているジョブを確認します。Auto-Balance、Collect、MultiScanなどの再ストライピング ジョブが実行されている場合は、それらのジョブが実行されている理由と、実行を続行する必要があるかどうかを検討します。
- 使用されているデータの種類を考慮します。クライアント コンピューターが大容量のビデオ ファイルまたは仮想マシン(VM)を操作している場合、再ストライピングされたジョブには通常よりも多くのディスクIOPSが必要です。
- 再ストライピング ジョブを一時停止することを検討してください。そうすることで、パフォーマンスが向上し、パフォーマンスの問題に対する実行可能な短期的な解決策となる可能性があります。
ディスクI/O
ディスクI/Oを調べると、特定のディスクが過剰に使用されているかどうかを判断するのに役立ちます。
クラスター別
- クラスター内の任意のノードでSSH接続を開き、「root」アカウントを使用してログインします。
- 次のコマンド:
isi statistics pstatディスク I/O を確認するコマンド。 このコマンドの出力から、ディスクIOPSをクラスター内のディスクの合計数で除算します。たとえば、Isilon IQ 12000xノードを使用する8ノード クラスターでは、ノードあたり12台のドライブをホストし、ディスクIOPSを96.
で除算します。Xシリーズ ノードとNLシリーズ ノードの場合、100%ランダム ワークフローではディスクIOPSが70以下、100%シーケンシャル ワークフローではディスクIOPSが140以下になることが予想されます。NLシリーズ ノードは、Xシリーズ ノードよりもRAMが少なく、CPU速度が遅いため、Xシリーズ ノードはより高いディスクIOPSを処理できます。
ノード別およびディスク別
- クラスター内の任意のノードでSSH接続を開き、「root」アカウントを使用してログインします。
- 次のコマンドを実行します。
isi statistics query current --nodes=all --stats=node.disk.xfers.rate.sum --format=topコマンドを使用してノードごとにディスクIOPSを確認します。これは、過剰に使用されているディスクを検出するのに役立ちます。 - 次のコマンド:
isi_stats_tool -a get_key_info|grep node.disk.xferコマンドを使用して、ディスク単位で統計情報のクエリーを実行する方法を決定します。
キューに登録された操作
ディスクが過剰に使用されているかどうかを判断するもう1つの方法として、クラスター内の各ディスクに対してキューに登録されている操作の数を確認する方法があります。単一ストリームのSMBベースのワークフローでは、キューが4つある場合は問題を示す可能性がありますが、並行性の高いNFSネームスペース操作の場合は、キューが大きくなります。
- クラスター内の任意のノードでSSH接続を開き、を使用してログインします。
rootアカウント。 - 次のコマンドを実行します。
isi statistics drive list --nodes=all --sort=queued -dコマンドを使用して、クラスター内の各ディスクに対してキューに登録されている操作の数を決定します。 - 操作がキューに入っていた時間を確認します。
isi statistics drive list --nodes=all --sort=queued -d
CPU
CPUの問題は、多くの場合、クライアントがクラスターで実行する操作に起因します。コマンド isi statistics コマンドを使用すると、クラスターで実行される操作を、ネットワーク プロトコルまたはクライアント コンピューターごとにカタログ化して決定できます。
- クラスター内の任意のノードでSSH接続を開き、を使用してログインします。
rootアカウント。 - 次のコマンド:
isi statistics protocol list --long --totalby Op,proto -d --sort TimeAvg --format topコマンドを使用して、ネットワーク上で実行されている操作を特定し、それらの操作のうち最も時間がかかっている操作を評価します。
このコマンド出力は、クラスターがクライアントに応答するのに要する時間別に整理された、すべてのネットワーク プロトコルの詳細な統計情報を提供します。このコマンドの結果では、どの操作が最も遅いかを特定できない場合がありますが、正しい方向を示すことができます。 - 次のコマンド:
isi statistics system --nodes all --format topコマンドを使用して、どのノードの CPU が最も頻繁に使用されているかなど、CPU 処理に関する詳細情報を取得します。 - 次のコマンド:
isi_for_array -sX 'top -u -n |grep PID -A4'コマンドを使用して、CPU リソースを最も消費している各ノード上の 4 つのプロセスを取得します。
Additional Information
このトピックに関連し、関心がある可能性のある推奨リソースを次に示します。