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
Locustでmacから開発環境に負荷試験をしてみた
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
toridori
January 10, 2025
270
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Locustでmacから開発環境に負荷試験をしてみた
toridori
January 10, 2025
More Decks by toridori
See All by toridori
N + 1 問題の概要と Railsにおける解決方法
toridori_dev
0
220
Aurora Cloneで QA環境をつくってみた
toridori_dev
0
310
ニューモーフィズムってどうなの
toridori_dev
0
550
toridori base webをv0で爆速で作った話
toridori_dev
0
250
ハイパーパラメータチューニングって何をしているの
toridori_dev
0
490
KoT APIでプチ業務改善を試してみた
toridori_dev
0
610
MUI DataGridProコンポーネントの紹介
toridori_dev
0
1.1k
あの日行ったマージの仕組みを僕達はまだ知らない。
toridori_dev
0
400
DBマイグレーションとORMについて
toridori_dev
0
300
Featured
See All Featured
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.8k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
610
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
150
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
620
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.5k
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
Thoughts on Productivity
jonyablonski
76
5.2k
Optimizing for Happiness
mojombo
378
71k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
540
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
260
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
140
Ethics towards AI in product and experience design
skipperchong
2
310
Transcript
Locustでmacから開発環境に負荷 試験をしてみた
Locustとは オープンソースの負荷試験ツール pythonでシナリオ記述ができる 単一ワーカーからの負荷のみでなく、複数ワーカーからの分散負荷をサポートしている https://locust.io/ Locust
なぜLocust? JMeterやk6など他にも有名なツールはあるが、なぜLocustを選んだのか? • web UIが充実していて、負荷試験中のモニタリングがしやすいから • pythonで書けるから ◦ 案件でSageMaker Endpointに対して負荷試験をしたかったのだが、LocustならAWS
SDK(boto3)が使えるから ▪ 実は最初はk6(JSでシナリオ書けるツール)でやろうと思っていたが、SageMaker clientに 対応してなくて独自実装するのがだるくてやめた Locust
そもそも負荷試験とは アプリケーションに負荷をかけた際の挙動や性能を検証するテストのこと。 • 「普段の開発だと同時リクエストなんてしないから、本番で同時にたくさんのリクエストが来たら ここの挙動どうなるんだろう…」 • 「⚪時台の想定リクエストxxxx件くらいだけど、サーバ落ちたりしないかな…」 みたいな問題を事前にある程度解決できる。 負荷試験
負荷試験の種類について k6の公式ドキュメント が言うには、負荷試験には大きく5つの種類がある。 1. スモークテスト 2. 平均負荷テスト 3. ストレステスト 4.
ソークテスト 5. スパイクテスト 基本的にはスモークテストで正常に動くことを確認し、2~5のテストに臨む。 負荷試験
スモークテスト システムが最小限の負荷で適切に動作することを検証。 負荷試験というか品質保証みたいなもの。バグがあるのに負荷試験しても意味ないので。 負荷試験の種類
平均負荷テスト 予想される通常の条件下でシステムがどのように動作するかを検証。 本来は最低限これがOKだったら初回リリースとしたいところ。 負荷試験の種類
ストレステスト 負荷が予想される平均を超えた場合に、システムがどのように動作するかを検証。 • どの程度の負荷になら耐えられるのか、限界の特定 • ボトルネックの発見 ◦ 純粋にサーバスペックが低いのか、RDSのコネクションが少なすぎるのか 等 •
自動スケーリング時の挙動確認 できれば初回リリース前にやりたい。 負荷試験の種類
ソークテスト 長期間負荷がかかった場合のシステムの信頼性とパフォーマンスを評価。 • パフォーマンスの劣化確認 • メモリリーク等の長時間運用で顕在化する問題の特定 もちろんできるならやるに越したことはないが、初回リリースではやらなくても良い気はする。 こういうのが顕在化するのは多少運用してからなので。 顕在化してからでは遅くね?というのはもちろんそうなのだが、そこまで余裕のある企業がどれほどあ るだろうか。
負荷試験の種類
スパイクテスト 負荷が急増した場合のシステムの動作と存続を検証。 • 突然のトラフィック増加に対する応答確認 • その後の負荷の減少に対する回復確認 • ボトルネックの発見 これを実施するかどうかはサービスの特性による。 管理画面とかなら正直不要だろうし、ゲームとかチケット販売サービスとかは必須だろう。
負荷試験の種類
Locustで負荷試験をやってみよう 本当はDBアクセスしたいんだけど、今回はしてない。許して。 実際はIOPS(一秒間にどれだけ読み書きできるか)とかレイテンシとかも見て。 AWS RDSならモニタリングタブで確認できる。 負荷試験の実施
まとめ • Locustなら誰でもできるレベルで簡単に負荷試験できる ◦ UIみやすくてめっちゃ良い感じ ▪ CSVで出力できたり、レポートもみれたり至れり尽くせり ◦ とはいえチームによってちゃんとツール選定はしよう •
負荷テストには色々な種類があるので、そのサービスの性質に応じて使い分けよう まとめ