見出し画像

負荷テストツールLocust学習5:分散モード

はじめに

こんにちは、SHIFT DevOps推進2グループの李です。
前回はLocustのGUIとCLIの書き方について紹介しました。

負荷テストを実施する時に負荷が足りないことがよくありました。
複数PCで実行する場合レポートの整理も大変でした。
Locustの分散モードを使えば設定は簡単にできますし、レポートも自動的にマスターPCにまとめて出力できます。
今回はLocustの特長である分散モードを紹介しようと思います。

下記が今回使用するソフトウェアです。

内容を5つのシリーズに分けて紹介したいと思います。

連載目次:

  1. 負荷テストツールLocust学習1:Locustとは

  2. 負荷テストツールLocust学習2:Locustを書いてみる

  3. 負荷テストツールLocust学習3:Locustのパラメータ

  4. (前回)負荷テストツールLocust学習4:LocustのGUIとCLI

  5. (最終回)負荷テストツールLocust学習5:Locustの分散モード

分散モードとは

分散モードとは複数のマシンにシナリオかユーザ数を分散して実行することです。PC 1台で負荷テストを実行するとサーバーに対して負荷はあまり掛からないかもしれません。
この際に分散モードを使って、マスターPCと複数ワーカーPCを指定して、複数のマシンで同時に大量アクセスを生成することができます。

Locustの分散モードの特徴は以下の通りです。

  1. 1つのマスターと複数のワーカーを設定して、マスターが自動的にワーカーの負荷を調整する

  2. 各PCの実行結果をマスターに集計されて、自動的にデータをまとめる

  3. Dockerの中でも分散モードが使える。

  4. ワーカー間にフック(Hook)の設定ができるので、依存関係があるテストでも分散できる。

  5. 実行パラメータでマスターとワーカーを指定できる、事前にコンフィグファイルの設定は不要

分散モードの設定方法

マスターの設定

Visual Studio Codeのターミナルで「locust -f locust_test.py --master -H https://api.open-meteo.com/v1 -u 10 -r 5」を入力して、マスターを指定して、ワーカーの接続を待ちます。

ワーカーの設定

コマンドプロンプトを起動して、プロンプトフォルダの「locust_practice」フォルダへ移動します。
そして「locust -f locust_test.py --worker」を入力して、ワーカーとしてマスターに接続します。

※この記事はマスターとワーカーが同じPCで実行していたので、ホストの指定を省略してデフォルトのlocalhostを使用しましたが、複数のPCで実行する場合は必ず「--master-host」を指定してください。

続けて別の2つコマンドプロンプトを起動して、上記と同じ操作でマスターに接続します。
全部接続しましたら、Visual Studio Codeのターミナルで3つのワーカーが接続されたメッセージが表示されます。

分散モード

ブラウザのURL欄で「http://localhost:8089/ 」を入力して、LocustのGUIを開いて「Start swarming」をクリックします。
画面の上部に3つのワーカーが実行されていることが確認でき、「Statistics」タブの内容で3ワーカーが実行した負荷テストが自動的にまとめられ、テスト実施結果を簡単に確認できます。

続けて、「Workers」タブで3つのワーカーが実行しているユーザ数が自動的に振り分けられて、CPUとメモリ消費量も確認できます。

本記事は同じPCで、3ワーカーで負荷テストを実行しましたが、マスターとワーカーのホストを指定すると異なるPCでも分散モードを実行することができます。

最後に

ここまで負荷テストツールLocust学習シリーズを紹介して参りました。 Locustにはまだまだ紹介しきれていない機能がありますので、このシリーズを通してLocustの書き方を理解していただければと思います。
そして興味があればぜひ試してみてください。

最後までお読みいただき、ありがとうございました!

参考資料

  1. https://docs.locust.io/en/latest/

《シリーズをまとめて読む》


執筆者プロフィール:李 嘉興
社会人になって以来、数年間システムエンジニアとして多数のプロジェクトの開発(要件定義~リリース)を経験したのち、2021年7月にSHIFTに入社。
システムエンジニアの仕事と全く違う分野の自動化とCICDを経験しつつ、未来のキャリアのため日々奮闘中。

お問合せはお気軽に
https://service.shiftinc.jp/contact/

SHIFTについて(コーポレートサイト)
https://www.shiftinc.jp/

SHIFTのサービスについて(サービスサイト)
https://service.shiftinc.jp/

SHIFTの導入事例
https://service.shiftinc.jp/case/

お役立ち資料はこちら
https://service.shiftinc.jp/resources/

SHIFTの採用情報はこちら
https://recruit.shiftinc.jp/career/