minioのベンチマークを公式ツールなwarpを使って取ってみる。
概要
上記の記事で作った構成のベンチマークを公式ベンチマークツール?の
warpを使って取得してみる。
何でこの記事を書いたのか
warpがさらっと使えて便利だったので、シュッとまとめようと思った。
あんまり記事も無いみたいだし。
warpってどんなツール?
公式リポジトリ に書いてある。
注意事項とかも書いてあるからそっちを読んだほうがいい。
ざっくりまとめるなら、
単に1台のホストからとあるminoに対して負荷をベンチマークテストを実行するだけじゃなくて、
複数台のホストからとあるminioに対して実行したり、
1台のホストもしくは複数台のホストからminio 群に対してベンチマークテストを実行できて、
ベンチマークテスト同士の結果を比べてくれたりするツール。
DDOSになってしまわないようにしよう。
前提
- 構成は以下
- インターネット側は100Mbpsベストエフォート
- HAProxy配下は1Gbpsまで
- 1台のminioに対してと複数のminoで分散した場合のそれぞれ行う。
- 使っているVMは全て1コア1GBメモリの一番小さいやつ
- minioのIPは192.168.5.21 〜 25まで。
まずはじめに
warpのイメージのDockerfile見ているとentrypointに./warpがあるので、docker container run時に色々引数を渡せばいいのだなと分かる。
インターネット越しにベンチマークテストしてみる
HAProxyを介すけどバランシングせず、1台のminioに対して実施してみる
HAProxyの設定でバランスしないようにするだけで、warpは関係ない。
sudo docker run --rm docker.io/minio/warp:latest \
mixed --host=HAProxyのIP:9000 \
--access-key=AKIAIOSFODNN7EXAMPLE \
--secret-key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY \
--objects 100 --obj.size 1MiB --autoterm
# 例
sudo docker run --rm docker.io/minio/warp:latest \
mixed --host=proxy.tmktmk.tmk:9000 \
--access-key=AKIAIOSFODNN7EXAMPLE \
--secret-key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY \
--objects 100 --obj.size 1MiB --autoterm
HAProxyを介してroundrobinでバランシングして、5台のminioに対して実施してみる
HAProxyの設定でバランスするだけなので、warpは関係ないので前項のコマンドと一緒(ry
minioに直接ベンチマークテスト実施してみる
前提の図にはないけどSWに繋がるインスタンスを1つ作って、
以下の2パターンで実行しました。
1台のminioに対して実行して実行結果をアタッチしたディレクトリに保存する
192.168.5.21 のminioに対して実行するぞ!
--benchdata
でベンチマークテスト結果を出力する場所を指定できる。
コンテナの /test_dir/
ってところに from_inside_node1
ってファイル名で作成する感じ。
拡張子は自動でつく。
ローカルの /home/ubuntu/result_tank/
は コンテナに /test_dir
としてアタッチされる。
sudo docker run -it \
-v /home/ubuntu/result_tank/:/test_dir \
docker.io/minio/warp:latest mixed --host=192.168.5.21:9000 \
--access-key=AKIAIOSFODNN7EXAMPLE \
--secret-key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY \
--objects 1250 --obj.size 10MiB --autoterm \
--benchdata /test_dir/from_inside_node1
5台のminioに対して実行して実行結果をアタッチしたディレクトリに保存する
変更点は --host=192.168.5.21:9000
だった前項の部分を
--host=192.168.5.2{1...5}:9000
に変えるだけ。これで5.21 ~ 25のminioに対してベンチマークテストを実行することになる。
あ、あとファイル名は from_inside_node1
から
from_inside_node1to5
に変えました。次の項でそれぞれの結果を比較したいのです。
実行結果を比較する
引数cmp を使って比較する。
時系列順ではなく指定した順に比較される。(公式のこの辺に書いてる。)
以下の場合は、from_inside_node1.csv.zstが前, from_inside_node1to5.csv.zstが後として比較される
sudo docker run -it \
-v /home/ubuntu/result_tank/:/test_dir \
docker.io/minio/warp:latest \
cmp /test_dir/from_inside_node1.csv.zst /test_dir/from_inside_node1to5.csv.zst
以下の感じで結果が表示される。
-------------------
Operation: DELETE
Operations: 385 -> 722
Endpoints: 1 -> 5
* Average: +87.90% (+1.1) obj/s
-------------------
Operation: GET
Operations: 1753 -> 3228
Endpoints: 1 -> 5
* Average: +84.67% (+49.2 MiB/s) throughput, +84.67% (+4.9) obj/s
* First Byte: Average: -86.766995ms (-27%), Median: -35.278689ms (-15%), Best: -4.446406ms (-45%), Worst: -355.010915ms (-25%)
-------------------
Operation: PUT
Operations: 587 -> 1076
Endpoints: 1 -> 5
Duration: 4m59s -> 5m0s
* Average: +84.06% (+16.3 MiB/s) throughput, +84.06% (+1.6) obj/s
-------------------
Operation: STAT
Operations: 1164 -> 2145
Endpoints: 1 -> 5
* Average: +84.17% (+3.3) obj/s
全体的に分散したほうがパフォーマンスが上がっていることが分かる。(だよね?)
終わりに
今回はベンチマークテストの手法をmixedにしたけども、getだけとかputだけとかも出来るし、
以下みたいなwarpを実行するクライアントを増やして協調してベンチマークテストを実行する事もできる。
(画像は公式のREADMEから抜粋)
Author And Source
この問題について(minioのベンチマークを公式ツールなwarpを使って取ってみる。), 我々は、より多くの情報をここで見つけました https://qiita.com/tomokitamaki/items/b3bd746701b3648133af著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .