CTC 教育サービス
[IT研修]注目キーワード Python Power Platform 最新技術動向 生成AI Docker Kubernetes
前回はストレージの性能設計で必要になる基本的な情報についてお伝えしました。今回はストレージの性能を把握する必要性とそのためのベンチマークツールを幾つかご紹介します。
新しいシステムを構築する際にはOSをセットアップした後にCPUやストレージの性能をベンチマークツールなどで確認することをお勧めします。アプリケーションを一通り構築した後に性能の問題が判明した場合、ハードウェアの再設定などでOSから再構築になる場合もあります。特にストレージについてはRAIDの再構築やフォーマットなどが必要になることもあるので早い段階で性能評価をしておくことは重要です。
ここからはストレージのパフォーマンスを測定するためのベンチマークツールを紹介していきます。
ハードディスクやSSDの性能を測定する場合によく使われるツールです。インターネットなどでストレージのベンチマーク結果を検索すると良く使われていることが分かると思います。このツールでは性能測定のために読み書きするデータの量(テストサイズ - 1000MB や 4000MB など)と測定する回数、測定対象のドライブを選択するだけで性能を測定することができます。測定結果としてはシーケンシャル Read / Write や512K、4K単位のランダムI/O、4K単位のランダムI/Oを非同期で行った場合(4K QD32)の性能を取得することができます。最後の非同期I/OにあるQDとは Queue Depth の略で、QD32は32個のIO命令を一度に発行していることを意味しています。このツールのGUIではすべて MB/s 単位で表示されていますが、[編集] - [コピー] をクリックしてメモ帳などで貼り付けることで IOPS 単位の数値も取得することができます。
このツールを使って測定する場合はテストサイズを変えて複数回実行することをお勧めします。RAIDカードに数GBのキャッシュメモリが搭載されている場合、テストサイズが小さいとキャッシュメモリだけでアクセスを処理してしまい、本来のストレージの性能を測定できない場合もあります。また、大量のディスクでRAIDを構成している場合はQD32では負荷が低すぎる場合もありますので、その場合は別なツールでも測定することをお勧めします。
このツールも簡単に性能測定ができるツールですが、1つの特徴はストレージの全域に対して性能測定ができることです。一般的なハードディスクは内周・外周で読み書きの性能が変化することが殆どで、ハードディスクの容量を使い切るまでデータを溜め込むと読み書きが遅くなることもあります。そのため、このツールを使ってストレージの全域でどの程度の性能を発揮するのかを把握しておくことは必要です。
SQLIO はマイクロソフトが提供しているストレージのベンチマークツールです。このツールはコマンドベースで実行するツールですが、テスト内容を細かく設定することが可能です。
このツールを実行するためにはコマンドプロンプトから引数をつけて起動するする必要があります。例えば [sqlio.exe -kR -t1 -s30 -frandom -b2 -o32 d:\testfile.dat] といったコマンドを実行します。それぞれの引数の意味は以下の通りです。
複数のファイルに同時に負荷をかけたい場合や、RAIDカードのキャッシュに収まらないような大きなファイルサイズを指定したい場合はパラメーターファイルを利用します。パラメーターファイルはテキストエディタで以下のように記述します。
c:\testfile.dat 2 0x0 1000
d:\testfile.dat 2 0x0 1000
この例では、cドライブとdドライブの両方にtestfile.dat というファイルを作成します。そしてそれぞれに2スレッドを使って負荷をかけます。0x0 の部分は負荷をかけるために使うCPUの指定で 0x0 はすべてのCPUを利用可能であることを意味します。最後の1000の部分はファイルサイズをMB単位で指定しています。
このパラメーターファイルを利用して実行する場合の例は以下の通りで、最後の-Fオプションでパラメーターファイルを指定しています。また、SQLIOには他にも多くのオプションが用意されているので、Readme.txtなどをご確認ください。
sqlio -kR -s360 -fsequential -o8 -b256 -Fparam.txt
このSQLIOで確認したいポイントとしては、数十GBクラスの大きなサイズのファイルに対してI/O性能やブロックサイズを変更した際の性能の変化、長時間負荷をかけた場合の性能の安定性などです。また、コマンドプロンプトを複数使って同時に読み込みと書き込みの負荷をかけた場合の性能を確認することもできます。
今回紹介したツール以外にもストレージのベンチマークはありますので、いろいろ使ってみることをお勧めします。そして新しいストレージを利用する場合にはベンチマークを実行して結果を保存しておきましょう。システムの稼働後にパフォーマンスの問題が発生した場合に先に測定したベンチマーク結果が原因解析に役立つかもしれません。
[IT研修]注目キーワード Python Power Platform 最新技術動向 生成AI Docker Kubernetes