OCI のブロック・ボリュームの性能情報は、
https://docs.oracle.com/ja-jp/iaas/Content/Block/Concepts/blockvolumeperformance.htm#Block_Volume_Performance
に載っています。ここで使用している性能情報は Cloudharmony が提供する性能計測ツールを使って計測しています。
Cloudharmony とは会社名であり、クラウドベンダー毎に、Block Volume の計測手法等が異なると性能が比較しにくいということで、同じ手法で計測して、クラウドベンダー間での差を均して、より公正な性能比較することを推進していて、そのツール名でもあります。
そこで、ここでは、Cloudharmony を使った性能計測環境を構築してみます。
手順
テスト対象 OCI インスタンスの起動
OS イメージは、今回は Oracle Linux 7.9 を使用しました、Oracle イメージの中から "Oracle Cloud Developer Image"を選んでもいいかもしれません、その場合、git が事前に install されている、wkhtmltopdf が最初から yum で install できる REPO の設定になっているなどのメリットがあります。
Block Volume の追加
計測したい形式の Block Volume を追加します、
ここでの注意点は、Compute と同一の Fault Domain に作ることくらいです。
Block Volume を追加したら lsblk
で追加されたことを確認します。
例えば下記の様な Block Volume 情報が見えると思います。
ここではsda
は OS が格納されているローカル NVMe Volume、sdb
が
テスト対象の Block Volume です。
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdb 8:16 0 50G 0 disk
sda 8:0 0 46.6G 0 disk
├─sda2 8:2 0 8G 0 part [SWAP]
├─sda3 8:3 0 38.4G 0 part /
└─sda1 8:1 0 200M 0 part /boot/efi
Block Volume の準備はこれで完了です、fdisk とか filesystem を導入する必要はありません、テストは Block Volume 全体に対して dd の様に実行されます。sdb
がテスト対象です。
前提ツールのインストール
前提ツールを、まとめて install します
sudo yum install php-cli fio gnuplot -y
wkhtmltopdf も pdf 作成に必要ですが、repo にないので下記コマンドでインストールします
sudo yum -y install libXrender libXext
wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.4/wkhtmltox-0.12.4_linux-generic-amd64.tar.xz
tar Jxfv wkhtmltox-0.12.4_linux-generic-amd64.tar.xz
sudo cp wkhtmltox/bin/wkhtmltoimage /usr/bin/
sudo cp wkhtmltox/bin/wkhtmltopdf /usr/bin/
github から Cloudharmony 入手
git clone https://github.com/cloudharmony/block-storage
cd block-storage
性能計測
それでは、Oracle のサイトで示していたテストスクリプトと同じものを動かしてみます。ここでのテスト対象 Block Volume は/dev/sdb
です。
ドキュメントでも事前のバックアップが強弁されていますが、間違って/dev/sda を対象に run.sh を動かすと、OS 区画に対して read write テストを上書きすることになります。
sudo ./run.sh --nopurge --noprecondition --fio_direct=1 --fio_size=10g --target /dev/sdb --test iops --skip_blocksize 512b
上記コマンドを実行しばらく待つ、すると実行した block-storage のディレクトリに report.zip, report.pdf, fio-iops.json, iops.json の 4 つのファイルができていることが分かります。
report.pdf は最終的な報告書
report.zip はpdf 化した報告書の素材
*.json は pdf のテンプレートエンジンに投入する元データのようです。
PC 側の opnSSH などの scp コマンドで以下のファイルをダウンロードします、
pdfはそのまま性能検証報告に使えそうです。
scp opc@<Computeのipアドレス>:/home/opc/block-storage/report.* .
scp opc@<Computeのipアドレス>:/home/opc/block-storage/*.json .
計測結果書式
6 ページからなる、iops ベースの性能情報が記載された pdf と、その元データがダウンロードできました。以下は、1ページ目です。
Troubleshoot
- 実行時に json_decode() エラーが出たら
PHP Fatal error: Uncaught Error: Call to undefined function json_decode() in /home/opc/block-storage/lib/BlockStorageTest.php:352
json parser がないと言われているので json parser を適当にみつくろって install します。
まとめ
- Cloudharmony のテストツールを使うと Block Volume の性能が、どのクラウドベンダーに対しても統一された形式の pdf で出力されるので、相互に比較しやすい。
- wkhtmltopdf というテンプレートエンジンを php-cli から呼び出す形式で pdf を生成している。本当に必要なデータは json 形式で作られた性能情報。このデータがあれば測定結果の再集計も可能。
- 性能計測は Block Volume としてテストされ、ext4 などのファイルシステムとしての性能をテストしているものではない。
- Windows OS で計測する場合は ATP(Active Thread Protection)が性能を低下させるので性能評価時は Bearmetal を使い、ATP なしで計測するという情報については、Bearmetal の Windows を使う可能性が低そうなので検証せず。
-
--test iops
というオプションは random read writeの意味。 - テスト手法の考え方は SNIA SSS PTS という標準に基づいている。SSDに向いたテスト形式が考えてある。
links
wkhtmltopdf の別なインストール方法
https://qiita.com/ucan-lab/items/5ba8c8fac4407239f19f
ブロック・ボリュームの概要
https://docs.oracle.com/ja-jp/iaas/Content/Block/Concepts/overview.htm
wkhtmltopdf の直接ダウンロードのサイト
https://wkhtmltopdf.org/downloads.html
Baremetal の性能についての調査情報
https://www.storagereview.com/review/oracle-cloud-infrastructure-compute-bare-metal-instances-review
クラウドベンチマークを無償で公開する CloudHarmony。その理由と手法を聞いた
https://www.publickey1.jp/blog/12/prcloudharmony.html
SNIA SSS PTS (Storage Networking Industry Association Solid State storage Performance Test Specification)
SNIA: SSDを対象とした性能計測手法などの標準化を進めている団体
-- 以上