ストレステスト結果
本レポートは、IDPシステムにおける各主要エンドポイントおよび業務フローに対するストレステスト結果とその考察をまとめたものである。テストはk6を使用し、各エンドポイント・フローに対して30秒間の高負荷を想定した仮想ユーザーからのリクエストを実施している。
🖥️ 実施環境
✅ ハードウェア・OS情報
- MacBook Pro 14インチ (2023)
- チップ: Apple M2 Max
- メモリ: 64 GB
- OS: macOS 15.0.1 (24A348)
✅ コンテナ構成(Docker Compose)
- Nginx ロードバランサを使用し、idp-server を2台構成で起動
- 各
idp-serverに CPU 2コア・メモリ 2GB のリミット設定(**G1GC有効。ただし、実験的にG1GCをOFFにした場合、レスポンス時間の短縮が確認されており、今後検討余地あり **) - PostgreSQL、Redis、Mockoon を起動
- DB接続・キャッシュ関連パラメータは環境変数で設定し、Redisキャッシュは有効化
- k6はホストマシンから直接実行
📊 テスト結果一覧
| テスト内容 | リク数 | 平均時間 | P95時間 | スループット | エラー率 |
|---|---|---|---|---|---|
| 認可リクエスト | 62,355 | 57.72 ms | 171.15 ms | 2076.49 req/sec | 0.00% |
| バックチャンネル認証リクエスト | 40,722 | 88.40 ms | 208.28 ms | 1354.72 req/sec | 0.00% |
| CIBAフロー | 50,635 | 71.33 ms | 215.26 ms | 1675.03 req/sec | 0.00% |
| トークン発行(password grant) | 1,432 | 421.01 ms | 576.20 ms | 47.31 req/sec | 0.00% |
| トークン発行(client_credentials grant) | 45,896 | 78.46 ms | 159.92 ms | 1526.68 req/sec | 0.00% |
| JWKS取得 | 44,315 | 81.21 ms | 106.52 ms | 1476.20 req/sec | 0.00% |
| トークンイントロスペクション | 89,909 | 40.02 ms | 130.80 ms | 2993.61 req/sec | 0.00% |
| 本人確認申込フロー(Federation + eKYC) | 2,840 | 220.34 ms | 1311.39 ms | 86.93 req/sec | 0.00% |
| 本人確認申込フロー(インデックス最適化後) | 9760 | 61.84 ms | 231.76 ms | 320.45 req/sec | 0.00% |