(57)【要約】【課題】  セマフォなどのＳＷ（ソフトウェア）資源に対する長い待ち時間を要因とするシステムの性能劣化に対して、その原因を特定する。【解決手段】  プロセス状態計測手段１０８は、外部のシステム１２０の上で動作する各プロセスの状態に関する情報を取得し、取得した結果から、ＨＷ（ハードウェア）資源利用プロセス数比較部１１０は、ＨＷ資源を利用中のプロセスがＨＷ資源数より少ないＨＷ未活用状況を検出する。また、ＳＷ資源待ちプロセスカウント部１１２は、ＨＷ未活用状況時における各ソフトウェア資源に対する待ちプロセスの数を算出し、出力部１１４は、待ちプロセス数の多いＳＷ資源をボトルネックとして、算出結果を出力する。【選択図】      図１
2005339437.tif 000002
【特許請求の範囲】
【請求項１】
複数の計算主体が対象システムを利用するコンピュータシステムの性能ボトルネック解析システムにおいて、
前記計算主体間で共用する共用資源が有効に活用されていない共用資源未活用状況を検出する共用資源未活用状況検出手段と、
前記対象システムを利用する前記計算主体が相互排他的に利用する排他資源の取得を待つプロセスの個数を数える排他資源待ち主体カウント手段と、
を備えることを特徴とする、性能ボトルネック解析システム。
【請求項２】
前記共用資源未活用状況検出手段として、
前記対象システム上で動作するプロセスの実行状態に関する情報を取得するプロセス状態計測手段と、
ＨＷ（ハードウェア）資源を利用中のプロセス数とＨＷ（ハードウェア）資源数とを比較するＨＷ（ハードウェア）資源利用プロセス数比較手段と、
を備えることを特徴とする、請求項１に記載の性能ボトルネック解析システム。
【請求項３】
前記排他資源待ち主体カウント手段として、前記プロセス状態計測手段が取得したプロセスの実行状態に関する情報から、各ＳＷ（ソフトウェア）資源を待つプロセスの数を算出するＳＷ（ソフトウェア）資源待ちプロセスカウント手段を備えることを特徴とする、請求項１または２に記載の性能ボトルネック解析システム。
【請求項４】
前記排他資源待ち主体カウント手段が１回以上計測した各排他資源を待つ計算主体の数から、前記各排他資源を待つ計算主体の数の平均値を算出する平均値算出手段を備えることを特徴とする、請求項１〜３の何れか１項に記載の性能ボトルネック解析システム。
【請求項５】
前記プロセス状態計測手段が計測に要した時間を算出する計測所要時間取得手段と、
前記計測に要した時間が一定の範囲を越えている際に、ボトルネックのＨＷ（ハードウェア）資源側での有無を判断するＨＷ（ハードウェア）ボトルネック判定手段と、
を備えることを特徴とする、請求項２〜４の何れか１項に記載の性能ボトルネック解析システム。
【請求項６】
前記プロセス状態計測手段が１回以上の計測を実行した際に、前記計測に要した時間の平均値を算出する所要時間平均値算出手段を備えることを特徴とする、請求項２〜５の何れか１項に記載の性能ボトルネック解析システム。
【請求項７】
前記ＨＷ（ハードウェア）ボトルネック判定手段がボトルネックのＨＷ（ハードウェア）資源側での有無を判断した際に、前記ＨＷ（ハードウェア）資源数を変更させるＨＷ（ハードウェア）構成変更手段を備えることを特徴とする、請求項５または６に記載の性能ボトルネック解析システム。
【請求項８】
前記排他資源待ち主体カウント手段の算出した前記各排他資源を待つ前記計算主体の数を用いて前記排他資源をソート、または前記計算主体の数が一定数以上の前記排他資源のみを抽出するフィルタリング手段を備えることを特徴とする、請求項１〜７の何れか１項に記載の性能ボトルネック解析システム。
【請求項９】
複数の計算主体が対象システムを利用するコンピュータシステムの性能ボトルネック解析システムにおいて、
前記計算主体が利用する排他資源の識別子を取得する排他資源識別子取得手段と、
前記排他資源の取得に要する時間を計測する排他資源待ち時間計測手段と、
を備えたことを特徴とする、性能ボトルネック解析システム。
【請求項１０】
前記排他資源識別子取得手段として、対象システム上で動作するプロセスが利用しているＳＷ（ソフトウェア）資源の識別子情報を取得するＳＷ（ソフトウェア）資源識別子取得手段を備えることを特徴とする、請求項９に記載の性能ボトルネック解析システム。
【請求項１１】
前記排他資源待ち時間計測手段として、ＳＷ（ソフトウェア）資源の取得に要する時間を計測するＳＷ（ソフトウェア）資源待ち時間計測手段を備えることを特徴とする、請求項９または１０に記載の性能ボトルネック解析システム。
【請求項１２】
前記対象システム上で動作するプロセスの実行状態に関する情報を取得するプロセス状態計測手段と、
ＨＷ（ハードウェア）資源を利用中のプロセス数とＨＷ（ハードウェア）資源数とを比較するＨＷ（ハードウェア）資源利用プロセス数比較手段と、をさらに備え、
前記ＳＷ（ソフトウェア）資源識別子取得手段は、前記プロセス状態計測手段が計測したＳＷ（ソフトウェア）資源待ち状態のプロセスに対して、ＳＷ（ソフトウェア）資源識別子の情報を採集し、
前記ＳＷ（ソフトウェア）資源待ち時間計測手段は、採集した前記ＳＷ（ソフトウェア）資源識別子から、ＳＷ（ソフトウェア）資源の取得に要する時間を計測することを特徴とする、請求項１０または１１に記載の性能ボトルネック解析システム。
【請求項１３】
複数の計算主体が対象システムを利用するコンピュータシステムの性能ボトルネック解析方法において、
前記計算主体間で共用する共用資源が有効に活用されていない共用資源未活用状況を検出する共用資源未活用状況検出工程と、
前記対象システムを利用する前記計算主体が相互排他的に利用する排他資源の取得を待つプロセスの個数を数える排他資源待ち主体カウント工程と、
を含むことを特徴とする、性能ボトルネック解析方法。
【請求項１４】
前記共用資源未活用状況検出工程として、
前記対象システム上で動作するプロセスの実行状態に関する情報を取得するプロセス状態計測工程と、
ＨＷ（ハードウェア）資源を利用中のプロセス数とＨＷ（ハードウェア）資源数とを比較するＨＷ（ハードウェア）資源利用プロセス数比較工程と、
を含むことを特徴とする、請求項１３に記載の性能ボトルネック解析方法。
【請求項１５】
前記排他資源待ち主体カウント工程には、前記プロセス状態計測工程が取得したプロセスの実行状態に関する情報から、各ＳＷ（ソフトウェア）資源を待つプロセスの数を算出するＳＷ（ソフトウェア）資源待ちプロセスカウント工程が含まれることを特徴とする、請求項１３または１４に記載の性能ボトルネック解析方法。
【請求項１６】
前記排他資源待ち主体カウント工程には、１回以上計測した各排他資源を待つ計算主体の数から、前記各排他資源を待つ計算主体の数の平均値を算出する平均値算出工程を含むことを特徴とする、請求項１３〜１５の何れか１項に記載の性能ボトルネック解析方法。
【請求項１７】
前記プロセス状態計測工程で計測に要した時間を算出する計測所要時間取得工程と、
前記計測に要した時間が一定の範囲を越えている際に、ボトルネックがＨＷ（ハードウェア）資源側にあると判断するＨＷ（ハードウェア）ボトルネック判定工程と、
をさらに含むことを特徴とする、請求項１４〜１６の何れか１項に記載の性能ボトルネック解析方法。
【請求項１８】
前記プロセス状態計測工程で１回以上の計測を実行した際に、前記計測に要した時間の平均値を算出する所要時間平均値算出工程をさらに含むことを特徴とする、請求項１４〜１７の何れか１項に記載の性能ボトルネック解析方法。
【請求項１９】
前記ＨＷ（ハードウェア）ボトルネック判定工程でボトルネックがＨＷ（ハードウェア）資源側にあると判断された場合にＨＷ（ハードウェア）資源の数を増やす、またはボトルネックがＨＷ（ハードウェア）資源側にないと判断した場合にＨＷ（ハードウェア）資源の数を減らす工程をさらに含むことを特徴とする、請求項１７または１８に記載の性能ボトルネック解析方法。
【請求項２０】
前記排他資源待ち主体カウント工程で算出した各排他資源を待つ計算主体の数を用いて排他資源をソート、または計算主体の数が一定数以上の排他資源だけを抽出する工程をさらに含むことを特徴とする、請求項１３〜１９の何れか１項に記載の性能ボトルネック解析方法。
【請求項２１】
複数の計算主体が対象システムを利用するコンピュータシステムの性能ボトルネック解析方法において、
前記対象システム上で動作する前記計算主体が利用する排他資源の識別子を取得する排他資源識別子取得工程と、
前記排他資源の取得に要する時間を計測する排他資源待ち時間計測工程と、
を含むことを特徴とする、性能ボトルネック解析方法。
【請求項２２】
前記排他資源識別子取得工程には、前記対象システム上で動作するプロセスが利用しているＳＷ（ソフトウェア）資源の識別子情報を取得するＳＷ（ソフトウェア）資源識別子取得工程が含まれることを特徴とする、請求項２１に記載の性能ボトルネック解析方法。
【請求項２３】
前記排他資源待ち時間計測工程には、前記ＳＷ（ソフトウェア）資源の取得に要する時間を計測するＳＷ（ソフトウェア）資源待ち時間計測工程が含まれることを特徴とする、請求項２１または２２に記載の性能ボトルネック解析方法。
【請求項２４】
前記対象システム上で動作するプロセスの実行状態に関する情報を取得するプロセス状態計測工程と、
ＨＷ（ハードウェア）資源を利用中のプロセス数とＨＷ（ハードウェア）資源数とを比較するＨＷ（ハードウェア）資源利用プロセス数比較工程と、をさらに含み、
前記ＳＷ（ソフトウェア）資源識別子取得工程では、前記プロセス状態計測工程で計測したＳＷ（ソフトウェア）資源待ち状態のプロセスに対して、ＳＷ（ソフトウェア）資源識別子の情報を採集し、
前記ＳＷ（ソフトウェア）資源待ち時間計測工程では、採集した前記ＳＷ（ソフトウェア）資源識別子から、ＳＷ（ソフトウェア）資源の取得に要する時間を計測することを特徴とする、請求項２２または２３に記載の性能ボトルネック解析方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、及び情報処理方法に係り、特にコンピュータシステムの性能劣化または性能が期待通りに向上しない原因を特定するコンピュータシステムの性能ボトルネック解析システム及び性能ボトルネック解析方法に関する。
【背景技術】
【０００２】
従来のコンピュータシステムの性能ボトルネック解析システムの一例が、特許文献１に記載されている。図２０に示すように、この従来の性能ボトルネック解析システム１０は、入力装置１２、処理装置１４、及び記憶装置１６を具備する。処理装置１４は、測定対象設定手段１８、セマフォ待ち状態開始検出手段２０、セマフォ待ち状態終了検出手段２２、セマフォ情報検索手段２４、及びセマフォ待ち累積時間計算手段２６とを備える。また、記憶装置１６は、セマフォ待ち情報リスト記憶手段２８を備える。
【０００３】
上記構成を有する従来の性能ボトルネック解析システム１０は、以下のように動作する。まず、入力装置１２を通じて、ユーザから測定対象であるセマフォ識別子のリストが指定され、測定対象設定手段１８に送信される。この測定対象設定手段１８は、各セマフォ識別子に対して、セマフォ待ちに要した時間の累積を示すセマフォ待ち累積時間を付与し、セマフォ待ち情報リスト記憶手段２８に格納する。その際、セマフォ待ち累積時間は、０の値で初期化しておく。
【０００４】
セマフォ待ち状態開始検出手段２０は、コンピュータシステム３０上で動作するプロセス（タスク）があるセマフォに対するセマフォ待ち状態に変化したことを検出して、検出時の時刻（待ち開始時刻）を取得する。次に、セマフォ待ち状態開始検出手段２０は、検出したセマフォの識別子と待ち開始時刻をセマフォ情報検索手段２４に付与する。
【０００５】
セマフォ情報検索手段２４は、記憶装置１６に備わるセマフォ待ち情報リスト記憶手段２８に記憶されたセマフォ待ち情報のリストを使用して、セマフォ待ち状態開始検出手段２０から受けとったセマフォ識別子を検索し、セマフォ識別子が測定対象であるか否かを調べる。そして、受けとったセマフォ識別子が測定対象であれば、セマフォ識別子に待ち開始時刻を付与して、セマフォ待ち情報リスト記憶手段２８が有するセマフォ待ち情報のリストを更新する。
【０００６】
セマフォ待ち状態終了検出手段２２は、プロセスがあるセマフォに対するセマフォ待ち状態を終了して他の処理を開始したことを検出して、検出時の時刻（待ち終了時刻）を取得する。その後、セマフォ待ち状態終了検出手段２２は、検出したセマフォの識別子と待ち終了時刻をセマフォ情報検索手段２４に与える。
【０００７】
セマフォ情報検索手段２４は、セマフォ待ち状態終了検出手段から受けとったセマフォ識別子を検索し、セマフォ識別子が測定対象かどうかを調べる。このとき、受けとったセマフォ識別子が測定対象であれば、セマフォ識別子に付与されている待ち開始時刻及びその時点での待ち累積時間を読み出し、待ち開始時刻と待ち終了時刻と待ち累積時間とを、セマフォ待ち累積時間計算手段２６に与える。
【０００８】
セマフォ待ち累積時間計算手段２６は、受けとった待ち開始時刻と待ち終了時刻とから、今回の待ち時間を計算し、一緒に受けとった待ち累積時間に今回の待ち時間を加算する。その後、加算した結果の待ち累積時間をセマフォ情報検索手段２４に与える。
【０００９】
セマフォ情報検索手段２４は、受けとった新しい待ち累積時間をセマフォ識別子と共に記憶装置１６に備わるセマフォ待ち情報リスト記憶手段２８に付与して、セマフォ待ち情報リストを更新する。このとき、セマフォ識別子に付与されていた待ち開始時刻は、削除される。
【００１０】
そして、プログラムの終了後、セマフォ待ち累積時間の最大なセマフォがボトルネックとして特定される。
【００１１】
【特許文献１】特開平１０―６３５１６号
【発明の開示】
【発明が解決しようとする課題】
【００１２】
しかしながら、あるコンピュータシステムに関して、待ち時間の長いセマフォが必ずしもボトルネックとは限らない。なぜなら、長い待ち状態が意図されたものであり、関連する他のプロセスがＣＰＵ等のハードウェア資源を有効に活用してさえいれば、待ち時間は、システムの性能効率を低下させないためである。
【００１３】
また、特定のセマフォを待つプロセスが複数ある場合に、真のボトルネックを特定できない可能性がある。なぜなら、待ち累積時間の算定が各々のプロセスごとに実行されるため、特定のセマフォを待つプロセスが多数存在し、なおかつ各々の待ち累積時間が比較的短い場合に、そのセマフォがボトルネックとして特定されないためである。
【００１４】
さらに、プロセスの状態が変化した時刻を計測しなければならないために、プロセスの待ち状態への変化や待ち状態の終了を検出するためには、プログラムの実行環境に特別な機構が必要とされる。
【００１５】
また、観測対象のセマフォをユーザが指定しなければならないために、解析対象のプログラムの中身をユーザが知っている必要がある。
【００１６】
そこで、本発明は、従来のコンピュータシステムにおける性能ボトルネック解析システムが有する上記問題点に鑑みてなされたものであり、本発明の目的は、ソフトウェアの中身のよくわからないコンピュータシステムに対し、セマフォやファイルロック待ち、ネットワークを介したデータ到着待ち等のソフトウェア資源待ちを原因とする性能劣化を、汎用の実行環境やツールを用いて検出可能な、新規かつ改良されたコンピュータシステムにおける性能ボトルネック解析システム及び性能ボトルネック解析方法を提供することである。
【００１７】
また、ソフトウェアの稼働に最適なＣＰＵ等のハードウェア資源の量を推定することの可能な、新規かつ改良されたコンピュータシステムにおける性能ボトルネック解析システム及び性能ボトルネック解析方法を提供することである。
【課題を解決するための手段】
【００１８】
上記課題を解決するために、本発明のある観点によれば、複数の計算主体が対象システムを利用するコンピュータシステムの性能ボトルネック解析システムにおいて、計算主体間で共用する共用資源が有効に活用されていない共用資源未活用状況を検出する共用資源未活用状況検出手段と、対象システムを利用する計算主体が相互排他的に利用する排他資源の取得を待つプロセスの個数を数える排他資源待ち主体カウント手段と、を備えることを特徴とする、性能ボトルネック解析システムが提供される。
【００１９】
このとき、共用資源未活用状況検出手段として、対象システム上で動作するプロセスの実行状態に関する情報を取得するプロセス状態計測手段と、ＨＷ（ハードウェア）資源を利用中のプロセス数とＨＷ（ハードウェア）資源数とを比較するＨＷ（ハードウェア）資源利用プロセス数比較手段と、を備えることとしてもよい。
【００２０】
また、このとき、排他資源待ち主体カウント手段として、プロセス状態計測手段が取得したプロセスの実行状態に関する情報から、各ＳＷ（ソフトウェア）資源を待つプロセスの数を算出するＳＷ（ソフトウェア）資源待ちプロセスカウント手段を備えることとしてもよい。
【００２１】
このような構成とすることにより、プロセス状態計測手段が外部の対象システムの上で動作する各プロセスの状態を計測し、その計測結果から、ＨＷ資源利用プロセス数比較部がＨＷ資源を利用中のプロセスがＨＷ資源数より少ないＨＷ未活用状況を検出し、ＳＷ資源待ちプロセスカウント部がＨＷ未活用状況時における各ソフトウェア資源に対する待ちプロセスの数を算出できる。すなわち、ＨＷ（ハードウェア）資源利用中のプロセスがＨＷ資源数を下回るＨＷ未活用状況の検出と、ＨＷ未活用状況下におけるＳＷ資源待ちプロセス数の算出ができるように構成されているため、待ちプロセス数の多いＳＷ資源をボトルネックとみなすことにより、性能上のボトルネックとなっているＳＷ（ソフトウェア）資源を特定することができる。
【００２２】
また、このとき、排他資源待ち主体カウント手段が１回以上計測した各排他資源を待つ計算主体の数から、各排他資源を待つ計算主体の数の平均値を算出する平均値算出手段を備えることとしてもよい。
【００２３】
このような構成とすることにより、複数回の測定に基づいて、ＳＷ資源待ちプロセス数の平均値が算出されるので、性能上のボトルネックとなっているＳＷ資源をより正確に特定することができる。
【００２４】
さらに、このとき、プロセス状態計測手段が計測に要した時間を算出する計測所要時間取得手段と、計測に要した時間が一定の範囲を越えている際に、ボトルネックのＨＷ（ハードウェア）資源側での有無を判断するＨＷ（ハードウェア）ボトルネック判定手段と、を備えることとしてもよい。
【００２５】
このような構成とすることにより、プロセス状態の計測自身がＨＷ資源を利用するという事実に基づき、計測に要した時間を算出できるため、性能上のボトルネックがＨＷ資源側にあることを判定できる。
【００２６】
また、このとき、プロセス状態計測手段が１回以上の計測を実行した際に、計測に要した時間の平均値を算出する所要時間平均値算出手段を備えることとしてもよい。
【００２７】
このような構成とすることにより、複数回の測定に基づいて、計測に要した時間の平均値を算出できるため、性能上のボトルネックがＨＷ資源側にあることをより正確に判定できる。
【００２８】
さらに、このとき、ＨＷ（ハードウェア）ボトルネック判定手段がボトルネックのＨＷ（ハードウェア）資源側での有無を判断した際に、ＨＷ（ハードウェア）資源数を変更させるＨＷ（ハードウェア）構成変更手段を備えることとしてもよい。
【００２９】
このような構成とすることにより、プロセス状態計測手段が外部のシステムの上で動作する各プロセスの状態の計測に要した時間を、計測所要時間取得部が算出し、算出結果から、ＨＷボトルネック判定部が、ＨＷ資源がボトルネックになっているかどうかを判定し、ボトルネックになっている場合は、ＨＷ資源数を一定数増やし、なっていない場合は、ＨＷ資源を一定数減らすよう動作される。このため、性能上のボトルネックの所在に基づいてＨＷ資源数を増減できるため、ＨＷ資源の数を自動的に調整され、最適なＨＷ資源数でシステムを運用することができる。
【００３０】
また、このとき、排他資源待ち主体カウント手段の算出した各排他資源を待つ計算主体の数を用いて排他資源をソート、または計算主体の数が一定数以上の排他資源のみを抽出するフィルタリング手段を備えることとしてもよい。
【００３１】
このような構成とすることにより、待ちプロセスの数が多いＳＷ資源を抽出できるため、性能上のボトルネックとなっているＳＷ資源をより早く特定することができる。
【００３２】
上記課題を解決するために、本発明の別の観点によれば、複数の計算主体が対象システムを利用するコンピュータシステムの性能ボトルネック解析システムにおいて、計算主体が利用する排他資源の識別子を取得する排他資源識別子取得手段と、排他資源の取得に要する時間を計測する排他資源待ち時間計測手段と、を備えたことを特徴とする、性能ボトルネック解析システムが提供される。
【００３３】
このとき、排他資源識別子取得手段として、対象システム上で動作するプロセスが利用しているＳＷ（ソフトウェア）資源の識別子情報を取得するＳＷ（ソフトウェア）資源識別子取得手段を備えることとしてもよい。
【００３４】
また、このとき、排他資源待ち時間計測手段として、ＳＷ（ソフトウェア）資源の取得に要する時間を計測するＳＷ（ソフトウェア）資源待ち時間計測手段を備えることとしてもよい。
【００３５】
このような構成とすることにより、ＳＷ資源識別子の取得と、各ＳＷ資源の取得に要する時間の計測ができるため、性能上のボトルネックとなっているＳＷ資源とその識別子を特定できる。
【００３６】
また、このとき、対象システム上で動作するプロセスの実行状態に関する情報を取得するプロセス状態計測手段と、ＨＷ（ハードウェア）資源を利用中のプロセス数とＨＷ（ハードウェア）資源数とを比較するＨＷ（ハードウェア）資源利用プロセス数比較手段と、をさらに備え、ＳＷ（ソフトウェア）資源識別子取得手段は、プロセス状態計測手段が計測したＳＷ（ソフトウェア）資源待ち状態のプロセスに対して、ＳＷ（ソフトウェア）資源識別子の情報を採集し、ＳＷ（ソフトウェア）資源待ち時間計測手段は、採集したＳＷ（ソフトウェア）資源識別子から、ＳＷ（ソフトウェア）資源の取得に要する時間を計測することとしてもよい。
【００３７】
このような構成とすることにより、ＳＷ資源待ち状態のプロセスに対してのみＳＷ資源識別子情報を採集し、各ＳＷ資源を取得するのに実際に要する時間を計測できるため、性能上のボトルネックとなっているＳＷ資源とその識別子をより早く特定できる。
【発明の効果】
【００３８】
以上説明したように本発明によれば、ソフトウェアの中身のよくわからないコンピュータシステムに対し、セマフォやファイルロック待ち、ネットワークを介したデータ到着待ち等のソフトウェア資源待ちを原因とする性能ボトルネックを、汎用の実行環境やツールを用いて検出できる。
【００３９】
また、ＨＷ資源の数を自動的に調整することにより、ソフトウェアの稼働に最適なＣＰＵ等のハードウェア資源の量を推定することも実現される。
【発明を実施するための最良の形態】
【００４０】
以下に添付図面を参照しながら、本発明の好適な実施形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【００４１】
（第１実施形態）
まず、本発明の第１実施形態によるコンピュータシステムの性能ボトルネック解析システムの構成について図面を使用しながら説明する。図１は、本発明の第１実施形態によるコンピュータシステムの性能ボトルネック解析システムの構成を示すブロック図である。
【００４２】
図１に示すように、本実施形態の性能ボトルネック解析システム１００は、処理装置１０２と、記憶装置１０４と、出力装置１０６とを具備して構成されている。
【００４３】
処理装置１０２は、プロセス状態計測手段１０８と、ＨＷ（hardware：ハードウェア）資源利用プロセス数比較部１１０と、ＳＷ（software：ソフトウェア）資源待ちプロセスカウント部１１２と、出力部１１４とを備える。また、記憶装置１０４は、外部のシステム１２０の備えるＨＷ資源の個数を記憶するＨＷ資源数記憶部１１６と、ＳＷ資源待ち行列長記憶部１１８とを備える。
【００４４】
次に、本実施形態の性能ボトルネック解析システム１００に備わる上述した各構成要素の動作の概略について、以下で説明する。
【００４５】
処理装置１０２に備わるプロセス状態計測手段１０８は、外部のシステム１２０上で動作するプロセスの実行状態に関する情報を取得し、取得した情報の一部を処理装置１０２内に備わるＨＷ資源利用プロセス数比較部１１０やＳＷ資源待ちプロセスカウント部１１２に付与する。
【００４６】
ＨＷ資源利用プロセス数比較部１１０は、プロセス状態計測手段１０８からＨＷ資源を利用中のプロセスに関するデータを入力し、記憶装置１０４に備わるＨＷ資源数記憶部１１６から外部システム１２０のＨＷ資源数を入力し、ＨＷ資源を利用中のプロセス数とＨＷ資源数とを比較する。そして、この比較の結果により得られるＨＷ資源を利用中のプロセス数とＨＷ資源数との大小関係をＳＷ資源待ちプロセスカウント部１１２に報知する。
【００４７】
ＳＷ資源待ちプロセスカウント部１１２は、プロセス状態計測手段１０８からＳＷ資源待ち状態のプロセスに関するデータを入力し、ＨＷ資源利用プロセス数比較部１１０からＨＷ資源を利用中のプロセス数とＨＷ資源数との大小関係を入力する。そして、ＨＷ資源を利用中のプロセス数がＨＷ資源数よりも小さければ、ＳＷ資源待ち状態のプロセスが待つＳＷ資源の種類を抽出し、各ＳＷ資源に関して、ＳＷ資源を待つプロセスがいくつあるかを数え、その結果得られた各ＳＷ資源に関する待ちプロセスの数をＳＷ資源待ち行列長記憶部１１８に記憶する。
【００４８】
出力部１１４は、ＳＷ資源待ち行列長記憶部１１８から、各ＳＷ資源に関する待ちプロセスの数を入力し、ディスプレイ装置やファイル、ディスク等の出力装置１０６に出力する。
【００４９】
次に、本実施形態の性能ボトルネック解析システム１００の動作について、図１及び図２を参照しながら詳細に説明する。図２は、本実施形態によるコンピュータシステムの性能ボトルネック解析システム１００の動作を示すフローチャートである。
【００５０】
まず、本実施形態では、事前準備として、外部システム１２０のＨＷ（ハードウェア）資源数をＨＷ資源数記憶部１１６に設定する（ステップＡ１１）。ここでＨＷ資源とは、例えばＣＰＵ（中央演算装置）のように、複数の利用主体（プロセス）が時分割方式に代表されるスケジューリングポリシーに基づいて利用する物理的な資源を指す。コンピュータシステムは、一般に、複数のＣＰＵを備えることができる。コンピュータシステムのＣＰＵ数は、システムの仕様やＢＩＯＳ（basic input output system）等のファームウェア、ＯＳの提供するコマンドや関数等から知ることができる。
【００５１】
次に、ＳＷ資源待ち行列長記憶部１１８に記憶された、各ソフトウェア資源Ｓｉに対する待ちプロセス数ＱＳｉを全て０に初期化する（ステップＡ１２）。このとき、ステップＡ１１とステップＡ１２は、順番が逆であってもよい。
【００５２】
次に、プロセス状態計測手段１０８は、外部システム１２０の上で動作するプロセスの現在の実行状態を計測する（ステップＡ１３）。プロセスの実行状態は、次の２種類の情報を含む。１つは、プロセスが現在ＨＷ資源を利用中（実行可能状態）か、または特定のＳＷ（ソフトウェア）資源が取得可能になるのを待っている状態（休眠状態）かの区別である。もう１つは、休眠状態のプロセスが待つＳＷ資源の種類である。
【００５３】
ＳＷ資源としては、排他制御を行なうためのセマフォやロックのほか、ネットワークやディスクに対するデータの送受信が終了したことを示すフラグ等がある。Ｌｉｎｕｘ等のＵＮＩＸ（登録商標、以下同じ。）系ＯＳの場合、プロセス状態に関するこれらの情報は、例えば外部システム１２０上でｐｓコマンドを発行することにより取得可能である。
【００５４】
また、本実施形態の性能ボトルネック解析システム１００は、外部のシステム１２０と同一のシステム上で動作させてもよい。
【００５５】
次に、ＨＷ資源利用プロセス数比較部１１０は、プロセス状態計測手段１０８が計測したＨＷ資源を利用中のプロセスの個数Ｒ（実行可能プロセス数）を数える（ステップＡ１４）と共に、ＨＷ資源数記憶部１１６を参照し、実行可能プロセス数ＲとＨＷ資源数とを比較する（ステップＡ１５）。
【００５６】
ここで検出したいのは、実行可能プロセス数ＲがＨＷ資源数を下回るような状況（ＨＷ未活用状況）である。このような状況が頻繁に発生する場合、システム１２０のＨＷ資源が十分に活用されないために性能劣化が起きている可能性が高い。そして、このような状況が発生する原因の大半は、プロセスのＳＷ資源待ちである。
【００５７】
一般に、計算の過程において、プロセスには、多くの待ち状態が発生する。待ち状態には、複数プロセスによるクリティカルセクションの同時実行を禁止するためのセマフォや、ファイルやエントリの同時更新を禁止するためのファイルロックの取得待ち以外には、ネットワークの送受信待ちやディスクの入出力待ち等がある。
【００５８】
システムがクライアントからのリクエストに対して結果を返すサーバであると考えると、リクエストの内容が均一で、かつＨＷ資源の利用率が一定である限り、システムが一定時間内に処理できるリクエスト数は、略一定である。これは、リクエストの到着間隔に関係なく成立する。なぜなら、リクエストによって発生する処理が空ループのような無駄な計算をしていない限り、一定数のリクエストの処理に要する計算量は、一定だからである。
【００５９】
従って、リクエストの到着数が処理能力の範囲内であれば、リクエストの応答時間も一定時間内に収まるが、リクエストの到着数がシステムの処理能力の限界を越えると、応答時間は、急激に悪化し始める。これは、システム内に処理待ちのリクエストが滞留し始めると、リクエストの応答時間が悪化し、その結果、滞留するリクエストがさらに増えるという悪循環のためである。
【００６０】
つまり、ＨＷ資源の利用率が限界に達するまでは、リクエストの応答時間は、通常では、あまり悪化しないため、従来の性能ボトルネック解析では、ＣＰＵ負荷のようなＨＷ資源利用率を監視して、利用率が非常に高くなった場合に、利用率の高いＨＷをボトルネックとして特定していた。しかしながら、ＳＷ資源を待つプロセスは、ＨＷ資源を消費しないため、通常の解析対象であるＣＰＵ負荷のようなＨＷ資源利用率からは、性能劣化原因を特定することが困難であった。本発明の目的は、ＳＷ資源待ちを原因とする性能劣化を検出し、原因となっているＳＷ資源を特定することにある。
【００６１】
システムの応答時間は、ＨＷ資源利用時間とＳＷ資源待ち時間との和で表現できる。ここで、「ＨＷを利用している」というのは、ＨＷ資源を各計算主体間で少しの時間ずつ共用しながら利用しているという意味であり、正確には、ＨＷ利用時間は、ＨＷ資源を物理的に利用している時間とＨＷ資源待ち時間との和となる。
【００６２】
ＨＷ未活用状況時においては、ＨＷ資源をほぼ占有できるため、ＨＷ資源待ち時間は、相対的に小さな値となる一方、ＨＷ資源利用時間は、略一定と考えられる。しかしながら、ボトルネックとなっているＳＷ資源に関しては、資源の取得に長時間を要し、ＳＷ資源待ちのプロセスが滞留するため、休眠プロセスが待つＳＷ資源を調べて、待つプロセスの多いＳＷ資源をボトルネックとみなすのが合理的である。
【００６３】
そこで、次の動作として、ＳＷ資源待ちプロセスカウント部１１２は、ＨＷ未活用状況が観測された場合、プロセス状態計測手段１０８が計測した休眠プロセス情報から、プロセスが待つ各ＳＷ資源を調べて、各ＳＷ資源を待つ休眠プロセスがいくつあるかを１つ１つ数え、ＳＷ資源待ち行列長記憶部１１８に記憶する（ステップＡ１６及びステップＡ１７）。
【００６４】
全ての休眠プロセスを数え終わると、出力部１１４は、各ＳＷ資源に関する待ちプロセスの数を、ディスプレイ装置やファイル、ディスク等の出力装置１０６に出力する。また、外部のシステムや装置に結果を伝達してもよい。さらに、ＨＷ資源利用プロセス数比較部１１０によってＨＷ未活用状況が観測されなかった場合には、その旨を出力することもできる。
【００６５】
以上詳述したように、本実施形態では、ＨＷ資源利用中のプロセスの数がＨＷ資源数を下回っている状況を検出し、このような状況下において各ＳＷ資源を待つプロセスの数を算出できるように構成されているため、性能上のボトルネックとなっているＳＷ資源を特定することができる。
【００６６】
（第２実施形態）
次に、本発明の第２実施形態によるコンピュータシステムの性能ボトルネック解析システムの構成について図面を使用しながら説明する。図３は、本発明の第２実施形態によるコンピュータシステムの性能ボトルネック解析システム２００の構成を示すブロック図である。
【００６７】
図３に示すように、本発明の第２実施形態の性能ボトルネック解析システム２００は、図１に示した第１実施形態にかかる性能ボトルネック解析システム１００と比べて、処理装置２０２がフィルタリング部２２０を具備する点で異なる。
【００６８】
フィルタリング部２２０は、ＳＷ資源待ち行列長記憶部２１８から、各ＳＷ資源に関する待ちプロセスの数を入力し、ある条件で抽出またはソートしたＳＷ資源を出力部２１４に付与する。
【００６９】
次に、本実施形態の性能ボトルネック解析システム２００の全体の動作について、図３及び図４を参照しながら詳細に説明する。図４は、本実施形態によるコンピュータシステムの性能ボトルネック解析システム２００の動作を示すフローチャートである。
【００７０】
図４のステップＡ２１〜Ａ２７で示される本実施形態におけるプロセス状態計測手段１０８、ＨＷ資源利用プロセス数比較部１１０、ＳＷ資源待ちプロセスカウント部１１２の動作は、第１実施形態の対応する部分の動作と同一のため、これらの動作の説明は、省略する。
【００７１】
第１実施形態では、各ＳＷ資源に関する待ちプロセス数が求まった時点で処理を終了していたが、本実施形態では、フィルタリング部２２０が、待ちプロセス数を使って抽出またはソートしたＳＷ資源を出力部２１４に付与する（図４のステップＡ２８）。抽出またはソートの方法としては、待ちプロセス数が一定数を越えたＳＷ資源のみを抽出する、または待ちプロセスの多い若しくは少ない順にＳＷ資源をソートする、または待ちプロセス数を使ってソートしたＳＷ資源の中から待ちプロセス数が一定数を越えているものだけをソートされた順番で抽出する等がある。出力部２１４には、抽出またはソートしたＳＷ資源だけでなく、その待ちプロセス数を一緒に与えてもよい。
【００７２】
このように、本実施形態では、待ちプロセスの数が多いＳＷ資源を抽出できるように構成されているため、性能上のボトルネックとなっているＳＷ資源をより早く特定することができる。
【００７３】
（第３実施形態）
次に、本発明の第３実施形態によるコンピュータシステムにおける性能ボトルネック解析システムの構成について図面を使用しながら説明する。図５は、本発明の第３実施形態によるコンピュータシステムの性能ボトルネック解析システム３００の構成を示すブロック図である。
【００７４】
図５に示すように、本発明の第３実施形態の性能ボトルネック解析システム３００は、図１に示した第１実施形態にかかる性能ボトルネック解析システム１００と比べて、処理装置３０２が平均値算出部３２０を有する点と、記憶装置３０４が未活用事象発生回数記憶部３２２を有する点で異なる。
【００７５】
平均値算出部３２０は、ＳＷ資源待ち行列長記憶部３１８に記憶された各ＳＷ資源に関する１個以上の待ちプロセス数を参照し、各ＳＷ資源に関する待ちプロセス数の平均値を算出し、出力部３１４に与える。
【００７６】
次に、本実施形態の性能ボトルネック解析システム３００の全体の動作について、図５及び図６を参照しながら詳細に説明する。図６は、本実施形態によるコンピュータシステムの性能ボトルネック解析システム３００の動作を示すフローチャートである。
【００７７】
図６のステップＡ３１〜Ａ３７で示される本実施形態におけるプロセス状態計測手段１０８、ＨＷ資源利用プロセス数比較部１１０、ＳＷ資源待ちプロセスカウント部１１２の動作は、第１実施形態の対応する部分の動作と同一のため、これらの動作の説明は、省略する。
【００７８】
第１実施形態では、プロセスの状態を１回しか計測していなかったが、本実施形態では、複数回の計測を行なう。このため、ステップＡ３２のあとに、ＨＷ未活用状況の発生回数を数えるための変数Ｃを０に初期化して、未活用事象発生回数記憶部３２２に記憶する（図６のステップＢ３１）。ステップＢ３１は、ステップＡ３２の前やステップＡ３１の前に行なってもよい。
【００７９】
次に、計測を続けるかどうかが判断される（ステップＢ３２）。計測回数が予め定められた回数に達した場合、外部から終了命令が到着した場合、一定時間が経過した場合等に、計測を終了する。
【００８０】
計測を続ける際に、ステップＡ３５において、ＨＷ未活用状況が観測されなかった場合は、ステップＢ３２以降の実行を繰り返す。また、ステップＡ３５において、ＨＷ未活用状況が観測された場合、ＨＷ資源利用プロセス数比較部１１０は、未活用事象発生回数記憶部３２２の記憶する変数Ｃを１増やす（ステップＢ３３）
【００８１】
その後、ステップＡ３６及びＡ３７のループ処理により、各ＳＷ資源Ｓｉに対する待ちプロセス数ＱＳｉに、今回計測された待ちプロセス数を追加し、ＳＷ資源待ち行列長記憶部３１８を更新する。上述した待ちプロセス数の追加を終えると、再度ステップＢ３２以降の工程の実行を繰り返す。
【００８２】
ステップＢ３２において計測が終了した場合、平均値算出部３２０は、まず未活用事象発生回数記憶部３２２の記憶する変数Ｃと０を比較することにより、ＨＷ未活用状況が発生したかどうかを判断する（ステップＢ３４）。
【００８３】
ＨＷ未活用状況が発生していた（Ｃ≠０）場合は、各ＳＷ資源Ｓｉに対する待ちプロセス数ＱＳｉには、１回以上の計測による合計値が保持されているため、各ＱＳｉをＨＷ未活用状況の発生回数Ｃで割って、各ＳＷ資源Ｓｉに対する待ちプロセス数の平均値を算出する（ステップＢ３５）。
【００８４】
ＨＷ未活用状況が発生していなかった場合は、処理を終了する。また、発生していなかった旨を出力部３１４に伝達して、出力装置１０６に出力するようにしてもよい。
【００８５】
最後に、出力部３１４は、各ＳＷ資源Ｓｉに対する待ちプロセス数の平均値を出力装置１０６に出力する。このとき、第２実施形態におけるフィルタリング部（図３の２２０）が実行するように、待ちプロセス数の平均値を使って抽出またはソートした結果を出力するようにしてもよい。
【００８６】
このように、本実施形態では、複数回の測定を行なって、ＳＷ資源に対する待ちプロセス数の平均値を算出するように構成されているため、測定した瞬間だけ偶然に発生していたような例外的な状態の影響を小さくすることにより、性能上のボトルネックとなっているＳＷ資源をより正確に特定することができる。
【００８７】
（第４実施形態）
次に、本発明の第４実施形態によるコンピュータシステムの性能ボトルネック解析システムの構成について図面を使用しながら説明する。図７は、本発明の第４実施形態によるコンピュータシステムの性能ボトルネック解析システム４００の構成を示すブロック図である。
【００８８】
図７に示すように、本発明の第４実施形態の性能ボトルネック解析システム４００は、図１に示した第１実施形態にかかる性能ボトルネック解析システム１００と比べて、処理装置４０２が計測所要時間取得部４２２と、ＨＷボトルネック判定部４２０とを有する点で異なる。
【００８９】
計測所要時間取得部４２２は、プロセス状態計測手段１０８の計測の開始時刻と終了時刻を取得して、計測に要した時間を算出し、ＨＷボトルネック判定部４２０に与える。
【００９０】
ＨＷボトルネック判定部４２０は、計測所要時間取得部４２２から計測所要時間を入力し、計測所要時間と閾値との比較によって、ＨＷ資源がボトルネックになっているかどうかを判断する。ＨＷ資源がボトルネックになっていなかった場合は、ＳＷ資源待ち行列長記憶部４１８から各ＳＷ資源に関する待ちプロセスの数を入力し、出力部４１４に与える。
【００９１】
次に、本実施形態の性能ボトルネック解析システム４００の全体の動作について、図７及び図８を参照しながら詳細に説明する。図８は、本実施形態によるコンピュータシステムの性能ボトルネック解析システム４００の動作を示すフローチャートである。
【００９２】
図８のステップＡ４１〜Ａ４７で示される本実施形態におけるプロセス状態計測手段１０８、ＨＷ資源利用プロセス数比較部１１０、ＳＷ資源待ちプロセスカウント部１１２の動作は、第１実施形態の対応する部分の動作と同一のため、これらの動作の説明は、省略する。
【００９３】
第１実施形態では、プロセスの状態を計測した（ステップＡ１３）後に、すぐにＨＷ資源を利用中のプロセスの個数を数えていた（ステップＡ１４）が、本実施形態では、計測所要時間取得部４２２が、プロセス状態計測手段１０８による計測動作と協調して、計測にかかった時間を算出する。
【００９４】
次に、ＨＷボトルネック判定部４２０は、計測所要時間取得部４２２が算出した計測所要時間が一定の範囲内に収まっているかどうかを判定する（図８のステップＣ４１）。
【００９５】
計測が一定時間内に完了していれば、ボトルネックがＨＷ資源側には有していないと判断する（ステップＣ４２）。このときの閾値は、システムの正常稼働時やテスト稼働時のデータを元に外部から付与される。これ以降のステップＡ４４〜Ａ４７における各部の動作は、第１実施形態と同様である。
【００９６】
計測に一定以上の時間がかかっていた場合、ＨＷボトルネック判定部４２０は、ボトルネックがＨＷ資源側にあると判断する（ステップＣ４３）。
【００９７】
このように判断するのは、プロセス状態の計測自体がＣＰＵ等のＨＷ資源を使用するためである。例えば、外部システム１２０上にＨＷ資源を利用中のプロセスが大量に存在する場合、プロセス状態の計測のためにｐｓコマンドを発行しても、ｐｓコマンドの処理がスケジューリングされず、応答が非常に遅れるため、プロセス状態を即座に測定することができない。このような場合には、ＨＷ資源がボトルネックになっていると判断することができる。
【００９８】
最後に出力部４１４は、ＨＷ資源がボトルネックであれば、その旨を出力装置１０６に出力し、ＨＷ資源がボトルネックでなければ、第１実施形態と同様、ＨＷ未活用状況が観測されたかどうかに基づいて、各ＳＷ資源に関する待ちプロセスの数を出力装置１０６に出力する。
【００９９】
このように、本実施形態では、プロセス状態の計測自身がＨＷ資源を利用するという事実に基づき、プロセス状態の計測に要した時間を算出できるように構成されているため、性能上のボトルネックがＨＷ資源側にあることを判定できる。
【０１００】
（第５実施形態）
次に、本発明の第５実施形態によるコンピュータシステムの性能ボトルネック解析システムの構成について図面を使用しながら説明する。図９は、本発明の第５実施形態によるコンピュータシステムの性能ボトルネック解析システム５００の構成を示すブロック図である。
【０１０１】
図９に示すように、本発明の第５実施形態は、図５に示した第３実施形態にかかる性能ボトルネック解析システム３００と比べて、処理装置５０２に計測所要時間取得部５２２とＨＷボトルネック判定部５２４を有する点と、記憶装置５０４が計測所要時間及び計測回数記憶部５２６を有する点で異なる。この計測所要時間及び計測回数記憶部５２６には、プロセス状態計測手段１０８がプロセス状態の計測に要した時間及び計測回数を記憶される。
【０１０２】
次に、本実施形態の性能ボトルネック解析システム５００の全体の動作について、図９及び図１０を参照しながら詳細に説明する。図１０は、本実施形態によるコンピュータシステムの性能ボトルネック解析システム５００の動作を示すフローチャートである。
【０１０３】
図１０のステップＡ５１〜Ａ５７及びＢ５１〜Ｂ５５で示される本実施形態によるコンピュータシステムの性能ボトルネック解析システム５００におけるプロセス状態計測手段１０８、ＨＷ資源利用プロセス数比較部１１０、ＳＷ資源待ちプロセスカウント部１１２、平均値算出部３２０の動作は、第３実施形態の対応する部分の動作と同一のため、これらの動作の説明は、省略する。
【０１０４】
第３実施形態では、プロセス状態の計測に要した時間を取得していなかったが、本実施形態では、計測に要した時間を１回以上記憶し、計測に要した時間の平均値を求めることによって、ボトルネックがＨＷ資源側にあるかどうかを判定する。
【０１０５】
まず、ステップＢ５１のあとで、計測回数Ｎと計測所要時間の合計ＴＴを両方とも０に初期化する（図１０のステップＤ５１）。このステップＤ５１は、ステップＢ５１やステップＡ５２、ステップＡ５１の前に行なってもよい。
【０１０６】
次に、ステップＢ５２において計測を続ける場合、ステップＡ５３においてプロセス状態を計測後に計測回数Ｎを１増やす（ステップＤ５２）。このステップＤ５２は、ステップＡ５３の前に行なってもよい。
【０１０７】
次に、今回の計測に要した時間Ｔを計測回数Ｎと計測所要時間の合計ＴＴに加える（ステップＤ５３）。これ以降の処理（ステップＡ５４以降）は、第３実施形態のステップＡ５３以降と同様である。
【０１０８】
ステップＢ５２において、計測を終了したときは、計測所要時間の平均となるＴＴ／Ｎを算出する（ステップＤ５４）。このとき、１回も計測を行なっていない可能性がある場合は、平均値の算出を行なう前に計測回数Ｎが０でないことを確認して、０による除算が発生しないようにしてもよい。
【０１０９】
次に、計測所要時間の平均ＴＴ／Ｎが一定の範囲内に収まっているかどうかを判定する（ステップＤ５５）。
【０１１０】
一定の範囲内に収まっている場合は、ボトルネックがＨＷ資源側にはないと判断する（ステップＣ５２）。これ以降のステップＢ５４及びＢ５５の動作は、第３実施形態のステップＢ３４及びＢ３５と同様である。
【０１１１】
計測所要時間の平均ＴＴ／Ｎが一定の範囲内に収まっていなかった場合は、ボトルネックがＨＷ資源側にあると判断する（ステップＣ５３）。
【０１１２】
最後に、出力部５１４は、ＨＷ資源がボトルネックであれば、その旨を出力装置１０６に出力し、ＨＷ資源がボトルネックでなければ、第１実施形態と同様、ＨＷ未活用状況が観測されたかどうかに基づいて、各ＳＷ資源に関する待ちプロセスの数を出力装置１０６に出力する。
【０１１３】
このように、本実施形態では、プロセス状態の計測に要した時間を複数回測定し、その平均値を算出できるように構成されているため、性能上のボトルネックがＨＷ資源側にあることをより正確に判定できる。
【０１１４】
（第６実施形態）
次に、本発明の第６実施形態によるコンピュータシステムの性能ボトルネック解析システムの構成について図面を使用しながら説明する。図１１は、本発明の第６実施形態によるコンピュータシステムの性能ボトルネック解析システム６００の構成を示すブロック図である。
【０１１５】
図１１を参照すると、本発明の第６実施形態の性能ボトルネック解析システム６００は、図７に示した第４実施形態にかかる性能ボトルネック解析システム４００と比べて、ＨＷ構成変更手段６４０を有する点で異なる。
【０１１６】
ＨＷ構成変更手段６４０は、処理装置６０２に備わるＨＷボトルネック判定部６２０から、ボトルネックがＨＷ資源とＳＷ資源のどちらにあるかを入力し、外部システム１２０の有するＨＷ資源の個数を変更して、この変更を記憶装置６０４に備わるＨＷ資源数記憶部１１６に反映させる。
【０１１７】
次に、本実施形態の性能ボトルネック解析システム６００の全体の動作について、図１１及び図１２を参照しながら詳細に説明する。図１２は、本実施形態によるコンピュータシステムの性能ボトルネック解析システム６００の動作を示すフローチャートである。
【０１１８】
図１２のステップＡ６１〜Ａ６７及びステップＣ６１〜Ｃ６３で示される本実施形態によるコンピュータシステムの性能ボトルネック解析システム６００におけるプロセス状態計測手段１０８、ＨＷ資源利用プロセス数比較部１１０、ＳＷ資源待ちプロセスカウント部１１２、計測所要時間取得部４２２、ＨＷボトルネック判定部４２０の動作は、第４実施形態の対応する部分の動作と同一のため、これらの動作の説明は、省略する。
【０１１９】
第４実施形態では、ステップＣ４３において、ボトルネックがＨＷ資源側にあると判断した時点で処理を終了していたが、本実施形態では、ＨＷ構成の変更を試みる（図１２のステップＥ６１）。
【０１２０】
具体的には、ボトルネックがＨＷ資源側にある場合には、ＨＷ資源が不足していると考え、ＨＷ資源の数を増やす。このようなＨＷ資源の追加は、外部システム１２０におけるＯＳやＢＩＯＳのパラメータの変更後に再起動を行なう等の処理を実行することによって実現できる。また、複数の計算ノードの集合で構成され、利用する計算ノードの数を動的に変更できるシステムにおいては、計算ノードの追加命令を発行するだけでよい。
【０１２１】
ＨＷの構成を変更できるかどうかは、外部システム１２０の状況等に応じて、外部から判断結果が入力される。ＨＷ構成の変更を行なった場合は、ＨＷ資源の個数を再設定し（ステップＡ６１）、さらにステップＡ６３以降の処理を繰り返す。ＨＷ構成を変更しない場合は、処理を終了する。
【０１２２】
また、図１２のフローチャートには記載していないが、ボトルネックがＨＷ資源側にないと判断した場合には、システム内のＨＷ資源に余剰があると考え、ステップＣ６２以降の何れかの工程でＨＷ資源を削減することもできる。
【０１２３】
最後に、出力部６１４は、ボトルネックの所在や、ＨＷ構成変更手段６４０によってＨＷの構成が変更されていれば、その変更結果を出力装置１０６に出力する。また、ボトルネックがＨＷ資源側になければ、ＨＷ未活用状況が観測されたかどうかに基づいて、各ＳＷ資源に関する待ちプロセスの数を出力装置１０６に出力する。
【０１２４】
このように、本実施形態では、ボトルネックの所在に基づいてＨＷ資源数を増減できるように構成されているため、最適なＨＷ資源数でシステムを運用することができる。
【０１２５】
（第７実施形態）
次に、本発明の第７実施形態によるコンピュータシステムの性能ボトルネック解析システムの構成について図面を使用しながら説明する。図１３は、本発明の第７実施形態によるコンピュータシステムの性能ボトルネック解析システム７００の構成を示すブロック図である。
【０１２６】
図１３を参照すると、本発明の第７実施形態の性能ボトルネック解析システム７００は、図９に示した第５実施形態にかかる性能ボトルネック解析システム５００と比べて、ＨＷ構成変更手段７４０を有する点と、処理装置７０２が記憶初期化部７３０を具備する点で異なる。
【０１２７】
ＨＷ構成変更手段７４０は、第６実施形態におけるＨＷ構成変更手段６４０と同様に、処理装置７０２に備わるＨＷボトルネック判定部７２４から、ボトルネックがＨＷ資源とＳＷ資源のどちらにあるかを入力し、外部システム１２０の有するＨＷ資源の個数を変更して、この変更を記憶装置７０４に備わるＨＷ資源数記憶部１１６に反映させる。
【０１２８】
記憶初期化部７３０は、記憶装置７０４の有する各構成要素である計測所要時間及び計測回数記憶部７２６、ＨＷ資源数記憶部１１６、未活用事象発生回数記憶部７２２、及びＳＷ資源待ち行列長記憶部７１８の記憶内容を初期状態に初期化する。
【０１２９】
次に、本実施形態の性能ボトルネック解析システム７００の全体の動作について、図１３及び図１４を参照しながら詳細に説明する。図１４は、本実施形態によるコンピュータシステムの性能ボトルネック解析システム７００の動作を示すフローチャートである。
【０１３０】
図１４のステップＡ７１〜Ａ７７、Ｂ７１〜Ｂ７５、Ｃ７２〜Ｃ７３及びＤ７１〜Ｄ７５で示される本実施形態によるコンピュータシステムの性能ボトルネック解析システム７００におけるプロセス状態計測手段１０８、ＨＷ資源利用プロセス数比較部１１０、ＳＷ資源待ちプロセスカウント部１１２、平均値算出部３２０、計測所要時間取得部５２２、ＨＷボトルネック判定部７２４の動作は、第５実施形態の対応する部分の動作と同一のため、これらの動作の説明は、省略する。
【０１３１】
第５実施形態では、ステップＣ５３において、ボトルネックがＨＷ資源側にあると判断した時点で処理を終了していたが、本実施形態では、第６実施形態と同様、ＨＷ構成の変更を試みる（図１４のステップＥ７１）。
【０１３２】
ＨＷ構成の変更を行なった場合、解析を最初からやり直すために、処理装置７０２に備わる記憶初期化部７３０が、ステップＡ７１、ステップＡ７２、ステップＢ７１、及びステップＤ７１の初期化処理を再実行して、記憶装置７０４の有するＨＷ資源数記憶部１１６、ＳＷ資源待ち行列長記憶部７１８、未活用事象発生回数記憶部７２２、及び計測所要時間及び計測回数記憶部７２６の記憶内容を初期化する。初期化のあと、さらにステップＢ７２以降の処理を繰り返す。
【０１３３】
また、図１４のフローチャートには記載していないが、ステップＣ７２においてボトルネックがＨＷ資源側にないと判断した場合には、システム内のＨＷ資源に余剰があると考え、ステップＣ７２以降のいずれかの工程で、ＨＷ資源を削減することもできる。
【０１３４】
最後に、出力部７１４は、ボトルネックの所在や、ＨＷ構成変更手段７４０によってＨＷの構成が変更されていれば、その変更結果を出力装置１０６に出力する。また、ボトルネックがＨＷ資源側になければ、ＨＷ未活用状況が観測されたかどうかに基づいて、各ＳＷ資源に関する待ちプロセスの数を出力装置１０６に出力する。
【０１３５】
このように、本実施形態では、ボトルネックの所在に基づいてＨＷ資源数を増減できるように構成されているため、最適なＨＷ資源数でシステムを運用することができる。また、プロセス状態の計測に要した時間を複数回測定し、その平均値を算出できるように構成されているため、ＨＷ資源がボトルネックとなっている場合に、性能上のボトルネックがＨＷ資源側にあることをより正確に判定できる。
【０１３６】
（第８実施形態）
次に、本発明の第８実施形態によるコンピュータシステムの性能ボトルネック解析システムの構成について図面を使用しながら説明する。図１５は、本発明の第８実施形態によるコンピュータシステムの性能ボトルネック解析システム８００の構成を示すブロック図である。
【０１３７】
図１５に示すように、本実施形態の性能ボトルネック解析システム８００は、処理装置８０２、記憶装置８０４、及び出力装置１０６を具備する。
【０１３８】
本実施形態における処理装置８０２は、ＳＷ資源識別子取得手段８０６と、ＳＷ資源待ち時間計測部８０８と、出力部８１０とを備え、記憶装置８０４は、ＳＷ資源識別子記憶部８１２と、ＳＷ資源待ち時間記憶部８１４とを備える。
【０１３９】
上記のＳＷ資源識別子取得手段８０６は、外部システム１２０の上で動作するプロセスが利用している各ＳＷ資源の識別子情報を取得して、かかる識別子情報をＳＷ資源識別子記憶部８１２に記憶する。
【０１４０】
ＳＷ資源待ち時間計測部８０８は、ＳＷ資源識別子記憶部８１２からＳＷ資源識別子を入力し、ＳＷ資源の取得を待つプロセスを外部システム１２０に新たに投入し、各ＳＷ資源の取得に要する時間をそれぞれ計測して、記憶装置８０４に備わるＳＷ資源待ち時間記憶部８１４に記憶させる。
【０１４１】
出力部８１０は、記憶装置８０４に備わるＳＷ資源待ち時間記憶部８１４から各ＳＷ資源の取得に要した時間を入力し、これを出力装置１０６に出力する。
【０１４２】
次に、本実施形態の性能ボトルネック解析システム８００の全体の動作について、図１５及び図１６を参照しながら詳細に説明する。図１６は、本実施形態によるコンピュータシステムの性能ボトルネック解析システム８００の動作を示すフローチャートである。
【０１４３】
まず、ＳＷ資源識別子取得手段８０６は、外部システム１２０の上で動作するプロセスがＯＳに対して発行しているシステムコールを調べて、システムコールの引数として指定されたＳＷ資源の識別子情報を取得し、記憶装置８０４に備わるＳＷ資源識別子記憶部８１２に記憶させる（図１６のステップＦ８１）。
【０１４４】
上記のシステムコールの引数情報は、プログラムのソースコードが参照でき、かつプログラム上に直接識別子が記載されている場合は、そこから取得できる。また、例えば、Ｌｉｎｕｘ等のＵＮＩＸ系ＯＳ上で動作するプロセスに対しては、ｓｔｒａｃｅ等のコマンドやｐｔｒａｃｅ等のシステムコールによって、動作中のプロセスが発行しているシステムコール及び呼出し時の引数をリアルタイムに取得できる。計測にかけられる時間が限られている場合は、一定時間内に取得できたＳＷ資源識別子のみをＳＷ資源識別子記憶部８１２に記憶する。
【０１４５】
次に、ＳＷ資源待ち時間計測部８０８は、ＳＷ資源識別子記憶部８１２から１個以上のＳＷ資源識別子を入力し、各ＳＷ資源識別子に関して、ＳＷ資源を待つプログラムを作成、または既に作成済みのプログラムに対してＳＷ資源識別子を引数として与えて外部システム１２０上で実行し、ＳＷ資源を実際に取得するまでにかかる時間を計測する。
【０１４６】
このとき実行するプログラムは、まずＳＷ資源待ちを行なう処理の前に現在時刻を取得し、次にＳＷ資源識別子を使ってＳＷ資源の取得を行ない、取得後に再度現在時刻を取得して、取得の前後の時刻から取得に要した時間を算出するプログラムとなる。取得したＳＷ資源識別子は、極力早く解放する。
【０１４７】
ＳＷ資源待ち時間の計測を、ＳＷ資源識別子取得手段８０６が取得した全てのＳＷ資源識別子に対して行ない（ステップＦ８２及びステップＦ８３）、計測した所要時間をＳＷ資源待ち時間記憶部８１４に記憶する。
【０１４８】
最後に、出力部８１０は、ＳＷ資源待ち時間記憶部８１４から、各ＳＷ資源識別子に対して計測したＳＷ資源待ち時間を入力し、待ち時間を出力装置１０６に出力する。このとき、待ち時間とともに、ＳＷ資源の種類やＳＷ資源識別子を出力してもよい。また、このとき、待ち時間を用いてＳＷ資源識別子をソートまたは一定以上の待ち時間のＳＷ資源識別子だけを抽出して出力してもよい。
【０１４９】
このように、本実施形態では、ＳＷ資源識別子に対して、ＳＷ資源を取得するのに要する時間を計測できるように構成されているため、性能上のボトルネックとなっているＳＷ資源とその識別子を特定できる。
【０１５０】
（第９実施形態）
次に、本発明の第９実施形態によるコンピュータシステムの性能ボトルネック解析システムの構成について図面を使用しながら説明する。図１７は、本発明の第９実施形態によるコンピュータシステムの性能ボトルネック解析システム９００の構成を示すブロック図である。
【０１５１】
図１７に示すように、本実施形態の性能ボトルネック解析システム９００は、図１５に示した第８実施形態にかかる性能ボトルネック解析システム８００と比べて、処理装置９０２がプロセス状態計測手段９１６と、ＨＷ資源利用プロセス数比較部９１８とを具備する点と、記憶装置９０４がＨＷ資源数記憶部９２０を具備する点で異なる。
【０１５２】
プロセス状態計測手段９１６と、ＨＷ資源利用プロセス数比較部９１８の動作は、第１実施形態で示した対応する手段及び処理部と同様である。
【０１５３】
次に、本実施形態の性能ボトルネック解析システム９００の全体の動作について、図１７及び図１８を参照しながら詳細に説明する。図１８は、本実施形態によるコンピュータシステムの性能ボトルネック解析システム９００の動作を示すフローチャートである。
【０１５４】
図１８のステップＡ９１及びステップＡ９３〜Ａ９５で示される本実施形態におけるプロセス状態計測手段９１６、ＨＷ資源利用プロセス数比較部９１８の動作は、第１実施形態の対応する部分の動作と同一のため、説明を省略する。
【０１５５】
第１実施形態では、ステップＡ１５においてＨＷ未活用状況が観測された場合、各ＳＷ資源を待つ休眠プロセスがいくつあるかを数えていたが、本実施形態では、ＳＷ資源資源識別子取得手段９０６が、ＳＷ資源待ち状態の各プロセスに対して、発行中のシステムコールを調べ、引数として与えられているＳＷ資源識別子情報を取得して、ＳＷ資源識別子記憶部８１２に記憶する（図１８のステップＡ９６及びステップＧ９１）。
【０１５６】
このとき、ＳＷ資源待ち状態のプロセスがＳＷ資源待ち状態に遷移する際に発行されたシステムコール及び引数は、例えば、Ｌｉｎｕｘ等のＵＮＩＸ系ＯＳの場合、ｓｔｒａｃｅ等のコマンドやｐｔｒａｃｅ等のシステムコールによって取得可能である。
【０１５７】
全てのＳＷ資源待ち状態のプロセスに対して、ＳＷ資源識別子情報を取得し終わると、次にＳＷ資源待ち時間計測部８０８は、第８実施形態における対応する処理部と同様、ＳＷ資源識別子記憶部８１２から１個以上のＳＷ資源識別子を入力し、各ＳＷ資源識別子に関して、ＳＷ資源待ち時間の計測を行ない、計測した待ち時間をＳＷ資源待ち時間記憶部８１４に記憶する（ステップＦ９２及びステップＦ９３）。
【０１５８】
最後に、出力部８１０は、第８実施形態と同様に、ＳＷ資源待ち時間記憶部８１４から、各ＳＷ資源識別子に対して計測したＳＷ資源待ち時間を入力し、出力装置１０６に出力する。このとき、待ち時間とともに、ＳＷ資源の種類やＳＷ資源識別子を出力してもよい。
【０１５９】
このように、本実施形態では、ＳＷ資源待ち状態のプロセスに対してのみＳＷ資源識別子情報を採集し、各ＳＷ資源を取得するのに要する時間を計測できるように構成されているため、性能上のボトルネックとなっているＳＷ資源とその識別子をより早く特定することができる。
【０１６０】
次に、以下に記載した具体的な各実施例を用いて本発明を実施するための最良の形態の動作について説明する。
【実施例１】
【０１６１】
実施例１は、上述した本発明の第１及び第２実施形態に対応するものである。
【０１６２】
ここでは、ＨＷ資源をＣＰＵとし、外部システム１２０の備えるＨＷ資源の数は４つ、つまり４つのＣＰＵを備えているものとする。また、外部システム１２０には、ＵＮＩＸ系ＯＳであるＬｉｎｕｘが搭載されているとする。
【０１６３】
まず、メモリ等の記憶装置１０４内に、外部のシステム１２０の備えるＨＷ資源数である整数値４が設定される。
【０１６４】
次に、プロセス状態計測手段１０８は、外部システム１２０上でｐｓコマンドを発行し、プロセスの実行状態に関する情報を取得する。ここで、ｐｓコマンドの出力例を図１９に示す。図１９は、ｐｓコマンドをlオプションつきで発行した出力例を示す図である。
【０１６５】
図１９に示すように、３行目以降の各行が各プロセスに対応しており、ＰＩＤの列は、プロセスＩＤ（識別子）を表し、ＣＯＭＭＡＮＤの列は、プロセスの名前を表す。また、ＳＴＡＴの列は、プロセスの状態の概略を表しており、Ｒ表示は、ＣＰＵを利用中であることを表し、Ｓ表示は、ＳＷ資源を待つ休眠状態であることを表す。さらに、ＷＣＨＡＮの列は、休眠状態のプロセスがＳＷ資源の取得を待つ際に実行しているＯＳ内の関数を表す。例えば、セマフォの取得を待っていればｓｅｍｏｐ、プロセス間通信におけるメッセージの到着待ちであればｍｓｇｒｃｖ、子プロセスの終了待ちであればｗａｉｔ４と言った具合に表示される。つまり、ＷＣＨＡＮの列から休眠中のプロセスが待つＳＷ資源の種類がわかる。
【０１６６】
次に、ＨＷ資源利用プロセス数比較部１１０は、ｐｓコマンドの出力から、ＣＰＵ利用中、すなわちプロセスの状態の概略を表すＳＴＡＴがＣＰＵを利用中であることを表すＲのプロセス数を数える。このとき、全てのプロセスを対象としてもよいが、一般に外部システム１２０上には、性能を解析したいプロセスとは、直接関係ないプロセスが存在しているため、ここではａｂｃと名づけられた一連のプロセスの性能について考えることにする。
【０１６７】
外部システム１２０の備えるＣＰＵ数は、４つであるが、プロセスａｂｃに関しては、ＣＰＵ利用中のプロセス数は、３つしかないため、ＨＷ資源利用プロセス数比較部１１０は、外部システム１２０が、使用されていないＣＰＵの存在するＨＷ未活用状況にあることを検出する。この時点で、検出した旨を出力部１１４に与えて、出力装置１０６に出力してもよい。
【０１６８】
次に、ＳＷ資源待ちプロセスカウント部１１２は、ＨＷ未活用状況の検出を受けて、各ＳＷ資源を待つ休眠プロセスがいくつあるかを数える。図１９の例では、ｗａｉｔ４すなわち子プロセスの終了待ちプロセスが１つ、ｓｅｍｏｐすなわちセマフォを待ちプロセスが３つ、ｍｓｇｒｃｖすなわちメッセージ待ちのプロセスが２つと算出される。
【０１６９】
最後に出力部１１４は、ディスプレイ等の出力装置１０６に算出結果を出力する。待ちプロセスの多いＳＷ資源が、より重要なボトルネックである。このとき、第２実施形態におけるフィルタリング部２２０を用いて、待ちプロセス数の多い順番でソートを行ない、ｓｅｍｏｐ:３、ｍｓｇｒｃｖ:２、ｗａｉｔ４:１等のように出力することもできる。また、待ちプロセスの数が一定数以上のＳＷ資源のみを出力するようにしてもよい。
【実施例２】
【０１７０】
次に、実施例２を用いて、本発明を実施するための最良の形態の動作を説明する。かかる実施例２は、本発明の第３実施形態に対応するものである。
【０１７１】
実施例１と同様、ＨＷ未活用状況下での各ＳＷ資源を待つ休眠プロセスがいくつあるかを数えるが、本実施例では、複数回の計測を行なって休眠プロセス数の平均値を求める。
【０１７２】
例えば、計測を５回行ない、そのうちの３回については、ＨＷ未活用状況が検出されたとする。１回目のＨＷ未活用状態検出時には、ｗａｉｔ４:１、ｓｅｍｏｐ:３、ｍｓｇｒｃｖ:２、すなわち子プロセスの終了待ちプロセスが１つ、セマフォを待ちプロセスが３つ、メッセージ待ちのプロセスが２つ観測され、２回目と３回目の検出時には、それぞれｗａｉｔ４:１、ｓｅｍｏｐ:３、ｍｓｇｒｃｖ:３とｗａｉｔ４:１、ｓｅｍｏｐ:４、ｍｓｇｒｃｖ:１のように観測されたとする。
【０１７３】
平均値算出部３２０は、ＳＷ資源待ち行列長記憶部３１８に記憶された、各ＳＷ資源に対する待ちプロセス数の合計、すなわちｗａｉｔ４:３、ｓｅｍｏｐ:１０、ｍｓｇｒｃｖ:６のそれぞれを未活用事象発生回数記憶部３２２に記憶された３で割って、平均待ちプロセス数ｗａｉｔ４:１.００、ｓｅｍｏｐ:３.３３、ｍｓｇｒｃｖ:２.００を算出する。このとき、平均待ちプロセス数は、小数値であってもよい。そして、出力部３１４は、求めた各ＳＷ資源に対する平均待ちプロセス数を出力装置１０６に出力する。
【実施例３】
【０１７４】
次に、実施例３を用いて、本発明を実施するための最良の形態の動作を説明する。かかる実施例３は、本発明の第４及び第５実施形態に対応するものである。
【０１７５】
実施例１と同様の具体例を使って説明すると、本実施例では、プロセス状態計測手段１０８がｐｓコマンドを発行してから、ｐｓコマンドの結果を取得するまでに要した時間を計測所要時間取得部４２２が計測する。
【０１７６】
このときの計測には、ｇｅｔｔｉｍｅｏｆｄａｙ等の現在時刻を取得するシステムコールを使用して、ｐｓコマンドを実行する直前と直後の時刻を取得して、コマンドの応答時間を算出する方法や、コマンドの応答時間を出力するｔｉｍｅ等のコマンドを使用する方法等がある。
【０１７７】
次に、ＨＷボトルネック判定部４２０は、計測所要時間が一定の範囲内に収まっているかどうかを調べる。計測所要時間が２.３秒であり、許容値が１.５秒であった場合、計測所要時間が許容値を越えているため、ＨＷボトルネック判定部４２０は、ボトルネックがＨＷ資源側、すなわちＣＰＵにあると判断する。この場合、出力部４１４は、ボトルネックがＣＰＵであることを出力装置１０６に出力する。
【０１７８】
計測所要時間が許容値を越えていなかった場合は、実施例１と同様、ＨＷ未活用状況の検出を行ない、各ＳＷ資源に対する平均待ちプロセス数を出力する。
【０１７９】
第５実施形態においては、複数回の計測に基づき、計測所要時間の平均値をもってＨＷボトルネックの判定を行なう。例えば、プロセス状態の計測を１分ごとに１００回行なった結果、所要時間の平均値が１.３秒であったとする。許容値が１.５秒の場合、この期間では、ボトルネックがＨＷ資源側には存在しないものと判断する。
【実施例４】
【０１８０】
次に、実施例４を用いて、本発明を実施するための最良の形態の動作を説明する。かかる実施例４は、本発明の第６及び第７実施形態に対応するものである。
【０１８１】
実施例１及び実施例３と同様の具体例を使って説明すると、本実施例では、ＨＷボトルネック判定部６２０によってボトルネックがＣＰＵにあると判断された場合、外部システムのＣＰＵを増強する。
【０１８２】
例えば、外部システム１２０に未使用のＣＰＵや他のサービスに割り当てられたＣＰＵが存在していた場合、ＯＳのパラメータやＢＩＯＳの書換え及び再起動等の手段によって、性能解析対象のプロセスに割り当てられるＣＰＵ数を増やすことができる。また、外部システム１２０をより性能の高いコンピュータシステムに交換または切り替えても良い。例えば、ネットワークにつながったコンピュータシステムは、ＩＰアドレスの動的変更等の手段によって、他のコンピュータシステムに自動的に切り替えることが可能である。
【０１８３】
外部システム１２０の切替えや、構成の変更を行なった場合、出力部６１４は、その旨を出力装置１０６に出力する。
【０１８４】
さらに処理を続ける場合は、記憶装置６０４に保持されているＨＷ資源数を、変更後の構成に再設定して、プロセス状態の計測以降の処理を繰り返す。
【０１８５】
第７実施形態においては、ボトルネックがＨＷ資源側にあるかどうかの判定を実施例３における第５実施形態と同様、測定結果の平均値をもって行なう。
【実施例５】
【０１８６】
次に、実施例５を用いて、本発明を実施するための最良の形態の動作を説明する。かかる実施例５は、本発明の第８実施形態に対応するものである。
【０１８７】
まず、ＳＷ資源識別子取得手段８０６が、外部システム１２０の上で動作するプロセスが利用している各ＳＷ資源の識別子情報を取得する。ＳＷ資源識別子とは、例えばセマフォの場合であれば、各セマフォを識別するためのセマフォＩＤである。ＵＮＩＸ系ＯＳ等の場合、セマフォＩＤは、単なる整数値である。
【０１８８】
ＳＷ資源識別子は、プログラムのソースコード上から直接取得できる場合がある他、動作中のプロセスに対しても、ｓｔｒａｃｅコマンドを使用して、ＳＷ資源識別子を取得できる。例えばセマフォ待ちを行なうプロセスの場合、プロセスＩＤが例えば２４６だとすると、コマンドｓｔｒａｃｅ-p２４６の発行によって出力ｓｅｍｏｐ（８、 ...)が得られ、セマフォ識別子が８であることがわかる。
【０１８９】
次に、ＳＷ資源待ち時間計測部８０８は、取得したセマフォＩＤとセマフォの取得を行なう関数ｓｅｍｏｐを使用して、実際にセマフォを取得するプログラムを作成し、外部システム１２０上で実行する。
【０１９０】
取得にかかる時間の計測には、システムコールｇｅｔｔｉｍｅｏｆｄａｙ等を使用して、関数ｓｅｍｏｐの呼出しの直前と直後の時刻から算出する方法や、ｔｉｍｅコマンドを使用する方法等がある。
【０１９１】
異なるセマフォ識別子や、セマフォ以外のＳＷ資源に対しても、同様に計測を行なう。
【０１９２】
最後に出力部８１０は、ディスプレイ等の出力装置１０６に計測結果を出力する。
【実施例６】
【０１９３】
次に、実施例６を用いて、本発明を実施するための最良の形態の動作を説明する。かかる実施例６は、本発明の第９実施形態に対応するものである。
【０１９４】
実施例１及び実施例５と同様の具体例を使って説明すると、本実施例では、プロセス状態計測手段９１６がｐｓコマンドの出力から取得した休眠状態のプロセスに対して、ＳＷ資源識別子取得手段９０６がｓｔｒａｃｅ等のコマンドを使用して、休眠中のプロセスが待つＳＷ資源の識別子を取得する。
【０１９５】
ＳＷ資源待ち時間計測部８０８は、ＨＷ資源利用プロセス数比較部９１８によってＨＷ未活用状況が検出された場合に、実施例５と同様、ＳＷ資源識別子を用いて、ＳＷ資源に対する実際の待ち時間を計測する。
【０１９６】
最後に出力部８１０は、ディスプレイ等の出力装置１０６に計測結果を出力する。
【０１９７】
以上、添付図面を参照しながら本発明の好適な実施形態について説明したが、本発明は係る例に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【産業上の利用可能性】
【０１９８】
本発明は、コンピュータシステムにおける性能ボトルネック解析システムに適用可能であり、特にサーバの状態を監視して性能劣化の原因を解析する性能評価システムや、システム開発時における性能ボトルネックを特定するための開発ツールといった用途に適用可能である。また、並列計算機やクラスタ型サーバ等の複数の計算ノードが用意され、あるユーザの利用する計算ノードの数を調整できるシステムにおいて、利用効率や利用に対する課金等の理由から、ユーザの利用する計算ノードの数を最適化するといった用途にも適用可能である。
【図面の簡単な説明】
【０１９９】
【図１】本発明の第１実施形態によるコンピュータシステムの性能ボトルネック解析システムの構成を示すブロック図である。
【図２】同実施形態によるコンピュータシステムの性能ボトルネック解析システムの動作を示すフローチャートである。
【図３】本発明の第２実施形態によるコンピュータシステムの性能ボトルネック解析システムの構成を示すブロック図である。
【図４】同実施形態によるコンピュータシステムの性能ボトルネック解析システムの動作を示すフローチャートである。
【図５】本発明の第３実施形態によるコンピュータシステムの性能ボトルネック解析システムの構成を示すブロック図である。
【図６】同実施形態によるコンピュータシステムの性能ボトルネック解析システムの動作を示すフローチャートである。
【図７】本発明の第４実施形態によるコンピュータシステムの性能ボトルネック解析システムの構成を示すブロック図である。
【図８】同実施形態によるコンピュータシステムの性能ボトルネック解析システムの動作を示すフローチャートである。
【図９】本発明の第５実施形態によるコンピュータシステムの性能ボトルネック解析システムの構成を示すブロック図である。
【図１０】同実施形態によるコンピュータシステムの性能ボトルネック解析システムの動作を示すフローチャートである。
【図１１】本発明の第６実施形態によるコンピュータシステムの性能ボトルネック解析システムの構成を示すブロック図である。
【図１２】同実施形態によるコンピュータシステムの性能ボトルネック解析システムの動作を示すフローチャートである。
【図１３】本発明の第７実施形態によるコンピュータシステムの性能ボトルネック解析システムの構成を示すブロック図である。
【図１４】同実施形態によるコンピュータシステムの性能ボトルネック解析システムの動作を示すフローチャートである。
【図１５】本発明の第８実施形態によるコンピュータシステムの性能ボトルネック解析システムの構成を示すブロック図である。
【図１６】同実施形態によるコンピュータシステムの性能ボトルネック解析システムの動作を示すフローチャートである。
【図１７】本発明の第９実施形態によるコンピュータシステムの性能ボトルネック解析システムの構成を示すブロック図である。
【図１８】同実施形態によるコンピュータシステムの性能ボトルネック解析システムの動作を示すフローチャートである。
【図１９】ｐｓコマンドの出力例を示す図である。
【図２０】従来のコンピュータシステムの性能ボトルネック解析システムの構成を示すブロック図である。
【符号の説明】
【０２００】
１００    性能ボトルネック解析システム
１０２    処理装置
１０４    記憶装置
１０６    出力装置
１０８    プロセス状態計測手段
１１０    ＨＷ資源利用プロセス数比較部
１１２    ＳＷ資源待ちプロセスカウント部
１１４    出力部
１１６    ＨＷ資源数記憶部
１１８    ＳＷ資源待ち行列長記憶部
１２０    システム
２２０    フィルタリング部
３２０    平均値算出部
３２２    未活用事象発生回数記憶部
４２０    ボトルネック判定部
４２２    計測所要時間取得部
５２６    計測所要時間及び計測回数記憶部
６４０    ＨＷ構成変更手段
７３０    記憶初期化部
８０６    ＳＷ資源識別子取得手段
８０８    ＳＷ資源待ち時間計測部
８１２    ＳＷ資源識別子記憶部
８１４    ＳＷ資源待ち時間記憶部
【図１】
2005339437.tif 000003
【図２】
2005339437.tif 000004
【図３】
2005339437.tif 000005
【図４】
2005339437.tif 000006
【図５】
2005339437.tif 000007
【図６】
2005339437.tif 000008
【図７】
2005339437.tif 000009
【図８】
2005339437.tif 000010
【図９】
2005339437.tif 000011
【図１０】
2005339437.tif 000012
【図１１】
2005339437.tif 000013
【図１２】
2005339437.tif 000014
【図１３】
2005339437.tif 000015
【図１４】
2005339437.tif 000016
【図１５】
2005339437.tif 000017
【図１６】
2005339437.tif 000018
【図１７】
2005339437.tif 000019
【図１８】
2005339437.tif 000020
【図１９】
2005339437.tif 000021
【図２０】
2005339437.tif 000022