お客様は MinIO を環境に導入して、あらゆる物理ハードウェアまたは仮想ハードウェアおよび Kubernetes 上で実行できる高性能の S3 互換オブジェクト ストレージを取得します。弊社が公開したベンチマークは、 MinIO が利用可能なオブジェクト ストレージの中で最速であることを示していますが、実行できる速度は、指定したハードウェアとネットワークと同じ速度に限られます。私たちのチームはパフォーマンスに重点を置いているため、管理者が MinIO を最大限に活用できるよう全力を尽くしています。基盤となるインフラストラクチャが MinIO を最適にサポートできることを検証するために、パフォーマンスを評価し、潜在的なボトルネックを特定する 2 つの方法、WARP と Speedtest を提供します。
AI/ML、高度な分析、データベースなどの最新のアプリケーションには、高性能のオブジェクト ストレージが必要です。 MinIO のスケーラビリティとハイパフォーマンスの組み合わせにより、要求がどれほど厳しいかに関係なく、あらゆるワークロードを手の届く範囲に収めることができます。パフォーマンスが重要な場合は、可能な限り最高のパフォーマンスを達成していることを認識する必要があります。 WARP と Speedtest の結果を使用して、パフォーマンスを長期にわたって追跡し、潜在的な問題が深刻な問題に発展する前に事前に特定することができます。
WARP は、WARP クライアントとオブジェクト ストレージ ホスト間のテストを実行するために構築された、オープンソースのフル機能の S3 パフォーマンス評価ソフトウェアです。 WARP は、MinIO クラスターに対する複数のクライアントからの GET および PUT のパフォーマンスを測定します。 WARP には、コマンド ラインまたは環境変数によって設定される多くのオプションがあり、ワークロードに合わせたテストを作成できます。覚えておいてください。有意義な方法でパフォーマンスを評価し、オブジェクト ストレージが動作する実際の状況を表すデータとワークロードを使用してテストすることが絶対に重要です。
対照的に、Speedtest は、合理化されたエクスペリエンスと簡潔な結果を提供する、使いやすい自動パフォーマンス テストです。私たちは 11 月にSpeedtest を導入し、 MinIO 管理者が 1 つのコマンドで MinIO クラスターの分散パフォーマンス評価を実行できるようにしました。 Speedtest は PUTS を実行してから GETS を実行し、負荷を段階的に増加させて最大総スループットを特定します。 MinIO クラスターに応じて、テストの実行には数秒から数分かかる場合があります。
WARP と Speedtest の間にはいくつかの重要な違いがあります。 WARP は、WARP クライアントによって実行される操作を通じて MinIO クラスターのパフォーマンスをテストする完全なツールです。クライアント マシンは、ネットワーク経由で分散 MinIO クラスターに対してオブジェクトの PUTS および GETS を実行します。このため、WARP は、予想されるクライアント/サーバーのパフォーマンスをテストするための優れたメカニズムになります。対照的に、Speedtest は MinIO インスタンス上で実行され、同じクラスター内の他の MinIO インスタンスに対してオブジェクトの PUTS および GETS を実行します。そのため、Speedtest は、パフォーマンス方程式のサーバー側で何ができるかを示します。
WARP には、オブジェクト ストレージに対して実行する可能性のあるほぼすべてのテスト (GET、PUT、DELETE、LIST、STAT、RETENTION) が含まれており、テストの実行には、ワークロードに合わせてオブジェクト サイズのカスタムの組み合わせを含めることができます。 Speedtest は設定されたテスト パラメータを通じて実行され、最大スループットを迅速に特定します。 WARP には追加のソフトウェアが必要ですが、Speedtest は MinIO に含まれており、mc インターフェイスまたは MinIO コンソールから実行できます。トラブルシューティングを支援するために、顧客はワンクリックで Speedtest の結果を MinIO エンジニアと共有できます。
まずはWARPについて見ていきましょう。 WARP は、さまざまな条件下で MinIO または S3 互換オブジェクト ストレージのパフォーマンスを徹底的にベンチマークできるツールです。デフォルトでは、WARP は分散モードで実行されている MinIO によって使用されるすべてのディスクに対して読み取りと書き込みの混合テストを実行します。
このデモに関しては。 WARP を実行して、AWS 上で分散モードで実行されている MinIO をテストします。私たちは最近これを頻繁に行っているので、テストによって見つけた最高のパフォーマンスの構成を潜在顧客および現在の顧客にアドバイスできます。
WARP はGitHub リポジトリにあり、詳細なドキュメントもそこにあります。
まず、分散モードで MinIO をデプロイします。 MinIO をダウンロードして自分の環境にインストールすることも、このチュートリアルに従って AWS EC2 に MinIO をインストールすることもできます。
いずれにせよ、分散 MinIO デプロイメントから始めます。
MinIO が起動して実行されると、WARP を使用してパフォーマンスを測定できるようになりますので、始めてみましょう。
すべての Amazon UI または AWS CLI については、前のブログ投稿の手順に従ってインスタンスをデプロイしてください。ただし、追加のストレージは設定しないでください。 WARP を実行するインスタンスは、オブジェクトを迅速に生成し、PUT および GET 操作を測定できるほど強力である必要がありますが、MinIO ノードに必要なストレージ ボリュームは必要ありません。
172.31.23.237 host1 172.31.26.78 host2 172.31.26.90 host3 172.31.19.110 host4 172.31.27.18 warp1 172.31.23.81 warp2 172.31.19.28 warp3 172.31.19.7 warp4
ホストを連続した順序でリストし、操作することをお勧めします。これにより、コマンド ラインからの WARP の起動が簡素化され、各 WARP クライアントと MinIO ホストを見つけやすくなります。
[root@ip-172-31-19-7 ec2-user]# wget https://github.com/minio/warp/releases/download/v0.5.5/warp_0.5.5_Linux_arm64.tar.gz 2022-02-08 20:06:04 (66.3 MB/s) - 'warp_0.5.5_Linux_arm64.tar.gz' saved [3943887/3943887] [root@ip-172-31-19-7 ec2-user]# tar -xzvf warp_0.5.5_Linux_arm64.tar.gz LICENSE README.md warp_logo.png warp [root@ip-172-31-19-7 ec2-user]# ./warp client warp: Listening on :7761
各 WARP クライアントがポート 7761 でリッスンしていることに注意してください。
[root@ip-172-31-27-18 ec2-user]# WARP_ACCESS_KEY=minioadmin WARP_SECRET_KEY=minioadmin ./warp mixed --warp-client warp{1...4}:7761 --host host{1...4}:9000 --duration 120s --obj.size 64M --concurrent 64 warp: Benchmark data written to "warp-remote-2022-02-08[201339]-qymu.csv.zst" Mixed operations. Operation: DELETE, 10%, Concurrency: 256, Ran 1m54s. * Throughput: 39.90 obj/s Operation: GET, 45%, Concurrency: 256, Ran 1m54s. * Throughput: 10903.28 MiB/s, 178.64 obj/s Operation: PUT, 15%, Concurrency: 256, Ran 1m54s. * Throughput: 3628.27 MiB/s, 59.45 obj/s Operation: STAT, 30%, Concurrency: 256, Ran 1m54s. * Throughput: 119.98 obj/s Cluster Total: 14501.38 MiB/s, 397.44 obj/s over 1m55s. warp: Cleanup done. [root@ip-172-31-27-18 ec2-user]#
WARP を使用した基本的な混合モードのパフォーマンス テストが完了しました。 WARP を実証するために混合モード テストを使用しましたが、通常は、混合モードを実行するのではなく、個々の操作 (GET、PUT、LIST) を独自のテスト実行に分割することで、実際の使用法に合わせたより良い結果が得られます。 -モードテスト。
さらに多くのテスト シナリオの実行について学習するには、ドキュメントを参照することをお勧めします。たとえば、TLS とサーバー側の暗号化を有効にして、環境内での影響を測定できます。同時テストの数を増やすことで、インフラストラクチャにさらに負荷をかけることができます。オブジェクト サイズをランダムに組み合わせて使用することも、現在の環境やワークロードに一致するオブジェクト サイズを指定することもできます。定義した期間実行するようにテストを構成したり、上記のように自動終了するようにテストを構成したりできます。
WARP の結果は画面に表示され、zstandard を使用して圧縮されたローカル CSV ファイルに保存されます。
WARP の完全な柔軟性を必要としない場合には、Speedtest を使用して MinIO パフォーマンスを測定する迅速かつ簡単な方法を構築しました。 Speedtest は最も一般的には自動調整モードで実行され、負荷を段階的に増加させて最大総スループットを特定します。
mc を使用して Speedtest を実行できます。
$ mc support perf object <alias>
[root@ip-172-31-77-115 ec2-user]# ./mc support perf object myminio THROUGHPUT IOPS PUT 2.4 GiB/s 38 objs/s GET 4.6 GiB/s 73 objs/s Speedtest: MinIO 2022-02-01T18:00:14Z, 4 servers, 16 drives, 64 MiB objects, 72 threads
または、MinIO クラスターの構成、管理、レポートを行うためのブラウザーベースの GUI である MinIO コンソールから Speedtest を実行することもできます。 [サポート] メニューに移動し、[パフォーマンス] をクリックして、[スタート] ボタンをクリックするだけです。
パフォーマンステストが実行されます。完了すると、GET および PUT の合計パフォーマンスと個々のノードのパフォーマンスが表示されます。
Speedtest の詳細と例については、このチュートリアルを参照してください。
今すぐMinIO をダウンロードして始めましょう。 Slack コミュニティに参加して、他の MinIO ユーザーとアイデアを交換してください。 WARP の使用について具体的なご質問がある場合は、Slack チャネル (Matt Sarrel および Cesar Celis) にご連絡いただくか、[email protected] まで電子メールを送信してください。
ここでも公開されています。