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
200
初めての負荷テスト with Locust (ハンズオン)
NearMeの技術発表資料です
PRO
December 16, 2022
Tweet
Share
More Decks by NearMeの技術発表資料です
See All by NearMeの技術発表資料です
希望休勤務を考慮したシフト作成
nearme_tech
PRO
0
20
Hub Labeling による高速経路探索
nearme_tech
PRO
0
54
Build an AI agent with Mastra
nearme_tech
PRO
0
68
Rustで強化学習アルゴリズムを実装する vol3
nearme_tech
PRO
0
33
Webアプリケーションにおけるクラスの設計再入門
nearme_tech
PRO
1
72
AIエージェント for 予約フォーム
nearme_tech
PRO
2
140
ULID生成速度を40倍にしたった
nearme_tech
PRO
2
51
Amazon AuroraとMongoDBの アーキテクチャを比較してみたら 結構違った件について
nearme_tech
PRO
0
24
GitHub Custom Actionのレシピ
nearme_tech
PRO
0
16
Other Decks in Programming
See All in Programming
ruby.wasmで多人数リアルタイム通信ゲームを作ろう
lnit
2
280
都市をデータで見るってこういうこと PLATEAU属性情報入門
nokonoko1203
1
570
アンドパッドの Go 勉強会「 gopher 会」とその内容の紹介
andpad
0
270
PHPでWebSocketサーバーを実装しよう2025
kubotak
0
220
Cursor AI Agentと伴走する アプリケーションの高速リプレイス
daisuketakeda
1
130
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
47
31k
明示と暗黙 ー PHPとGoの インターフェイスの違いを知る
shimabox
2
370
Haskell でアルゴリズムを抽象化する / 関数型言語で競技プログラミング
naoya
17
5k
「Cursor/Devin全社導入の理想と現実」のその後
saitoryc
0
200
GraphRAGの仕組みまるわかり
tosuri13
8
490
型付きアクターモデルがもたらす分散シミュレーションの未来
piyo7
0
810
XSLTで作るBrainfuck処理系
makki_d
0
210
Featured
See All Featured
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
35
2.4k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
53
2.8k
Gamification - CAS2011
davidbonilla
81
5.3k
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.8k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.8k
Fireside Chat
paigeccino
37
3.5k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
229
22k
How GitHub (no longer) Works
holman
314
140k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.5k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
331
22k
The Invisible Side of Design
smashingmag
300
51k
The Art of Programming - Codeland 2020
erikaheidi
54
13k
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