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の技術発表資料です
December 16, 2022
Programming
0
130
初めての負荷テスト with Locust (ハンズオン)
NearMeの技術発表資料です
December 16, 2022
Tweet
Share
More Decks by NearMeの技術発表資料です
See All by NearMeの技術発表資料です
OR-Toolsの中⾝ -VRPの解法について-
nearme_tech
0
18
GTFSのデータを Streamlitで可視化してみた
nearme_tech
0
34
Offset / Cursor Paginationについて
nearme_tech
1
25
⼤規模⾔語モデルの拡張(RAG)が 終わったかも知れない件について
nearme_tech
23
15k
VRPを深層強化学習で解く
nearme_tech
0
66
Let’s go monorepo - intro to Nx.dev
nearme_tech
0
18
Dynamic Vehicle Routing のシミュレーションを Streamlitで作ってみた
nearme_tech
0
62
ログ監視ツールについて調べてみた
nearme_tech
0
55
(インターン生が大学院で行なっている)研究紹介
nearme_tech
0
47
Other Decks in Programming
See All in Programming
Java 22 Overview
kishida
1
180
TCAとKMPを用いた新規動画配信アプリ 「ABEMA Live」の設計
tomu28
1
110
効率化に挑戦してみたらモバイル開発が少し快適になった話
ryunakayama
0
130
検証も兼ねて個人開発でHonoとかと向き合った話
hanetsuki
1
1.1k
try!Swift Tokyo 2024 参加報告 LT
akidon0000
1
220
雑に思考を整理する技術と効能
konifar
60
29k
1BRC--Nerd Sniping the Java Community
gunnarmorling
0
340
エンターテイメント業界で利用されるAWS
demuyan
0
210
GraphQLサーバの構成要素を整理する #ハッカー鮨 #tsukijigraphql / graphql server technology selection
izumin5210
4
840
try! Swift Tokyo 初参加報告LT
hinakko2
0
220
GitHub Copilotのススメ
marcy731
1
200
Ruby GitHub Packages
bkuhlmann
0
630
Featured
See All Featured
ReactJS: Keep Simple. Everything can be a component!
pedronauck
659
120k
Into the Great Unknown - MozCon
thekraken
10
990
The Invisible Side of Design
smashingmag
294
49k
The World Runs on Bad Software
bkeepers
PRO
61
6.7k
The Art of Programming - Codeland 2020
erikaheidi
42
12k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
116
18k
Automating Front-end Workflow
addyosmani
1356
200k
StorybookのUI Testing Handbookを読んだ
zakiyama
13
4.6k
Why Our Code Smells
bkeepers
PRO
331
56k
Designing with Data
zakiwarfel
96
4.8k
Design by the Numbers
sachag
274
18k
Building Adaptive Systems
keathley
31
1.9k
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