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
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
860
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
210
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
450
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
1.1k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
300
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2.1k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.2k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.6k
Bash Introduction
62gerente
615
220k
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
1
3.6k
Optimising Largest Contentful Paint
csswizardry
37
3.7k
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で出力できたり、レポートもみれたり至れり尽くせり ◦ とはいえチームによってちゃんとツール選定はしよう •
負荷テストには色々な種類があるので、そのサービスの性質に応じて使い分けよう まとめ