Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
初めての負荷テスト with Locust (ハンズオン)
Search
NearMeの技術発表資料です
PRO
December 16, 2022
Programming
0
190
初めての負荷テスト with Locust (ハンズオン)
NearMeの技術発表資料です
PRO
December 16, 2022
Tweet
Share
More Decks by NearMeの技術発表資料です
See All by NearMeの技術発表資料です
ルートの質を評価する指標について
nearme_tech
PRO
0
13
Rustで作る強化学習エージェント
nearme_tech
PRO
0
43
ビームサーチ
nearme_tech
PRO
0
36
WASM入門
nearme_tech
PRO
0
37
ESLintをもっと有効活用しよう
nearme_tech
PRO
0
26
リファクタリングのための第一歩
nearme_tech
PRO
0
69
ガウス過程回帰とベイズ最適化
nearme_tech
PRO
1
200
確率的プログラミング入門
nearme_tech
PRO
2
120
Observability and OpenTelemetry
nearme_tech
PRO
2
46
Other Decks in Programming
See All in Programming
コミュニティ駆動 AWS CDK ライブラリ「Open Constructs Library」 / community-cdk-library
gotok365
2
260
AIレビュー導入によるCIツールとの共存と最適化
kamo26sima
1
860
変化の激しい時代における、こだわりのないエンジニアの強さ
satoshi256kbyte
1
120
Django NinjaによるAPI開発の効率化とリプレースの実践
kashewnuts
1
300
やっと腹落ち「スプリント毎に動くモノをリリースする」〜ゼロから始めるメガバンクグループのアジャイル実践〜
sasakendayo
0
170
dbt Pythonモデルで実現するSnowflake活用術
trsnium
0
270
コードを読んで理解するko build
bells17
1
120
たのしいSocketのしくみ / Socket Under a Microscope
coe401_
8
1.4k
Amazon Bedrockマルチエージェントコラボレーションを諦めてLangGraphに入門してみた
akihisaikeda
1
160
CloudNativePGを布教したい
nnaka2992
0
120
Serverless Rust: Your Low-Risk Entry Point to Rust in Production (and the benefits are huge)
lmammino
1
170
Expoによるアプリ開発の現在地とReact Server Componentsが切り開く未来
yukukotani
2
230
Featured
See All Featured
Docker and Python
trallard
44
3.3k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
233
17k
Navigating Team Friction
lara
183
15k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
11
1.3k
Building an army of robots
kneath
303
45k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
7.1k
How to Ace a Technical Interview
jacobian
276
23k
How to train your dragon (web standard)
notwaldorf
91
5.9k
Automating Front-end Workflow
addyosmani
1369
200k
How STYLIGHT went responsive
nonsquared
99
5.4k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.5k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
175
52k
Transcript
0 初めての負荷テスト with Locust (ハンズオン) 2022-12-16 第25回NearMe技術勉強会 Kenji Hosoda
1 アジェンダ • Webサーバーのセットアップ • Locustのセットアップ • Requests Per Second(RPS)とResponse
Timeの変化の確認 • Locustの分散実行 • Webサーバーのワーカー数による変化
2 Webサーバーのセットアップ • Node.jsのインストール • Expressのインストール ◦ npm install express
• server.mjsのダウンロード ◦ https://gist.github.com/kenji4569/b74cf04ce34cb8f2ab5a1923ac4fe367 • サーバーの起動 ◦ node server.mjs • レスポンスの確認 ◦ curl http://localhost:4000 (別コンソールで)
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 Requests Per Second(RPS)とResponse Timeの変化の確認 • Locustの実行 ◦ ブラウザでhttp://0.0.0.0:8089を開き”Start swarming”をクリック
• ユーザー数を100にしてみる
5 Locustの分散実行 • マスターの実行 ◦ locust --host=http://localhost:4000 --master • ワーカーの実行
◦ locust --worker --master-host=localhost (別コンソールで x2)
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のブロック時間で実行 ◦ → エラー発生
7 Thank you