🙆
k6でrpsを指定して試験を実施したい場合のExecutor選定
こんにちは、kudomaです。
最近、弊社ではオンプレミスからAWSへの移行を進めています。
移行後に「パフォーマンスが劣化しているのでオンプレミスに切り戻します」なんてことがないように、リリース前にパフォーマンス試験を実施し、合格する必要があります。
今回はOpen ModelとExecutorの選定について話していこうと思います。
Executorを適当に採用してた方の参考になると嬉しいです。
実装はk6公式ドキュメントにサンプルがあるので、そちらを参考にしてみてください。
Closed Model vs Open Model
Closed Model
Closed Modelは、掛ける負荷がターゲットシステムの応答時間に依存する。
例えば、以下のようにシステムの応答時間が2倍遅くなると、掛かる負荷が半分になるのです。
このmodelは、ユーザーのスループットをテストするのに適しています。
ユーザ数 | 負荷を掛ける時間 | システムの応答時間 | 負荷 |
---|---|---|---|
1 | 1m | 1s | 60rpm |
1 | 1m | 2s | 30rpm |
Open Model
Open Modelは、掛ける負荷がターゲットシステムの応答時間に依存しない。
例えば、以下のようにシステムの応答速度が2倍遅くなっても、掛かる負荷は変わりません。
このmodelは、アプリケーションの同時アクセス時の挙動をテストするのに適しています。
ユーザ数 | 負荷を掛ける時間 | システムの応答時間 | 負荷 |
---|---|---|---|
1 | 1m | 1s | 60rpm |
1 | 1m | 2s | 60rpm |
Open Modelを実装したExecutor
2023/12/21日時点では全部で7つExecutorがあります。
この中でOpen modelが実装されたExecutorは2つあります。
-
Constant arrival rate
- 一定の負荷を掛けたい場合に利用
-
Ramping arrival rate
- 負荷を増加・維持・減少させたい場合に利用
Executorの選定
最近、平均負荷テスト, ストレステスト, スパイクテストの3つを実装したので、その時に採用したExecutorと採用理由も書いておきます。
試験の種別 | 試験のイメージ(色) | 採用したExecutor | 採用理由 |
---|---|---|---|
平均負荷テスト | 緑 | Constant arrival rate | 一定の負荷を掛けるだけだから |
ストレステスト | 紫 | Ramping arrival rate | 負荷を増加・維持・減少させたいから |
スパイクテスト | 黄 | Ramping arrival rate | 負荷を急激に増加・減少させたいから |
各テストのイメージはこんな感じです。
最後に
最後まで読んでくださって、ありがとうございました。
僕は今年でアドカレ3年目になりました。(あー早い...
他の記事も興味あったら、是非見てみてください!
Discussion