LoginSignup
15
15

More than 5 years have passed since last update.

Docker ComposeでLocustの負荷試験環境を作成する

Posted at

負荷試験の環境を手軽に作りたいという思い、Dockerで使って作ってみた。

基本的には下記のものとほとんど下記を参照しています。+αとしてDocker Compose使うとよりいいかんじにmaster slave構成ができるというもの。

Docker + Locustのことは上記に詳しく書いているので省略します。

source

Docker ComposeのConfigは下記のようになっていて、テスト用にnginxを立てていて、nginxに対して負荷をかけていく構成にしています。

docker-compose.yaml
web:
  image: nginx
  ports:
    - "80:80"
master:
  build: .
  command: locust -f /locust/scenarios.py -H http://web --master
  ports:
    - "8089:8089"
    - 5557
    - 5558
  links:
    - web
slave:
  build: .
  command: locust -f /locust/scenarios.py -H http://web --slave --master-host=master
  links:
    - web
    - master
  ports:
    - 5557
    - 5558

シナリオはただ単にGETするだけのもの

/locust/scenarios.py
from locust import HttpLocust, TaskSet, task

class MyTaskSet(TaskSet):

    @task(1)
    def index(self):
        self.client.get("/")


class MyLocust(HttpLocust):
    task_set = MyTaskSet

これで

$ docker-compose up

すればnginxとLocustのmaster + slave * 1が立ち上がります。
LocustのWeb UIで見ればSalveが1になっていると思います。

Slave増やしたいなって思った時は下記のコマンド一発で増やせます。

$ docker-compose scale slave=2

これだけで台数増やせて負荷をかけられるのはいいと思うので負荷試験のときは使ってもいいと思います。これだとSalveを増やしてもシングルホスト上で増えるだけなのでいずれはクライアント側は限界くると思います。
なので下記の記事を参考にすればシングルホストの限界は超えられるかなと思ったりしています。

15
15
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
15