LinuCレベル4 システムアーキテクト 性能・拡張性の設計 問2
性能・拡張性の設計/性能見積もりと評価プロトタイプの性能測定で、スループットが目標に届かなかった。ボトルネックを絞り込むための考え方として、適切でないものはどれか。
当サイトのオリジナル問題(LinuCレベル4 システムアーキテクトの出題範囲「性能・拡張性の設計」に対応。実際の試験問題ではありません)
- A採用したハードウェアのベンチマーク公表値が目標を上回っていれば、実業務の負荷での実機テストを省略して性能を満たすと判断してよい
- BCPU使用率が低いのにスループットが頭打ちなら、ロック待ちやI/O待ち、接続数やファイルディスクリプタの上限到達を疑う
- C全体の応答時間を各コンポーネントの処理時間に分解して測り、最も大きな割合を占める箇所を特定してから対策する
- D負荷を段階的に上げながら測定し、スループットが伸びなくなって応答時間が急に増え始める負荷の水準を探す
正解:A
解説
ベンチマークの公表値は特定の条件で測った結果で、実業務のアクセスパターン、データ量、排他制御の有無などが違えば性能は大きく変わります。そのため、公表値との比較は候補の絞り込みには使えても、性能を満たす根拠にはならず、実業務に近い負荷での実機テスト(PoC)で確かめる必要があります。ボトルネックの調査では、リソース使用率とスループットの関係を見て、CPUに余裕があるのに伸びない場合はロックやI/O待ち、各種上限値を疑います。応答時間を分解してコンポーネントごとの寄与を把握し、負荷を段階的に上げて限界点を探すのも基本的な手順です。
選択肢ごとの解説
- A正しい(誤っている記述)。公表値は測定条件が実業務と異なるため参考値にとどまり、実際のアクセスパターンでの実機テストで性能を確かめる必要があります。
- B誤り(正しい記述)。CPUが遊んでいるのに処理が伸びない場合、待ちや上限値が原因であることが多く、ロックやI/O、セッション数などの上限を確認します。
- C誤り(正しい記述)。コンポーネントごとの性能指標と全体の応答時間の関係を分析し、最も寄与の大きい箇所から対策するのが効率的です。
- D誤り(正しい記述)。負荷を段階的に上げると、どの水準で飽和するかと、そのとき応答時間がどう悪化するかを把握できます。