IPA 性能評価・キャパシティ — 頻出論点と過去問

頻出論点

1. この分野は何か

利用者が増えたり処理が重くなったりしたとき、システムのどこが最初に詰まり、何をどれだけ足せば間に合うのかを、数字で見積もる方法を身につけます。個々の装置の性能値から全体の処理件数を縛るボトルネックや待ち時間を導き、台数設計とスケーリングの方針を判断することがこの分野の軸になります。

2. 実際の出題のされ方

性能評価の基本的な手法であるベンチマークテストの定義を選ぶ問題が、ITパスポートの本試験で出ています。

複数の装置をつないだときに全体で何件さばけるかを数字で答える問題のほか、性能の管理や構成の変え方の知識も、応用情報技術者の午前と高度試験の午前Iで問われます。計算問題では、複数ステップの並行実行やクライアントサーバ構成においてボトルネックから単位時間あたりの最大処理件数を求める問題、複数ジョブを実行したときのCPUと磁気ディスク装置の使用率を求める問題、HPC(High Performance Computing)マシンの構成更新に伴うノード数と総理論ピーク演算性能(TFLOPS)を求める問題が出ています。また、マルチプロセッサの台数と並列化可能な割合やオーバヘッドの定数から高速化率や性能上限を求める問題、2つの支店を統合したときのM/M/1モデルによる平均待ち時間の式を選ぶ問題も出題されています。知識問題では、キャパシティプランニングの目的、解析的な方法に対するシミュレーションによる性能評価の特徴、負荷に応じたスケールインの定義やスケールアウトが適するシステムの特性が問われています。

将来の利用の伸びや障害時の余裕を織り込んだ容量・応答時間の計算は、システムアーキテクトとデータベーススペシャリストの午前IIで出ています。検索量の増加でキャッシュサーバのヒット率が半減したときの3年後の平均検索応答時間を求める問題や、複数台の物理サーバが停止して仮想化されたサーバを再配分した際にもリソース消費率を一定以内に抑えるための最低物理サーバ台数を求める問題が出題されています。

待ち行列の公式や回線の実効速度から応答時間・同時利用台数を求める計算は、ネットワークスペシャリストと情報処理安全確保支援士の午前IIで問われています。プリント要求の到着率と印字速度からM/M/1モデルで平均応答時間を求める問題や、LANの伝送効率とピーク時のダウンロード量から同時使用可能な最大クライアント数を求める問題が出ています。

ITサービスマネージャの午前IIでは、回線速度が異なる2台の端末のターンアラウンドタイムから、片道の伝送時間を連立方程式で逆算する問題が出題されています。

3. 学習のポイント

システム全体の性能を評価・計画する枠組みと、処理能力を増減させる方式から整理します。

  • 性能評価の手法:実際の機械で決まった処理を動かして測るのがベンチマークテスト、システムの振る舞いを模型にして計算機の上で動かしてみるのがシミュレーション、式や机上の計算で処理時間を見積もるのが解析的な方法です。シミュレーションは、式では解けない複雑な状況も扱える代わりに、計算の手間がかかります。
  • キャパシティプランニングとスケーリング:キャパシティプランニングは、今の性能を測り続け、将来の利用の伸びを見込んで、必要な応答時間を保てるように資源を前もって手当てする計画です。負荷に応じた能力調整では、サーバの台数を増やすスケールアウトと台数を減らすスケールイン、サーバ単体のCPUやメモリなどの能力を高めるスケールアップと能力を減らすスケールダウンの4つを、台数を変えるのか1台の能力を変えるのか、増やすのか減らすのかの2つの軸で区別します。スケールアウトは、処理を独立した小さな単位に分けて別々のサーバに任せられるときに効果が出ます。サーバ間でデータをそろえ続ける必要が大きい処理や、分けられない1つの大きな処理では、台数を増やしても速くなりにくくなります。

次に、スループット(単位時間あたりの処理件数)と装置の使用率を求める計算パターンを押さえます。

  • ボトルネックによる処理件数の決定:クライアントサーバシステムで1秒間に処理できる件数は、サーバの処理能力とネットワークの転送能力(転送速度 ÷\div 1件あたりの転送ビット数)を別々に求め、数値が小さい方で決まります。サーバが1秒間に処理できる件数は、MIPS値を1秒間の命令数(MIPS値 ×106\times 10^6)に直してから、1件あたりの命令数で割って求めます。段階ごとに担当を分けて流れ作業にすると、全体の処理件数は一番遅い段階の能力で頭打ちになります。どの段階を速くすれば全体が伸びるかを考えるのが、システムの性能を見積もるときの基本です。
  • タイムチャートによる使用率の算出:複数のジョブがCPUと磁気ディスク装置を順番に使う問題では、各装置が一度に1つの要求だけを順に処理するという条件に沿って、開始から全ジョブ完了までの経過時間を追います。前のジョブがCPUを終えて磁気ディスク装置に移った時点で、待機していた次のジョブがCPUを使い始める点に注意し、各装置の稼働時間の合計を全体の経過時間で割って使用率を求めます。
  • 物理サーバの台数設計とHPCの性能:1ノードあたりのコア数とノード数の積が総コア数であり、総コア数に1コアの理論ピーク演算性能(GFLOPS)を掛けたものが総理論ピーク演算性能になります(1 TFLOPS=1,000 GFLOPS1\text{ TFLOPS} = 1,000\text{ GFLOPS})。また、NN台の物理サーバで平均消費率ccの仮想サーバ群を運用し、kk台停止時に残りのN−kN - k台へ均等に再配分して平均消費率をuu以下に抑える条件は、総消費リソース量cNcNが変わらないことから cNN−k≦u\frac{cN}{N - k} \leqq u の不等式で立てられます。

マルチプロセッサの性能向上と、応答時間・伝送時間の計算式も確実に使えるようにしておきます。

  • マルチプロセッサの高速化率と上限:処理全体のうち並列化できる割合をrr(0≦r≦10 \leqq r \leqq 1)、プロセッサ台数をnnとすると、オーバヘッドを考慮しない高速化率EEはアムダールの法則により次の式で表されます。

E=1(1−r)+rnE = \frac{1}{(1 - r) + \frac{r}{n}}

並列化できない部分の処理時間だけはプロセッサを増やしても縮まらないので、r<1r < 1のとき速度向上比はその部分の割合の逆数である11−r\frac{1}{1 - r}で頭打ちになります。また、1台の性能を1としオーバヘッドを表す定数をaaとして P=n1+a(n−1)P = \frac{n}{1 + a(n - 1)} で表されるモデルでも、分母・分子をnnで割ってn→∞n \to \inftyとすれば、性能PPの上限が1a\frac{1}{a}になることが分かります。

  • キャッシュ・回線・待ち行列を含む応答時間:キャッシュサーバを用いる検索では、ヒット率をpp、ヒット時の応答時間をthitt_{\text{hit}}、ヒットしないときの応答時間をtmisst_{\text{miss}}とすると、平均応答時間は p×thit+(1−p)×tmissp \times t_{\text{hit}} + (1 - p) \times t_{\text{miss}} です。現状の平均応答時間から現在のヒット率ppを逆算し、変化後のヒット率を代入して将来の応答時間を求めます。ネットワークを介したターンアラウンドタイムTTは、上り・下りのメッセージ長が同じで片道の伝送時間がtt、ホストの処理時間がhhであれば T=2t+hT = 2t + h で表され、回線速度が下がるとその割合に反比例して伝送時間ttが伸びます。さらに、待ち行列理論のM/M/1モデルでシステムの応答時間を見積もるときは、単位時間あたりの平均到着率λ\lambdaと平均サービス時間TST_Sの積である利用率ρ=λTS\rho = \lambda T_Sが1に近づくほど待ち時間が急増する点に注目します。サービス時間を含まない平均待ち時間は ρ1−ρ×TS\frac{\rho}{1 - \rho} \times T_S、サービス時間を含めた平均応答時間はそれにTST_Sを足した TS1−ρ\frac{T_S}{1 - \rho}(平均サービス率μ=1TS\mu = \frac{1}{T_S}を使えば 1μ−λ\frac{1}{\mu - \lambda})となります。

4. 間違えやすいところ

キャパシティプランニングとパフォーマンスチューニングの混同に注意が必要です。キャパシティプランニングの目的を問う問題では、目の前のボトルネックを取り除くことや、チューニングで今の処理能力を引き出すことを目的とする誤答肢があります。これらは現状のシステムを最適化するパフォーマンスチューニングの説明で、将来にわたって応答時間を保つ計画とは役割が違います。また、スケーリングの用語でも、CPUの能力やメモリの容量を増減させる「スケールアップ/スケールダウン」の説明が、台数を増減させる「スケールアウト/スケールイン」の誤答肢として使われています。

ネットワークや複数装置が絡む処理能力の計算では、単位の換算忘れや条件の見落としによる誤答肢があります。たとえば、データ量がバイト単位、回線速度がビット/秒単位で与えられている問題では、1バイト=8ビットの変換を忘れて8倍大きい値を出した選択肢があります。さらに、1分あたりのダウンロード量と1秒あたりの伝送速度を扱う問題では、60秒を掛けて時間単位を揃えるのを忘れた値も誤答肢に含まれています。クライアントサーバシステムの処理件数でも、ボトルネックであるネットワーク側ではなくサーバ単体の処理可能件数をそのまま答える選択肢があるため、必ず双方を計算して小さい方を選びます。

M/M/1モデルで応答時間を見積もる問題では、窓口を1つにまとめると利用率が上がり、待ち時間がそれ以上の割合で伸びることを見落とさないようにします。利用率を一部の式にだけ当てはめた選択肢や、待ち時間を足さずに処理時間だけを答えた値が誤答肢にあります。ターンアラウンドタイムから片道の伝送時間を求める問題でも、連立方程式の途中で求まるホストコンピュータでの処理時間が選択肢に入っているため、最後に何を求める設問かを確認してから解答します。

性能評価・キャパシティの理解度チェック

性能評価・キャパシティの過去問一覧

システム構成のほかの論点

稼働率・信頼性指標28問 信頼性設計の考え方24問 システム構成方式・冗長化28問