troushoo

DiskSpd : Microsoft よりオープンソースで公開されているストレージのパフォーマンス測定ツール

概要

Microsoft よりオープンソースで公開されている、ストレージのパフォーマンス測定ツール、DiskSpd を紹介します。

内容

DiskSpd でできること
DiskSpd を用いることで、スループット、IOPS、レイテンシーといった、ディスクの性能を測定することが可能です。

DiskSpd のダウンロード・インストール
1. Microsoft のサイトよりDiskSpd をダウンロードします。


2. インストール作業は必要ありません。ダウンロードしたZip ファイルを解凍すれば準備完了です。

DiskSpd の使用方法
1. コマンドプロンプトを起動します。
管理者権限のコマンドプロンプトを使用した方が、測定準備にかかる時間が短くなります。(情報ソース:MS のブログの「3. Run the tool 」の「NOTE」)

2. Diskspd を実行します。

DiskSpd の使用例・結果の見方
DiskSpd の使用例・結果の見方を紹介します。
ちなみに、以下の結果は、Azure のStandard D2 サイズの仮想マシンに対して実行した結果です。
すなわち、C はAzure ストレージへのアクセス、D はSSD ディスクへのアクセスです。

例1
・128K のブロックサイズ (-b128K)
・シーケンシャル アクセス(-si)
・リード (ライトを意味する-w をつけない)
・60 秒間測定 (-d60)
・8つのoutstanding IO (-o8)
・8つスレッド (-t8)
・レイテンシー情報を表示する (-L)
・ハードウェアとソフトウェアキャッシュを無効にする (-h)
・測定ファイルは10G (-c10G)
・c:\io.dat を測定に用いる (c:\io.dat)

diskspd.exe –b128K –si –d60 –o8 –t8 –L –h –c10G c:\io.dat

出力は以下のようになります。
黄色の部分より、スループットは65.64 MB/s、IOPS は525 IOPS、レイテンシーは121.804 ミリ秒であることがわかります。

C:\bin\Diskspd-v2.0.15\amd64fre>diskspd.exe -b128K -si -d60 -o8 -t8 -L -h -c10G c:\io.dat

Command Line: diskspd.exe -b128K -si -d60 -o8 -t8 -L -h -c10G c:\io.dat

Input parameters:

        timespan:   1
        -------------
        duration: 60s
        warm up time: 5s
        cool down time: 0s
        measuring latency
        random seed: 0
        path: 'c:\io.dat'
                think time: 0ms
                burst size: 0
                software and hardware write cache disabled
                performing read test
                block size: 131072
                using interlocked sequential I/O (stride: 131072)
                number of outstanding I/O operations: 8
                thread stride size: 0
                threads per file: 8
                using I/O Completion Ports
                IO priority: normal

 

Results for timespan 1:
*******************************************************************************

actual test time:       60.01s
thread count:           8
proc count:             2

CPU |  Usage |  User  |  Kernel |  Idle
-------------------------------------------
   0|   1.95%|   0.26%|    1.69%|  98.05%
   1|   1.33%|   0.26%|    1.07%|  98.68%
-------------------------------------------
avg.|   1.64%|   0.26%|    1.38%|  98.36%

Total IO
thread |       bytes     |     I/Os     |     MB/s   |  I/O per s |  AvgLat  | LatStdDev |  file
-----------------------------------------------------------------------------------------------------
     0 |       514457600 |         3925 |       8.18 |      65.40 |  122.202 |   158.490 | c:\io.dat (10240MB)
     1 |       514588672 |         3926 |       8.18 |      65.42 |  122.209 |   169.077 | c:\io.dat (10240MB)
     2 |       512622592 |         3911 |       8.15 |      65.17 |  122.726 |   162.530 | c:\io.dat (10240MB)
     3 |       501874688 |         3829 |       7.98 |      63.80 |  125.423 |   165.938 | c:\io.dat (10240MB)
     4 |       518258688 |         3954 |       8.24 |      65.89 |  121.310 |   157.103 | c:\io.dat (10240MB)
     5 |       553123840 |         4220 |       8.79 |      70.32 |  113.641 |   148.711 | c:\io.dat (10240MB)
     6 |       505413632 |         3856 |       8.03 |      64.25 |  124.441 |   162.067 | c:\io.dat (10240MB)
     7 |       510525440 |         3895 |       8.11 |      64.90 |  123.245 |   164.710 | c:\io.dat (10240MB)
-----------------------------------------------------------------------------------------------------
total:        4130865152 |        31516 |      65.64 |     525.15121.804 |   161.087

Read IO
thread |       bytes     |     I/Os     |     MB/s   |  I/O per s |  AvgLat  | LatStdDev |  file
-----------------------------------------------------------------------------------------------------
     0 |       514457600 |         3925 |       8.18 |      65.40 |  122.202 |   158.490 | c:\io.dat (10240MB)
     1 |       514588672 |         3926 |       8.18 |      65.42 |  122.209 |   169.077 | c:\io.dat (10240MB)
     2 |       512622592 |         3911 |       8.15 |      65.17 |  122.726 |   162.530 | c:\io.dat (10240MB)
     3 |       501874688 |         3829 |       7.98 |      63.80 |  125.423 |   165.938 | c:\io.dat (10240MB)
     4 |       518258688 |         3954 |       8.24 |      65.89 |  121.310 |   157.103 | c:\io.dat (10240MB)
     5 |       553123840 |         4220 |       8.79 |      70.32 |  113.641 |   148.711 | c:\io.dat (10240MB)
     6 |       505413632 |         3856 |       8.03 |      64.25 |  124.441 |   162.067 | c:\io.dat (10240MB)
     7 |       510525440 |         3895 |       8.11 |      64.90 |  123.245 |   164.710 | c:\io.dat (10240MB)
-----------------------------------------------------------------------------------------------------
total:        4130865152 |        31516 |      65.64 |     525.15 |  121.804 |   161.087

Write IO
thread |       bytes     |     I/Os     |     MB/s   |  I/O per s |  AvgLat  | LatStdDev |  file
-----------------------------------------------------------------------------------------------------
     0 |               0 |            0 |       0.00 |       0.00 |    0.000 |       N/A | c:\io.dat (10240MB)
     1 |               0 |            0 |       0.00 |       0.00 |    0.000 |       N/A | c:\io.dat (10240MB)
     2 |               0 |            0 |       0.00 |       0.00 |    0.000 |       N/A | c:\io.dat (10240MB)
     3 |               0 |            0 |       0.00 |       0.00 |    0.000 |       N/A | c:\io.dat (10240MB)
     4 |               0 |            0 |       0.00 |       0.00 |    0.000 |       N/A | c:\io.dat (10240MB)
     5 |               0 |            0 |       0.00 |       0.00 |    0.000 |       N/A | c:\io.dat (10240MB)
     6 |               0 |            0 |       0.00 |       0.00 |    0.000 |       N/A | c:\io.dat (10240MB)
     7 |               0 |            0 |       0.00 |       0.00 |    0.000 |       N/A | c:\io.dat (10240MB)
-----------------------------------------------------------------------------------------------------
total:                 0 |            0 |       0.00 |       0.00 |    0.000 |       N/A


  %-ile |  Read (ms) | Write (ms) | Total (ms)
----------------------------------------------
    min |      0.541 |        N/A |      0.541
   25th |      7.762 |        N/A |      7.762
   50th |     31.264 |        N/A |     31.264
   75th |    192.550 |        N/A |    192.550
   90th |    276.177 |        N/A |    276.177
   95th |    361.323 |        N/A |    361.323
   99th |    610.720 |        N/A |    610.720
3-nines |   1622.160 |        N/A |   1622.160
4-nines |   2138.419 |        N/A |   2138.419
5-nines |   2242.206 |        N/A |   2242.206
6-nines |   2242.206 |        N/A |   2242.206
7-nines |   2242.206 |        N/A |   2242.206
8-nines |   2242.206 |        N/A |   2242.206
    max |   2242.206 |        N/A |   2242.206



例2
・8K のブロックサイズ (-b8K)
・ランダム アクセス (-r)
・ライト30%/リード70% (-w30)
・60 秒測定 (-d60)
・4 つのoutstanding IO (-o4)
・4つのスレッド (-t4)
・レイテンシー情報を表示する (-L)
・ハードウェアとソフトウェアキャッシュを無効にする (-h)
・測定ファイルは500MB (-c500M)
・d:\io.dat を測定に用いる (d:\io.dat)
Diskspd.exe –b8K –r –w30 –d60 –o4 –t4 –L –h –c500M d:\io.dat

出力な以下のようになります。
黄色の部分より、スループットは328.09MB/s、IOPS は41995 IOPS、レイテンシーは0.381 ミリ秒であることがわかります。

C:\bin\Diskspd-v2.0.15\amd64fre>diskspd.exe -b8K -r -w30 -d60 -o4 -t4 -L -h -c500M d:\io.dat

Command Line: diskspd.exe -b8K -r -w30 -d60 -o4 -t4 -L -h -c500M d:\io.dat

Input parameters:

        timespan:   1
        -------------
        duration: 60s
        warm up time: 5s
        cool down time: 0s
        measuring latency
        random seed: 0
        path: 'd:\io.dat'
                think time: 0ms
                burst size: 0
                software and hardware write cache disabled
                performing mix test (write/read ratio: 30/100)
                block size: 8192
                using random I/O (alignment: 8192)
                number of outstanding I/O operations: 4
                thread stride size: 0
                threads per file: 4
                using I/O Completion Ports
                IO priority: normal

 

Results for timespan 1:
*******************************************************************************

actual test time:       60.00s
thread count:           4
proc count:             2

CPU |  Usage |  User  |  Kernel |  Idle
-------------------------------------------
   0|  36.41%|   3.31%|   33.10%|  63.59%
   1|  25.78%|   4.11%|   21.67%|  74.22%
-------------------------------------------
avg.|  31.09%|   3.71%|   27.38%|  68.91%

Total IO
thread |       bytes     |     I/Os     |     MB/s   |  I/O per s |  AvgLat  | LatStdDev |  file
-----------------------------------------------------------------------------------------------------
     0 |      4832714752 |       589931 |      76.81 |    9832.17 |    0.407 |     6.122 | d:\io.dat (500MB)
     1 |      5489197056 |       670068 |      87.25 |   11167.78 |    0.358 |     5.745 | d:\io.dat (500MB)
     2 |      4821729280 |       588590 |      76.64 |    9809.82 |    0.408 |     6.128 | d:\io.dat (500MB)
     3 |      5498150912 |       671161 |      87.39 |   11186.00 |    0.358 |     5.741 | d:\io.dat (500MB)
-----------------------------------------------------------------------------------------------------
total:       20641792000 |      2519750 |     328.0941995.77 |   0.381 |     5.925

Read IO
thread |       bytes     |     I/Os     |     MB/s   |  I/O per s |  AvgLat  | LatStdDev |  file
-----------------------------------------------------------------------------------------------------
     0 |      3384016896 |       413088 |      53.79 |    6884.79 |    0.407 |     6.049 | d:\io.dat (500MB)
     1 |      3839533056 |       468693 |      61.03 |    7811.54 |    0.365 |     5.783 | d:\io.dat (500MB)
     2 |      3377061888 |       412239 |      53.68 |    6870.64 |    0.418 |     6.211 | d:\io.dat (500MB)
     3 |      3845488640 |       469420 |      61.12 |    7823.66 |    0.372 |     5.897 | d:\io.dat (500MB)
-----------------------------------------------------------------------------------------------------
total:       14446100480 |      1763440 |     229.61 |   29390.62 |    0.389 |     5.978

Write IO
thread |       bytes     |     I/Os     |     MB/s   |  I/O per s |  AvgLat  | LatStdDev |  file
-----------------------------------------------------------------------------------------------------
     0 |      1448697856 |       176843 |      23.03 |    2947.38 |    0.405 |     6.288 | d:\io.dat (500MB)
     1 |      1649664000 |       201375 |      26.22 |    3356.25 |    0.342 |     5.656 | d:\io.dat (500MB)
     2 |      1444667392 |       176351 |      22.96 |    2939.18 |    0.383 |     5.931 | d:\io.dat (500MB)
     3 |      1652662272 |       201741 |      26.27 |    3362.35 |    0.324 |     5.358 | d:\io.dat (500MB)
-----------------------------------------------------------------------------------------------------
total:        6195691520 |       756310 |      98.48 |   12605.15 |    0.361 |     5.799


  %-ile |  Read (ms) | Write (ms) | Total (ms)
----------------------------------------------
    min |      0.021 |      0.027 |      0.021
   25th |      0.111 |      0.112 |      0.111
   50th |      0.150 |      0.147 |      0.149
   75th |      0.242 |      0.209 |      0.230
   90th |      0.330 |      0.283 |      0.318
   95th |      0.390 |      0.341 |      0.378
   99th |      0.719 |      0.649 |      0.697
3-nines |    107.263 |     83.453 |    104.340
4-nines |    201.529 |    201.382 |    201.501
5-nines |    212.913 |    212.848 |    212.899
6-nines |    237.694 |    237.736 |    237.697
7-nines |    237.697 |    237.736 |    237.736
8-nines |    237.697 |    237.736 |    237.736
    max |    237.697 |    237.736 |    237.736


ヘルプファイル
DiskSpd には、詳細なヘルプファイルも同封されております。


情報元
Diskspd, a Robust Storage Testing Tool, Now Publically Available (英語)
Microsoft/diskspd (英語)

関連記事
SCSI ディスクのパフォーマンス調査 : storport ETW トレース


  1. 2015/09/23(水) 22:40:24|
  2. ツール
  3. | トラックバック:0
  4. | コメント:0
<<WinInet のトレースを用いて、HTTPS のサイトに入力されたパスワードを確認する方法 | ホーム | PerfView を用いてAPS.NET のパフォーマンス調査>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://troushoo.blog.fc2.com/tb.php/258-231dc782
この記事にトラックバックする(FC2ブログユーザー)

スポンサーリンク

最新記事

月別アーカイブ

カテゴリ

ツール (92)
ネットワーク (76)
Visual Studio (56)
SOS・Psscor2/Psscor4 (25)
WinDbg (25)
Linux (23)
Azure (17)
Tips (20)
英語 (1)
About Me (1)
未分類 (0)

全記事表示リンク

全ての記事を表示する

検索フォーム

RSSリンクの表示

リンク

このブログをリンクに追加する