= 読み取り性能のテスト :toc: :icons: :linkattrs: :imagesdir: ../resources/images == 概要 このセクションでは、Windowsインスタンスと同じリージョンであるリージョン2のローカルFSxファイルゲートウェイの読み取り性能をテストし、リージョン1のリモートFSx for Windowsファイルサーバーの読み取り性能と比較します。 世の中にはたくさんのディスクパフォーマンスツールがあります。本ワークショップでは*WindowsInstance*にlink:https://aka.ms/diskspd[DiskSpd] がプリインストールされています。 == このセクションに必要な時間 注:このセクションの完了には約15分かかります。 == ステップバイステップガイド 重要: 次の手順に進む前に以下の手順をお読みいただき、クイックビデオをご覧ください。 image::read-csvs.gif[title="ステップバイステップのクイックビデオ", align="left", width=600] === ローカルのFSx File GatewayとリモートのFSx for Windows File Serverからの大容量ファイルの読み取り時間の比較 ファイルシステムには、あらかじめ3つのCSVファイルが用意されています。これはlink:http://eforexcel.com/wp/downloads-18-sample-csv-files-data-sets-for-testing-sales/[eforexcel.com]からダウンロードしたサンプル営業データです。 10,000レコードのファイル(10k Sales Records.csv @ 1.18 MB)、1,000,000レコードのファイル(1m Sales Records.csv @ 119 MB)、5,000,000レコードのファイル(5m Sales Records.csv @ 595 MB)があります。 . ローカルコンピュータ、Amazon EC2 Windows インスタンス、またはスマートフォンで、任意のストップウォッチアプリケーションを開きます。 (例: link:https://stopwatchtimers.com/stopwatch/[Stopwatch]). 次のいくつかのステップでは、Windowsインスタンスがこれらの3つのCSVファイルを開くのにかかる時間を計測し、ローカルリージョンのFSxファイルゲートウェイとリモートリージョンのFSx for Windowsファイルサーバーから開いた場合の時間を比較します。 . リモートFSx for Windows File Serverを"Z:"ドライブとしてマウントした"File Explorer"ウィンドウから、10k Sales Records.csvファイルを右クリックし、"Open With > Notepad"を選択します。ストップウォッチを開始します。メモ帳にデータが表示されたら、ストップウォッチを止めます。時間を記録します。 . ローカルFSx File Gatewayを"Y:"ドライブとしてマウントした"File Explorer"ウィンドウから、10k Sales Records.csvファイルを右クリックし、"Open With > Notepad"を選択します。ストップウォッチを開始します。メモ帳にデータが表示されたら、ストップウォッチを止めます。時間を記録します。 + 10k Sales Records.csvファイルのサイズが小さいため、ファイル全体を読むのにかかる時間は非常に短く、ストップウォッチで計測するのは難しいでしょう。 + . 1m Sales Records.csvと5m Sales Records.csvファイルで上記の2つのステップを繰り返します。 . 計測した時間はどの程度ですか? . 上記の3つの読み取りテストを繰り返します。 + 注:FSxファイルゲートウェイからの最初の読み取りでは、FSxファイルゲートウェイがリモートのFSx for Windowsファイルサーバーからファイルをキャッシュに読み込むため、より高いレイテンシーが発生します。その後の読み取りでは、ローカルのFSxファイルゲートウェイから直接ファイルが配信されます。 + 以下は、us-west-1(北カリフォルニア)リージョンのWindowsインスタンスから同一リージョンに有るFSxファイルゲートウェイ、およびus-east-1(北バージニア)リージョンのFSx for Windowsファイルサーバーのファイルにアクセスした際に記録された時間の例です。 + [cols="3,10,10"] |=== | File | FSx for Windows File Server (us-east-1) duration | FSx File Gateway (us-west-1) duration | 10k Sales Records.csv a| ~2.0 seconds a| ~0.5 seconds | 1m Sales Records.csv a| ~15.5 seconds a| ~1.5 seconds | 5m Sales Records.csv a| ~81.6 seconds a| ~7.9 seconds |=== + . テストを繰り返し、リモートのFSx for Windows File ServerとローカルのFSx File Gatewayのファイルにアクセスする際に、引き続き違いがあるかどうかを確認します。 === DiskSpdを使った読み取り性能テスト 重要: 次の手順に進む前に以下の手順をお読みいただき、クイックビデオをご覧ください。 image::read-test.gif[title="Quick Step-by-step Video", align="left", width=600] ==== リモートFSx for Windows File Serverからの読み取りパフォーマンステスト . "Windows Instance"のリモートデスクトップセッションで、"Start" >> "Windows PowerShell"の順で選択して下さい。 + 重要: このセクションではリモートFSx for Windows File Serverが"Z:"ドライブとしてマウントされていることを想定しています。 + . 以下のDiskSpeedスクリプトを実行して、"Z:"ドライブとしてマウントされたリモートFSx for Windows File Serverの読み取り性能をテストします。 + ```sh C:\Tools\DiskSpd-2.0.21a\amd64\DiskSpd.exe -d120 -w0 -r -t1 -o32 -b1M -Sr -L Z:\${env:computername}-fsxw.dat ``` + スクリプトの実行中に、タスクマネージャーを開き、ネットワークのパフォーマンスを監視します(例:Start >> Task Manager >> More details >> Performance (tab) >> Ethernet)。DiskSpdのスクリプトは120秒で完了します。スクリプトが完了すると、PowerShellウィンドウに出力が表示されます。 + * テストのP99(99%-tile)レイテンシーは何msでしたか? - これは、DiskSpdの出力下部の"total"テーブルにあります。 * テストのP99.99 (99.99th %-tile) レイテンシーは何msでしたか? - これは、DiskSpdの出力下部の"total"テーブルにあります。 * Total Read IO MiB/sはどのくらいでしたか? - これは、DiskSpdの出力の"MiB/s"列の"Read IO"の下にあります。 * I/O per secondはどのくらいでしたか? - これは、DiskSpdの出力の"I/O per s"列の下の"Read IO"の下にあります。 * 平均レイテンシーはどのくらいでしたか? - これは、DiskSpdの出力の"AvgLat"列の下の"Read IO"の下にあります。 + . 次の表をローカルコンピュータにコピーして、"FSx for Windows File Server" Test 1の欄に結果を記録します。 . テストを繰り返し、その結果を"FSx for Windows File Server" Test 2の欄に記録します。 + [width="50%",cols="d,d,d,d,d",frame="topbot",options="header"] |=== h| EC2 Instance 2+h| FSx for Windows File Server 2+h| FSx File Gateway s| DiskSpd Read (metric) h| Test 1 h| Test 2 h| Test 1 h| Test 2 | Read IO throughput (MiB/s) | | | | | Read IO I/O per s | | | | | Read IO AvgLat (ms) | | | | | Min %-tile (ms) | | | | | 50th %-tile (ms) | | | | | 90th %-tile (ms) | | | | | 99th %-tile (ms) | | | | | 99.99th %-tile (ms) | | | | |=== + . DiskSpdのパラメータ設定をいろいろと試してみてください。以下の表を参考にしてください。ブロックサイズ(-b)、未処理のI/O要求数(-o)、ファイルごとのスレッド数(-t)、ローカルキャッシュの無効化(-Sr)を変えてテストします。 + [cols="3,10"] |=== | Parameter | Description | `-b[K\|M\|G]` a| Block size in bytes or KiB, MiB, or GiB (default = 64K). | `-o` a| Number of outstanding I/O requests per-target per-thread. (1 = synchronous I/O, unless more than one thread is specified with by using `-F`.) (default = 2) | `-r[K\|M\|G]` a| Random I/O aligned to the specified number of bytes or KiB, MiB, GiB, or blocks. Overrides -s (default stride = block size). | `-s[K\|M\|G]` a| Sequential stride size, offset between subsequent I/O operations in bytes or KiB, MiB, GiB, or blocks. Ignored if -r is specified (default access = sequential, default stride = block size). | `-t` a| Number of threads per target. Conflicts with `-F`, which specifies the total number of threads. | `-Sr` a| Disable local caching. |=== * どのようなパラメータをテストしましたか? * パラメーターオプションの違いによる結果の変化はどうですか? ==== ローカルFSx File Gatewayからの読み取りパフォーマンステスト . "Windows Instance"のリモートデスクトップセッションで、"Start" >> "Windows PowerShell"の順で選択して下さい。 + 重要: このセクションではローカルFSx File Gatewayが*Y:*ドライブとしてマウントされていることを想定しています。 + . 以下のDiskSpeedスクリプトを実行して、**Y:**ドライブとしてマウントされたリモートFSxファイルゲートウェイの読み取り性能をテストします。 + ```sh C:\Tools\DiskSpd-2.0.21a\amd64\DiskSpd.exe -d120 -w0 -r -t1 -o32 -b1M -Sr -L Y:\${env:computername}-fsxw.dat ``` + スクリプトの実行中に、タスクマネージャーを開き、ネットワークのパフォーマンスを監視します(例:Start >> Task Manager >> More details >> Performance (tab) >> Ethernet)。DiskSpdのスクリプトは120秒で完了します。スクリプトが完了すると、PowerShellウィンドウに出力が表示されます。 + * テストのP99(99%-tile)レイテンシーは何msでしたか? - これは、DiskSpdの出力下部の"total"テーブルにあります。 * テストのP99.99 (99.99th %-tile) レイテンシーは何msでしたか? - これは、DiskSpdの出力下部の"total"テーブルにあります。 * Total Read IO MiB/sはどのくらいでしたか? - これは、DiskSpdの出力の"MiB/s"列の"Read IO"の下にあります。 * I/O per secondはどのくらいでしたか? - これは、DiskSpdの出力の"I/O per s"列の下の"Read IO"の下にあります。 * 平均レイテンシーはどのくらいでしたか? - これは、DiskSpdの出力の"AvgLat"列の下の"Read IO"の下にあります。 + . 結果を、先ほどローカルコンピュータにコピーした表の"FSx File Gateway" Test 1欄に記録します。 . テストを繰り返し、その結果を"FSx File Gateway" Test 2欄に記録します。 + 注:FSxファイルゲートウェイからの最初の読み取りでは、FSxファイルゲートウェイがリモートのFSx for Windowsファイルサーバーからファイルをキャッシュに読み込むため、より高いレイテンシーが発生します。その後の読み取りでは、ローカルのFSxファイルゲートウェイから直接ファイルが配信されます。 + . DiskSpdのパラメータ設定をいろいろと試してみてください。以下の表を参考にしてください。ブロックサイズ(-b)、未処理のI/O要求数(-o)、ファイルごとのスレッド数(-t)、ローカルキャッシュの無効化(-Sr)を変えてテストします。 + [cols="3,10"] |=== | Parameter | Description | `-b[K\|M\|G]` a| Block size in bytes or KiB, MiB, or GiB (default = 64K). | `-o` a| Number of outstanding I/O requests per-target per-thread. (1 = synchronous I/O, unless more than one thread is specified with by using `-F`.) (default = 2) | `-r[K\|M\|G]` a| Random I/O aligned to the specified number of bytes or KiB, MiB, GiB, or blocks. Overrides -s (default stride = block size). | `-s[K\|M\|G]` a| Sequential stride size, offset between subsequent I/O operations in bytes or KiB, MiB, GiB, or blocks. Ignored if -r is specified (default access = sequential, default stride = block size). | `-t` a| Number of threads per target. Conflicts with `-F`, which specifies the total number of threads. | `-Sr` a| Disable local caching. |=== + * どのようなパラメータをテストしましたか? * パラメーターオプションの違いによる結果の変化はどうですか? === DiskSpdを使った読み取り性能テスト結果 次の表とグラフは、テストの結果の例です。この結果では、Amazon EC2のWindowsインスタンス(us-west-1)がローカルのFSx File Gateway(us-west-1)から大容量のファイルを読み込んだ場合、リモートのFSx for Windows File Server(us-east-1)と比較して、大幅な改善を示しています。FSxファイルゲートウェイがリモートのFSx for Windowsファイルサーバーからキャッシュにファイルを読み込むため、FSxファイルゲートウェイからの最初の読み取りでは、より高いレイテンシーが発生することを覚えておいてください。その後の読み取りでは、ローカルのFSxファイルゲートウェイから直接ファイルが配信されます。 * あなたのテスト結果と下記の結果を比較してください。大きな違いがありますか?なぜですか? image::read-results-table.png[title="DiskSpd Read Results Table - sample", align="left", width=1000] --- image::read-results-throughput-chart.png[title="DiskSpd Read Throughput Chart - sample", align="left", width=800] --- image::read-results-latencies-chart.png[title="DiskSpd Read Latencies Chart - sample", align="left", width=800] --- == 次のセクション 下のボタンをクリックすると、次のセクションに進みます。 image::tear-down-workshop.png[link=../09-tear-down-workshop/, align="left",width=420]