システムアーキテクト試験 2012年 午前219


ガーベジコレクションを行っている間は、全てのアプリケーションの実行が停止するWebアプリケーションサーバがある。Webアプリケーションサーバの仕様が次の場合,ガーベジコレクションによってアプリケーションの実行が停止している時間はCPU稼働時間のうちの何%となるか。ここで、WebアプリケーションサーバのCPU稼働時間はガーベジコレクションの処理時間とアプリケーションの処理時間から成り、その他の要因については考慮しないものとする。
問題画像
2
2.5(正解)
6.25
8.33

解説

ガーベジコレクションによるアプリケーション停止時間の割合計算【午前2 解説】

要点まとめ

  • 結論:ガーベジコレクションによる停止時間はCPU稼働時間の約2.5%である。
  • 根拠:1回100msのGCが5秒ごとに発生し、CPU使用率80%を考慮して計算する。
  • 差がつくポイント:CPU使用率を考慮した上で、GC時間の割合を正しく求めることが重要。

正解の理由

ガーベジコレクション(GC)は1回100ミリ秒で5秒に1回発生します。1サイクルの合計時間は5秒(5000ミリ秒)です。
GC時間の割合は、単純に100ms ÷ 5000ms = 0.02(2%)ですが、CPU使用率が常に80%なので、CPU稼働時間は5000msのうち4000ms(80%)です。
したがって、GC時間100msはCPU稼働時間4000msのうちの割合となり、100ms ÷ 4000ms = 0.025(2.5%)となります。
これがCPU稼働時間に対するGC停止時間の正しい割合です。

よくある誤解

CPU使用率を考慮せず、単純に全体時間に対するGC時間の割合を求めてしまうことが多いです。
また、GC頻度や時間の単位を混同して計算ミスをすることもあります。

解法ステップ

  1. GCの1回あたりの処理時間を確認(100ミリ秒)。
  2. GCの発生頻度を確認(5秒に1回)。
  3. 1サイクルの合計時間を計算(5秒=5000ミリ秒)。
  4. CPU使用率80%を考慮し、CPU稼働時間を計算(5000ms × 0.8 = 4000ms)。
  5. GC時間のCPU稼働時間に対する割合を計算(100ms ÷ 4000ms = 0.025)。
  6. 割合をパーセント表記に変換(0.025 × 100 = 2.5%)。

選択肢別の誤答解説

  • ア: 2%
    CPU使用率を考慮せず、全体時間に対するGC時間の割合を計算した結果。CPU稼働時間基準ではないため誤り。
  • イ: 2.5%
    CPU使用率を考慮した正しい計算結果。
  • ウ: 6.25%
    GC時間を5秒ではなく、CPU稼働時間の80%を考慮せずに誤った計算をした可能性がある。
  • エ: 8.33%
    GC時間や頻度の単位を誤解し、過大評価した計算結果。

補足コラム

ガーベジコレクションはメモリ管理の自動化に不可欠ですが、処理中はアプリケーションが停止することがあります。
この停止時間を最小化するために、最近のJVMやランタイムでは並列GCやインクリメンタルGCなどの技術が用いられています。
CPU使用率やGC頻度を正確に把握し、パフォーマンスチューニングに役立てることが重要です。

FAQ

Q: なぜCPU使用率を考慮する必要があるのですか?
A: CPU使用率は実際にCPUが稼働している時間の割合を示すため、GC時間の割合を正確に求めるには必須です。
Q: GC時間が長いとどんな影響がありますか?
A: アプリケーションの応答性が低下し、ユーザ体験が悪化する可能性があります。
Q: GC頻度が高い場合はどうなりますか?
A: GCによる停止時間の合計が増え、CPU稼働時間に占める割合も増加します。

関連キーワード: ガーベジコレクション, CPU使用率, Webアプリケーションサーバ, パフォーマンス計測, メモリ管理
← 前の問題へ次の問題へ →

©︎2025 情報処理技術者試験対策アプリ