クイズの説明
Step 3で学んだ内容の理解度をチェックします。
- 全8問
- 合格ライン: 80%(7問正解)
- 不合格の場合は復習してから再挑戦してください
問題
Q1. メモリリークを検出するのに最も適した負荷テストの種類はどれですか?
- A) ロードテスト
- B) ストレステスト
- C) スパイクテスト
- D) ソークテスト
答えを見る
正解: D
ソークテスト(Endurance Test)は長時間にわたって通常負荷をかけ続けるテストです。メモリリーク、コネクションリーク、ログファイルの肥大化など、長時間運用で初めて顕在化する問題を検出するのに最適です。
Q2. セール開始時の急激なアクセス増加に対する耐性を確認するテストはどれですか?
- A) ロードテスト
- B) ストレステスト
- C) スパイクテスト
- D) ソークテスト
答えを見る
正解: C
スパイクテストは、突然の急激なトラフィック増加に対するシステムの回復力を確認するテストです。通常負荷から一気にピーク負荷に上げ、システムが耐えられるか、その後正常に戻れるかを確認します。
Q3. k6のthresholdsで http_req_duration: ['p(95)<300'] の意味は?
- A) 平均レスポンスタイムが300ms以下
- B) 95%のリクエストがレスポンスタイム300ms以下
- C) 最大レスポンスタイムが300ms以下
- D) 最小レスポンスタイムが300ms以下
答えを見る
正解: B
p(95)<300 は、95パーセンタイルのレスポンスタイムが300ms以下であることを要求しています。つまり、全リクエストの95%がレスポンスタイム300ms以下で完了する必要があります。
Q4. テストシナリオで「思考時間」を設定する理由は?
- A) テストの実行時間を短縮するため
- B) サーバーのCPU使用率を下げるため
- C) 実際のユーザー行動を模倣し、現実的な負荷をかけるため
- D) テストの結果を読みやすくするため
答えを見る
正解: C
思考時間(Think Time)は、実際のユーザーがページを閲覧している間の待ち時間を模倣するものです。思考時間なしでテストすると、実際のユーザー行動とはかけ離れた非現実的な負荷がかかり、テスト結果の信頼性が低下します。
Q5. p99/p95の比率が5倍以上の場合、何が疑われますか?
- A) テストデータの不足
- B) テールレイテンシ問題(GC停止、コネクション枯渇など)
- C) VU数が少なすぎる
- D) テスト時間が短すぎる
答えを見る
正解: B
p99/p95の比率が大きい場合、一部のリクエストだけが極端に遅い「テールレイテンシ」問題が発生しています。主な原因はGC停止(Stop the World)、コネクションプールの枯渇、外部APIのタイムアウト、ディスクI/Oのスパイクなどです。
Q6. テストデータのアクセスパターンに「べき乗分布(Zipf分布)」を使う理由は?
- A) テスト実行が速くなるため
- B) 実際のアクセスパターンでは一部のデータにアクセスが集中するため
- C) キャッシュヒット率を0%にするため
- D) エラーを発生させやすくするため
答えを見る
正解: B
実際のWebサイトでは、一部の人気商品や人気ページにアクセスが集中します(80/20の法則)。均等なランダムアクセスでテストすると、キャッシュヒット率が現実と異なり、正確なパフォーマンス評価ができません。べき乗分布を使うことで現実的なアクセスパターンを模倣できます。
Q7. k6のscenariosで複数のexecutorを設定できる利点は?
- A) テスト実行が高速になる
- B) 異なるユーザー行動パターンを同時に並行実行できる
- C) エラーハンドリングが簡単になる
- D) テストコードが短くなる
答えを見る
正解: B
k6のscenarios機能により、閲覧ユーザー、検索ユーザー、購入ユーザーなど、異なるユーザー行動パターンを独立したシナリオとして定義し、並行実行できます。各シナリオに異なるVU数や実行パターンを設定でき、現実的なワークロードをシミュレートできます。
Q8. 負荷テストの結果、DBコネクションプールが飽和(max/max)している場合の最初の対策は?
- A) データベースサーバーを追加する
- B) コネクションプールの最大値を増やす
- C) テストのVU数を減らす
- D) キャッシュTTLを長くする
答えを見る
正解: B
DBコネクションプールが飽和している場合、最初の対策はプールサイズの最大値を増やすことです。ただし、DB側の最大接続数制限も考慮する必要があります。それでも足りない場合は、コネクションの再利用効率の改善やRead Replicaの導入を検討します。
結果
7問以上正解の場合
合格です。おめでとうございます。
Step 3「負荷テストとベンチマーク」を完了しました。 次は Step 4「スケーラビリティの設計」に進みましょう。
6問以下の場合
もう少し復習しましょう。
| 問題 | 復習セクション |
|---|---|
| Q1, Q2 | step3_1 負荷テストの種類 |
| Q4, Q6 | step3_2 テストシナリオの設計 |
| Q3, Q7 | step3_3 k6による負荷テスト |
| Q5, Q8 | step3_4 結果分析とレポーティング |
推定所要時間: 30分