Upgrade to Pro — share decks privately, control downloads, hide ads and more …

初めての負荷テスト with Locust (ハンズオン)

初めての負荷テスト with Locust (ハンズオン)

More Decks by NearMeの技術発表資料です

Other Decks in Programming

Transcript

  1. 1 アジェンダ • Webサーバーのセットアップ • Locustのセットアップ • Requests Per Second(RPS)とResponse

    Timeの変化の確認 • Locustの分散実行 • Webサーバーのワーカー数による変化
  2. 2 Webサーバーのセットアップ • Node.jsのインストール • Expressのインストール ◦ npm install express

    • server.mjsのダウンロード ◦ https://gist.github.com/kenji4569/b74cf04ce34cb8f2ab5a1923ac4fe367 • サーバーの起動 ◦ node server.mjs • レスポンスの確認 ◦ curl http://localhost:4000 (別コンソールで)
  3. 3 Locustのセットアップ • Locustのインストール ◦ https://locust.io/ ◦ pip3 install locust

    • locustfile.pyの作成 • Locustの起動 ◦ locust --host=http://localhost:4000 from locust import HttpUser, task class HelloWorldUser(HttpUser): @task def hello_world(self): self.client.get("/")
  4. 6 Webサーバーのワーカー数による変化 • ワーカー数とブロック時間を指定して実行 (server.mjsの中身をチェック) ◦ node server.mjs {workers} {block_time_ms}

    ◦ ブロック時間は重たい処理を行う時間 ▪ これがないとワーカー数によるRPSの変化が見えづらかったので • 1ワーカー 100msのブロック時間で実行 ◦ node server.mjs 1 100 ◦ → RPSは10に収束 • 2ワーカー 100msのブロック時間で実行 ◦ node server.mjs 2 100 ◦ → RPSは20に収束 • 1ワーカー 1000msのブロック時間で実行 ◦ → エラー発生