ハード性能以上の性能は出ないんです攻めの性能マネジメント

システムが期待どおりの性能を発揮するためには、システム構成を適切に決定しなければならない。今回は、システム構成の決定に大きく影響するサイジングに焦点を当て、課題と対策について説明する。

» 2007年08月21日 12時00分 公開
[三由研一,NTTデータ]

IT最適化に対する要求の高まり

 昨今、IT最適化、システム最適化といった言葉が、頻繁に聞かれるようになりました。ハードウェアの価格性能比は向上していますが、IT投資の中で一定の割合を占めていることには変わりありません。ハードウェアに過剰な投資をすれば、それはIT投資の効率を悪化させる原因となります。

 一度構築されたシステムを変更することは容易ではありませんから、システム構築の段階で最適なシステム構成を決定することが重要となります。

 システム構成は、可用性、性能をはじめ、さまざまなIT基盤要件を勘案して決定されます。ビジネス要件の中から予想される業務負荷やデータ容量を明らかにして、レスポンスタイムなど期待される性能要件を満たすシステム構成を確定するプロセスを、サイジングと呼びます。

サイジングの難しさ:システム構築の上流工程の、十分な情報がない状況で判断しなければならない

 システムの性能は、システム外部から与えられる負荷の大きさと、システム自身の処理能力によって決まります。実際のサイジングの作業は、以下のステップを踏みます。

  1. 業務要件から、性能要件を定義する
  2. 性能要件とIT基盤要件の関係を把握する
  3. IT基盤要件を満たすシステム構成を決定する

 しかし、実際には困難を伴う作業となります。その理由を具体的に考えてみたいと思います。

1)業務要件から、性能要件を定義する

 性能要件を定義するということは、システムが最も高い処理能力を要求される状態を定義することと同義です。性能要件は、業務量にかかわる要件と、そのときのシステムの振る舞いにかかわる要件の2つを組み合わせて定義するのが一般的です。例えば、オンライン処理では、利用頻度が高く、かつ許容レスポンスタイムが短ければ、厳しい条件といえます。同様に、バッチ処理では、データの処理件数と許容できる処理時間をセットで考えます。

処理種別 オンライン処理 バッチ処理
業務量に関わる性能要件 利用ピーク時間帯の業務毎の利用頻度(単位時間あたりのアクセス数、同時接続数) データの処理件数
システムの振る舞いに関わる性能要件 最大スループット(単位時間あたりの処理量)
許容できるレスポンスタイム
許容できる処理時間

 こうした考え方に沿うと、性能要件として、ユーザー数やデータ件数しか記載されていない場合は、条件が不足していることになります。例えば「ユーザー100人が同時にアクセスしても問題なく利用できるシステム」というのは、一見すると性能要件としてもっともらしいのですが、実際にはユーザーの操作の内容や頻度によって、求められるハードウェアはまったく異なってくるのです。

 また、性能要件が業務量の見込みの値を前提としている点にも注意が必要です。社内システムのような利用者が限定されているシステムでさえ、、見込みと現実が完全に一致するというのはまれなケースでしょう。業務量が想定どおりにならない可能性に備えておくことこそ、プロアクティブな性能管理といえます。

2)性能要件とIT基盤要件の関係を把握する

 性能要件が決まれば、その条件を満たすハードウェアスペックを求めていきます。性能要件と同様、これもまた不確実さを伴う作業です。構築しようとしているシステムは、まだ存在していないので、何らかの類似システムの結果を参照する必要があるためです。業務内容や処理方式が近いシステムがある場合や、サイジング用にプロトタイプシステムを作成して実測できる場合はよいのですが、それ以外の場合は、類似システムの選定が重要となります。

 類似システムは、少なくとも業務量にかかわる値と、そのときのCPU、I/Oなどのシステムリソース利用量を取得できる必要があります。それらの情報を基に、類似システムのシステムリソース利用量を、構築システムのシステムリソース利用量に変換します。構築システムのリソースを有効に活用するためには、リソース消費量は高いほど理想的ですが、許容できるレスポンスタイムを満たすためには、あまり高いリソース消費量は望ましくありません。

 類似システムとの差異は、業務が発行するSQL数や画面数などを指標とすることで基本的な評価はできますが、ミドルウェアやフレームワークの組み合わせ、データベースなどの基盤設計、アプリケーションの品質にも左右されます。そうした要素を安全率として、どの程度考慮するかが重要になってきます。

3)IT基盤要件を満たすシステム構成を決定する

 上記で求められたハードウェアスペック値は、IT基盤要件の一部分です。システム構成を決定するには、可用性やセキュリティなどほかの条件と併せて判断します。

複数の手法を組み合わせてリスクを抑える

 これまで見てきたように、サイジングとは不確定要素を伴ったプロセスであることが分かります。こうしたリスクを低減するにはどのようにしたらよいのでしょうか。

 1つ目のポイントは、複数の情報ソースを組み合わせることです。

 複数の類似システムを参考にしたり、複数の性能評価技術を利用したりする方法が考えられます。具体的な例を以下に挙げます。

  1. 最初は複数の既存システムを基に簡易サイジングを行う
  2. 工程が進んできたらプロトタイプで詳細なサイジングを行う
  3. 必要に応じて、システムの振る舞いを仮想的に検証するシミュレータを用いてサイジングを行う

 いずれの方法も特徴がありますので、複数の手法による結果を相互に比較・検証することで、サイジングの精度を高めていくことができます。

 2つ目のポイントは、数値に幅を持たせて検討することです。

 サイジングでは、平均値、楽観値、悲観値など複数のバリエーションについて検討しておくとよいでしょう。例えば、悲観値のみを用いてサイジングを行った結果、オーバスペックなハードウェアを選択してしまい、システムリソースを効率的に活用できないケースが想像されます。さまざまな状況の可能性を想像しておくことで、事前に起こり得る事態を予測することが可能となります。

 3つ目のポイントは、不確定要素を見える化することです。

 例えば、システム構築契約前の段階、要件定義工程の段階、設計工程の段階、それぞれの時点で利用可能な情報の量、質は異なります。サイジングでは、常に不足している情報を補いながら進めていきますので、仮置きした前提条件や数値の根拠を記録しておくことが大切です。

 そして、前提条件が変更されていないかを定期的に点検して、随時見直すことが将来の問題発生の予防につながります。


 今回は、サイジングがとても不確定な要素を含んでいることを説明しました。性能問題の発生を回避するためには、設計、製造、試験といった開発プロセスでもリスクを減らしていくことが大切です。次回は、問題発生時に迅速な対応をするための方法を、事例を通して紹介します。

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ