この特集のトップページへ

9.3 ボトルネックの識別

 ボトルネックとは,システム要件であるスループットや応答時間の達成を妨げる要因またはリソースのことである。性能設計や性能分析にあたっては,システムの性能に最もインパクトを与えている,あるいは与えそうな構成要素を明確にしなければならない。すなわち,性能問題を考える場合にまず明確にしなければならないのは,「どこにボトルネックがあるか」ということである。

 性能問題を分析する場合に注意しなければならないのは,現在の状況をできるだけ正確に把握するため,比較できる基準値を用意することである。たとえば,性能を問題にするときに主観的な評価や指摘に基づいていたのでは,正確な状況把握などできるはずもない。性能に対する考え方や期待値は,ユーザーごとに異なるからである。あるユーザーは3秒で合格だと判断しても,別のユーザーは1秒でも不合格だと判断するかもしれない。それだけに,本番環境で本稼働を開始した直後か,それより早い段階で,性能テストを実施しておく必要がある。すなわち,システムで性能問題が発生していなかったときにどれだけの性能を達成していたのか,そのときのデータ量はどうだったのか,ユーザー数はどれくらいか,などを数量的に明確化しておくのである。ここで得られた性能値が目標性能を満足していれば,以降の基準値(パフォーマンスモニタのカウンタ値リスト)として利用することができる。本稼働後に性能問題が発生したときには,同じように再評価して基準値と比較すれば,何が問題となっているかを容易に理解できるだろう。

 基準値の作成は,次の手順で実施する。

(1)性能に対する基本方針の決定
 「9.2.2 性能目標」で説明したように,応答時間による基準値とするか,それともスループットによる基準値とするかを選択する。また,基準値の計測対象がシステム全体か,個々のアプリケーションかも定める必要がある。重要な処理であれば,個々のアプリケーションではなく,さらに詳細なレベル,たとえばトランザクションレベルなどで評価したほうがよい場合もあるだろう。

(2)最小の負荷による評価
 負荷のない状態でプロセスにかかる時間をテストして確認する。このとき,まず最初にサーバーにクライアントを接続せずにサーバー側のみでテストを実行し(ストアドプロシージャをスクリプトに作成して),次にクライアントを接続した状態でテストする。たとえば,SQL Server 7.0をインストールして設定したあと,TPCベンチマークアプリケーション*1や実際のユーザーアプリケーションを最小の負荷で起動させ,その構成でどの程度の性能が得られるかを把握しておく必要がある。

(3)徐々に負荷をかけての評価
 徐々に負荷を大きくして,今後予想される最大負荷まで変化させて評価し,限界を明確にしておく。
 これらの基準値の作成には,Windows NTおよびSQL Serverに標準で用意されているパフォーマンスモニタなどを利用するとよいだろう。パフォーマンスモニタについては,あとから詳しく説明する。システムに性能問題が発生した場合には,作成した基準値を元にして,定量的に問題となっている性能を評価することが重要である。


  1. TPCベンチマークアプリケーションの仕様については,http://www.tpc.org/を参照してほしい。また,SQL Load Simulator(SQLLS.EXE)は,『BackOfficeリソースキット』のCD-ROMに収録されている。キャパシティ計画作成ツールとしては,http://www.microsoft.com/backoffice/からMicrosoft社の「InetMonitor」をダウンロードできる。

前へ Chapter 9 5/46 次へ