本記事はGeminiの出力をプロンプト工学で整理した業務ドラフト(未検証)です。
IPA午前II解説:システムのスループットとサーバー台数計画
システム設計におけるサーバー台数計画は、要求される処理能力(スループット)と一台あたりの処理性能、および許容稼働率から必要台数を導き出す計算が核となります。
背景
情報システムを構築する際、ユーザーからのアクセス集中や大量のデータ処理に耐えうる性能を持つことは不可欠です。特にWebサービスや基幹システムでは、ピーク時の処理能力を確保することが安定稼働の鍵となります。しかし、過剰なサーバー台数を準備するとコストが無駄になるため、適切な台数を計画することが求められます。この計画は「キャパシティプランニング」と呼ばれ、IPA午前II試験でも頻出のテーマです。
問題点
システムのキャパシティプランニングでは、以下の要素を考慮してサーバー台数を決定する必要があります。
総処理要求量: システムが単位時間あたりに処理すべきリクエストやトランザクションの総量。
単体サーバーの処理能力: 1台のサーバーが単位時間あたりに処理できる最大量。
稼働率の考慮: サーバーを常に最大能力で稼働させると、予期せぬ負荷変動や障害時に対応できなくなるリスクがあります。このため、一般的に設計上の稼働率(余裕を持たせた上限)を設定します。
これらの要素を適切に計算しないと、システムがダウンしたり、応答速度が著しく低下したりする問題が発生します。
計算と手順
具体的な問題を通して、サーバー台数の計算手順を解説します。
例題
あるWebシステムでは、1日のピーク時間帯(8時間)に合計1,440,000件のリクエストを処理する必要がある。システム設計上、1台のサーバーは1秒あたり最大20件のリクエストを処理できるが、安定稼働のため、サーバーの稼働率は最大でも80%に抑えたい。このシステムを安定稼働させるために必要なサーバー台数として、最も適切なものはどれか。
A) 3台 B) 4台 C) 5台 D) 6台
計算手順
1. 1秒あたりの平均リクエスト数を算出
まず、ピーク時間帯にシステムが1秒あたりに処理すべきリクエストの平均数を求めます。
ピーク時間帯の総リクエスト数: 1,440,000件
ピーク時間帯の長さ: 8時間
8時間を秒に変換します。
8時間 × 60分/時間 × 60秒/分 = 28,800秒
1秒あたりの平均リクエスト数は、
1,440,000件 ÷ 28,800秒 = 50件/秒
2. 1台のサーバーの実効処理能力を算出
次に、稼働率を考慮した1台のサーバーが実際に処理できるリクエスト数を求めます。
1台のサーバーの最大処理能力: 20件/秒
稼働率: 80% (0.8)
1台のサーバーの実効処理能力は、
20件/秒 × 0.8 = 16件/秒
3. 必要なサーバー台数を算出
最後に、システム全体で必要な1秒あたりの処理能力を、1台の実効処理能力で割って必要なサーバー台数を求めます。
システムに必要な処理能力: 50件/秒
1台の実効処理能力: 16件/秒
必要なサーバー台数 = 50件/秒 ÷ 16件/秒 = 3.125台
サーバーは整数でしか配置できないため、小数点以下は切り上げて整数にします。
3.125台 → 4台
したがって、必要なサーバー台数は4台です。
解答
選択肢B) 4台
graph TD
A["1日の総リクエスト数 (1,440,000件)"] --> |ピーク時間帯で割る (8時間)| B["1秒あたりの平均リクエスト数 (50件/秒)"]
C["1台のサーバーの最大処理能力 (20件/秒)"] --> |稼働率を考慮 (80%)| D["1台のサーバーの実効処理能力 (16件/秒)"]
B --> |実効処理能力で割る| E["計算上の必要なサーバー台数 (3.125台)"]
D --> E
E --> F["最終的なサーバー台数 (切り上げ: 4台)"]
要点
総リクエスト量の把握: まず、システムが一定期間に処理すべきリクエストの総量を正確に把握します。
単位時間への変換: 日次や時間単位のリクエスト量を、サーバー能力と比較するために秒単位に変換します。
稼働率の考慮: 安定稼働のために、サーバーの最大能力ではなく、余裕を持たせた「実効処理能力」で計算することが重要です。
切り上げ: 必要なサーバー台数は、計算結果が小数点以下になっても常に切り上げて整数にします。これは、台数が不足するとシステム性能が確保できないためです。

コメント