(57)【要約】【課題】  従来の技術では、性能診断の専門家が情報処理装置を構成する資源を評価する際に用いる閾値をボトルネックの判定基準値として使用しているため、性能診断の専門家の考えや情報処理装置の特徴が影響した定性的な判定方法となり判断を誤る可能性がある。【解決手段】情報処理装置内のボトルネックがCPU側であるかI/O側であるかの判定方法として、情報処理装置内のCPU性能測定手段から実測で得た情報処理装置のCPUの性能情報と待ち行列理論を組合わせることでボトルネックを判定するため、従来技術のような定性的な判定ではなく、定量的で明確な判定が可能となる。また、システム毎に閾値を人手で設定する必要がなくなるためボトルネック判定手法の自動化が可能となる。【選択図】図１
2006293578.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置および処理プログラムの性能評価に関する情報処理装置内のボトルネックを判定する情報処理装置内ボトルネック判定方法において、
前記判定対象の情報処理装置内の処理装置に組み込まれている性能プロファイリングのための論理を用いて当該処理装置の性能情報を取得し、
前記性能情報に待ち行列理論を適用して前記処理装置における単位時間あたりの処理待ち時間を示す処理装置待ち時間を算出し、
前記処理装置待ち時間と前記処理装置の処理時間の和と、単位処理当りの応答時間であるジョブ実行時間とを比較することで、前記情報処理装置内のボトルネックが前記処理装置であるかI/O側であるかを判定することを特徴とする情報処理装置内ボトルネック判定方法。
【請求項２】
請求項１に記載の情報処理装置内ボトルネック判定方法において、
前記性能情報は、当該情報処理装置が用いるアプリケーションプログラムに付属した情報処理装置の性能測定手段を用いて、取得することを特徴とする情報処理装置内ボトルネック判定方法。
【請求項３】
請求項１または２のいずれかに記載の情報処理装置内ボトルネック判定方法において、
前記性能情報の取得は、前記処理装置およびメモリおよびディスクを含む当該情報処理装置の資源の性能情報を取得し、
前記処理装置待ち時間の算出は、前記資源の待ち時間を算出し、
前記資源の単位時間あたりの待ち時間と該資源の処理時間の和と、単位処理当りの応答時間であるジョブ実行時間とを比較することで、前記情報処理装置内ボトルネックが該資源であるか、該資源でないかを判定することを特徴とする情報処理装置内ボトルネック判定方法。
【請求項４】
請求項１に記載の情報処理装置内ボトルネック判定方法において、
前記待ち時間の算出は、取得された前記性能情報から単位命令当りの処理時間に変換した情報に待ち行列理論を適用して算出することを特徴とする情報処理装置内ボトルネック判定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置および処理プログラムの性能評価に関し、特に情報処理装置内のボトルネックを判定するための方法および実現手段に関するものである。
【背景技術】
【０００２】
情報処理装置の処理性能を向上させるには、現状の処理性能を測定・解析して、処理性能上のボトルネック要因を特定することが重要である。
従来技術において、特許第2932809号（特許文献１）に示される様に、情報処理装置から得た性能情報と、性能診断の専門家が情報処理装置を構成する資源の使用率等を評価する際に用いる閾値である性能基準値とを比較し、基準値を超えている場合に、その資源をボトルネックと判定する方法がある。
【０００３】
例えば、該測定方法では「CPUの使用率<90%（性能基準値）」の場合はCPUボトルネック、I/Oの使用率<30%（性能基準値）」の場合はI/Oボトルネックの様に、性能診断の専門家が定めた閾値と現状の測定値を比較することで判定している。
【０００４】
【特許文献１】特許第2932809号
【非特許文献１】「シミュレーションによるコンピュータ・システムの性能評価：テクニックとツール」、M.H.マクドゥガル、株式会社  工学社、1990、ISBN4-87593-163-8
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、上述した方法では、性能診断の専門家が情報処理装置を構成する資源を評価する際に用いる閾値をボトルネックの判定基準である性能基準値に使用しているため、性能診断の専門家の考えや情報処理装置の特徴が影響した定性的な判定方法となり判断を誤る可能性がある。
【０００６】
また、システム毎に専門化が値を設定するため、システム毎にその都度人手で閾値を与えねばならず、自動化が困難であると言った問題があった。
本発明では、定量的で明確な判定を可能とし、かつシステム毎の閾値を人手で入力することなく情報処理装置内のボトルネックを特定する方法を提案することを目的とする。
【課題を解決するための手段】
【０００７】
上述の目的を実現するため、本発明では、情報処理装置および処理プログラムの性能評価に関し、情報処理装置内のボトルネックを判定する方法において、情報処理装置内のCPUに組み込まれているハードウェアモニタと呼ばれるCPU性能プロファイリングのための論理を用いてCPU性能情報を採取する手段、あるいはアプリケーションプログラム付属の情報処理装置の性能測定手段を用いて、情報処理装置での処理プログラム実行時のCPU性能情報を採取し、さらにCPU性能情報に待ち行列理論を適用する手段を用いて、CPU待ち時間を算出し、単位処理当りのCPU待ち時間とCPU処理時間の和と、単位処理当りの応答時間であるジョブ実行時間とを比較することで情報処理装置内のボトルネックがCPU側であるかI/O側であるかを判定する比較手段を用いることで、情報処理装置内のボトルネックがCPU側であるかI/O側であるかを判定する方法を用いることで上記課題を解決するものである。
【発明の効果】
【０００８】
従来技術では、情報処理装置から得た性能情報と、性能診断の専門家が情報処理装置を構成する資源の使用率等を評価する際に用いる閾値である性能基準値とを比較し、基準値を超えている場合に、その資源をボトルネックと判定する方法であったのに対し、
本発明では、実測で得た情報処理装置のCPUの性能情報と待ち行列理論からボトルネックを判定するため、従来技術のような定性的な判定ではなく、定量的で明確な判定が可能となる。また、システム毎に閾値を人手で設定する必要がなくなるためボトルネック判定手法の自動化が可能となる。
【発明を実施するための最良の形態】
【０００９】
図1に発明の実施形態の例を示す。100は情報処理装置を、101は情報処理装置に搭載されるCPUを、それぞれ示している。
【００１０】
101は100において1つであっても複数あっても良い。102は情報処理装置のCPUに組み込まれているハードウェアモニタと呼ばれるCPU性能プロファイリング手段、あるいは、アプリケーションプログラム付属の性能測定手段を示している。102によって採取されたCPU性能情報を格納する110が設置される。110は100内に設置されても、100外に設置されても良い。110に格納されたCPU性能情報を用いて、情報処理装置のCPU待ち時間を算出するCPU待ち時間算出処理（120）を有する。
【００１１】
120は100内に搭載されても、100外に搭載されても良い。120は102と統合されていても良い。110に格納されたCPU性能情報と、120で算出されたCPU待ち時間を用いて、情報処理装置内のボトルネックがCPU側であるかI/O側であるかを判定するための手段である比較手段（130）を有する。
【００１２】
130は100内に搭載されても、100外に搭載されても良い。130は102あるいは120と統合されていても良い。130によって比較した結果を用いて、情報処理装置内のボトルネックをCPU側であるかI/O側であるかの判定結果を格納する140が設置される。140は100内に設置されても、100外に設置されても良い。140に格納されたボトルネック判定結果を表示する表示処理（145）を有する。145は100で実行されても、100とは異なる情報処理装置で実行されても良い。また、145は102、120あるいは130と統合されても良い。
【００１３】
図2に、発明の別の実施形態の例を示す。200は情報処理装置を、201は情報処理装置に搭載されるCPUを、それぞれ示している。201は200において1つであっても複数あっても良い。202は情報処理装置のCPUに組み込まれているハードウェアモニタと呼ばれるCPU性能プロファイリング、あるいは、アプリケーションプログラム付属の性能測定手段を示している。202によって採取されたCPU性能情報を格納する210が設置される。210は200内に設置されても、200外に設置されても良い。クライアント側の情報処理装置台数を格納する225が設置される。
【００１４】
225は200内に設置されても、200外に設置されても良い。225は210と統合されても良い。210に格納されたCPU性能情報と、225に格納されたクライアント側の情報処理装置台数を用いて、情報処理装置のCPU待ち時間を算出するCPU待ち時間算出処理（220）を有する。220は200内に搭載されても、200外に搭載されても良い。
220は202と統合されていても良い。
【００１５】
210に格納されたCPU性能情報と、220で算出されたCPU待ち時間を用いて、情報処理装置内のボトルネックがCPU側であるかI/O側であるかを判定するための手段である比較手段（230）を有する。230は200内に搭載されても、200外に搭載されても良い。
230は202あるいは220と統合されていても良い。
【００１６】
230によって比較した結果を用いて、情報処理装置内のボトルネックをCPU側であるかI/O側であるかの判定結果を格納する240が設置される。240は200内に設置されても、200外に設置されても良い。240に格納されたボトルネック判定結果を表示する表示処理（245）を有する。245は200で実行されても、200とは異なる情報処理装置で実行されても良い。また、245は202、220あるいは230と統合されても良い。
【実施例１】
【００１７】
図1の実施形態での情報処理装置内ボトルネック判定方法の例について述べる。
情報処理装置内において、処理プログラムが101で実行される一方で、102はCPU性能情報を採取し、110にCPU性能情報を保存する。
【００１８】
具体的には、単位処理当りの命令数を表すダイナミックステップ数、１秒間の命令実行回数を表わすMIPS値、単位時間内にCPUが実際に演算を行っている割合を表すCPUビジー率、単位時間内の処理量を表す処理スループット等が含まれている。
110の情報を元に、120が情報処理装置のCPU側での待ち時間を算出する。
【００１９】
本実施例では採取されたCPU性能情報が110に一旦保存される場合を想定しているが、110のような保存先を省略して、直接CPU性能情報を120が102から読み出しても良い。
CPU待ち時間算出方法は、待ち行列理論を使用する。
【００２０】
具体的には、120は目的とするCPU待ち時間を算出するのに必要なCPU性能情報を160を通じて読み出し、待ち行列理論を用いて、待ち行列長を算出する。待ち行列理論で使用するサービス窓口数は情報処理装置のCPU台数とする。
【００２１】
待ち行列長の算出方法には、待ち行列理論の標準的表記法であるケンドールの表記法を用いる場合に定義されている計算式を使用する場合と、待ち行列シミュレーションを使用する場合がある。
【００２２】
ケンドールの表記法を用いる場合に定義されている待ち行列長を求める計算式を使う場合は、読み出す情報は、CPU待ち行列長の算出に必要なデータのみで良いため、110の情報全てを用いる必要はなく、特に情報処理装置のCPUビジー率、CPU処理時間と処理スループットを必要とする。
【００２３】
例えば、ケンドールの表記法で「M/D/1モデル」の場合のCPU待ち行列長（Lq）は、CPUビジー率（ρ）を使用して、「Lq=(ρ*ρ)/(2(1-ρ))」で求まる。
【００２４】
同様に、「M/M/1モデル」の場合のCPU待ち行列長（Lq）は、CPUビジー率（ρ）を使用して、「Lq=(ρ*ρ)/(1-ρ)」で求まる。
【００２５】
一方、待ち行列シミュレーションを使用することで待ち行列長を得る場合は、
読み出す情報は、CPU待ち行列長の算出に必要なデータのみで良いため、110の情報全てを用いる必要はなく、特に情報処理装置のCPU台数、CPUビジー率、CPU処理時間と処理スループットを必要とする。
【００２６】
待ち行列シミュレーションは、例えば非特許文献1に記述されているsmplと呼ばれるツールを利用して求めることが可能である。ただし、この待ち行列シミュレーションは一例であり、待ち行列長を求めることが可能であれば、他の方法を用いても良い。
例えば、ケンドールの表記法で「M/M/1モデル」の場合のCPU待ち行列長（Lq）は、情報処理装置のCPU台数1台、CPUビジー率（ρ）、CPU処理時間（Ctime）、処理スループット（λ）を待ち行列シミュレーションの実行引数として渡すことで求まる。
【００２７】
同様に、「M/M/nモデル」の場合のCPU待ち行列長（Lq）は、情報処理装置のCPU台数n台、CPUビジー率（ρ）、CPU処理時間（Ctime）、処理スループット（λ）を待ち行列シミュレーションの実行引数として渡すことで求まる。
CPU待ち時間（Wq）は、上述で求めたCPU待ち行列長（Lq）と、110から得た処理スループット（λ）をリトルの公式「Wq=Lq/λ」に代入することで求まる。120で算出したCPU待ち時間は170を通じて130に送る。
【００２８】
130は120から170を通じてCPU待ち時間と、110から180を通じて情報処理装置のCPU性能情報の一つであるジョブ実行時間とCPU処理時間とを読み出し、後述の比較方法で情報処理装置内のボトルネックがCPU側であるかI/O側であるかを判定し、判定結果を190を通じて140に送る。
【００２９】
上述のCPU待ち時間とCPU処理時間の和が単位処理当りのCPU側で経過した時間となる。情報処理装置内のボトルネックがCPU側であるかI/O側であるかの判定方法は、CPU待ち時間とCPU処理時間の和と、ジョブ実行時間を比較することで求める。
【００３０】
図3および図4で使用する、CPU待ち時間、CPU処理時間、I/O待ち時間、I/O処理時間およびジョブ実行時間は単位処理当りの時間に着目したものである。
【００３１】
CPU待ち時間とCPU処理時間の和と、I/O待ち時間とI/O処理時間の和のどちらか長い方が、ジョブ実行時間となる。つまり、CPUとI/Oの内、ジョブ実行時間を拘束している方が情報処理装置内のボトルネックである。
【００３２】
図3のように、320のCPU待ち時間と330のCPU処理時間の和が、310のジョブ実行時間よりも小さい場合は、情報処理装置のボトルネックがI/O側と判定する。
逆に、図4のように420のCPU待ち時間と430のCPU処理時間の和が、410のジョブ実行時間よりも小さくない場合は、情報処理装置のボトルネックがCPU側と判定する。
上述の方法によって140に保存されたボトルネック判定結果は、145によって表示を行うことが出来る。
【００３３】
具体的には、145は140より195を通じてボトルネック判定結果を表示するために必要な、単位処理当りのCPU待ち時間とCPU処理時間の和と、ジョブ実行時間を読み出し、目的とする形式に配置・整形して表示する。なお、140に保存されている全ての情報を表示しなくても良い。表示の形式は、例えば図5に示すように、情報処理装置で設定する同時実行ユーザ数毎の情報処理装置のCPU待ち時間とCPU処理時間の和（520）と、ジョブ実行時間（510）に、情報処理装置で設定する同時実行ユーザ数を横軸に、時間を縦軸にプロットしたグラフ形式で表示し、510が520よりも長いユーザ数U0からUmはI/Oボトルネック（530）と判定し、510が520よりも短いユーザ数UmからUnはCPUボトルネック（540）と判定することが可能である。
【００３４】
図5に示すようなグラフ化は一例であり、ボトルネック判定結果をグラフ化する方法はこれに限らない。
【実施例２】
【００３５】
図2の実施形態での情報処理装置内ボトルネック判定方法の例について述べる。
情報処理装置内において、処理プログラムが201で実行される一方で、202はCPU性能情報を採取し、210にCPU性能情報を保存する。
具体的には、単位処理当りの命令数を表すダイナミックステップ数、１秒間の命令実行回数を表わすMIPS値、単位時間内にCPUが実際に演算を行っている割合を表すCPUビジー率、単位時間内の処理量を表す処理スループット等が含まれている。
【００３６】
210の情報を元に、220が情報処理装置のCPU側での待ち時間を算出する。
本実施例では採取されたCPU性能情報が210に一旦保存される場合を想定しているが、210のような保存先を省略して、直接CPU性能情報を220が202から読み出しても良い。
CPU待ち時間算出方法は、待ち行列理論を使用する。
【００３７】
具体的には、220は目的とするCPU待ち時間を算出するのに必要なCPU性能情報(210)を260を通じて読み出し、さらにクライアント側の情報処理装置台数(225)を265を通じて読み出し、待ち行列理論を用いて、待ち行列長を算出する。待ち行列理論で使用するサービス窓口数は情報処理装置のCPU台数とする。
【００３８】
待ち行列長の算出方法は、待ち行列シミュレーションを使用する。読み出す情報は、CPU待ち行列長の算出に必要なデータのみで良いため、210の情報全てを用いる必要はなく、特に情報処理装置のCPU台数、CPUビジー率、CPU処理時間と処理スループットを必要とする。225からは、クライアント側の情報処理装置台数を得る。
【００３９】
本実施例では、クライアント側の情報処理装置台数を220で読み出す場合を想定しているが、例えば210内に含むことも可能であり、220開始までに読み出せる状態であれば良い。
【００４０】
待ち行列シミュレーションは、例えば非特許文献1に記述されているsmplと呼ばれるツールを利用して求めることが可能である。ただし、この待ち行列シミュレーションは一例であり、待ち行列長を求めることが可能であれば、他の方法を用いても良い。
【００４１】
例えば、ケンドールの表記法で「Eｋ/D/nモデル」の場合のCPU待ち行列長（Lq）は、情報処理装置のCPU台数n台、CPUビジー率（ρ）、CPU処理時間（Ctime）、処理スループット（λ）、クライアント側の情報処理装置台数（k）を待ち行列シミュレーションの実行引数として渡すことで求まる。
【００４２】
CPU待ち時間（Wq）は、上述で求めたCPU待ち行列長（Lq）と、210から得た処理スループット（λ）をリトルの公式「Wq=Lq/λ」に代入することで求まる。
220で算出したCPU待ち時間は270を通じて230に送る。
【００４３】
230は220から270を通じてCPU待ち時間と、210から280を通じて情報処理装置のCPU性能情報の一つであるジョブ実行時間とCPU処理時間とを読み出し、後述の比較方法で情報処理装置内のボトルネックがCPU側であるかI/O側であるかを判定し、判定結果を290を通じて240に送る。
【００４４】
上述のCPU待ち時間とCPU処理時間の和が単位処理当りのCPU側で経過した時間となる。
【００４５】
情報処理装置内のボトルネックがCPU側であるかI/O側であるかの判定方法は、CPU待ち時間とCPU処理時間の和と、ジョブ実行時間を比較することで求める。
【００４６】
図3および図4で使用する、CPU待ち時間、CPU処理時間、I/O待ち時間、I/O処理時間およびジョブ実行時間は単位処理当りの時間に着目したものである。
CPU待ち時間とCPU処理時間の和と、I/O待ち時間とI/O処理時間の和のどちらか長い方が、ジョブ実行時間となる。
【００４７】
つまり、CPUとI/Oの内、ジョブ実行時間を拘束している方が情報処理装置内のボトルネックである。
【００４８】
図3のように、320のCPU待ち時間と330のCPU処理時間の和が、310のジョブ実行時間よりも小さい場合は、情報処理装置のボトルネックがI/O側と判定する。
逆に、図4のように420のCPU待ち時間と430のCPU処理時間の和が、410のジョブ実行時間よりも小さくない場合は、情報処理装置のボトルネックがCPU側と判定する。
上述の方法によって240に保存されたボトルネック判定結果は、245によって表示を行うことが出来る。
【００４９】
具体的には、245は240より295を通じてボトルネック判定結果を表示するために必要な、単位処理当りのCPU待ち時間とCPU処理時間の和と、ジョブ実行時間を読み出し、目的とする形式に配置・整形して表示する。なお、240に保存されている全ての情報を表示しなくても良い。
【００５０】
表示の形式は、例えば図5に示すように、クライアント側の情報処理装置で設定する同時実行ユーザ数毎の情報処理装置のCPU待ち時間とCPU処理時間の和（520）と、ジョブ実行時間（510）に、クライアント側の情報処理装置で設定する同時実行ユーザ数を横軸に、時間を縦軸にプロットしたグラフ形式で表示し、510が520よりも長いユーザ数U0からUmはI/Oボトルネック（530）と判定し、510が520よりも短いユーザ数UmからUnはCPUボトルネック（540）と判定することが可能である。
【００５１】
図5に示すようなグラフ化は一例であり、ボトルネック判定結果をグラフ化する方法はこれに限らない。
【００５２】
以上説明したように、実施例1および実施例2によれば、システム毎に人手で閾値を与える必要がなく、実測で得た情報処理装置のCPU性能情報と待ち行列理論から定量的かつ自動的に、情報処理装置内のボトルネックがCPU側であるかI/O側であるかを判定することができる。
【図面の簡単な説明】
【００５３】
【図１】本発明の実施例1の情報処理装置内ボトルネック判定方法により、情報処理装置および処理プログラムの性能評価を実施する方法の構成を示す図である。
【図２】本発明の実施例2の情報処理装置内ボトルネック判定方法により、情報処理装置および処理プログラムの性能評価を実施する方法の構成を示す図である。
【図３】図1および図2の情報処理装置内ボトルネック判定方法において、情報処理装置内ボトルネックがI/O側と判定する場合の一例を示す図である。
【図４】図1および図2の情報処理装置内ボトルネック判定方法において、情報処理装置内ボトルネックがCPU側と判定する場合の一例を示す図である。
【図５】図1および図2の情報処理装置内ボトルネック判定方法において、情報処置装置内ボトルネックがCPU側であるかI/O側であるかを判定するための比較時のCPU待ち時間とCPU処理時間の和、ジョブ実行時間をグラフ化した一例を示す図である。
【符号の説明】
【００５４】
100：情報処理装置
101：CPU
102：性能取得手段
110：CPU性能情報
120：CPU待ち時間算出処理
130：比較手段
140：判定結果
145：表示処理
150：CPU性能情報保存
160：CPU待ち時間算出処理にて用いられるCPU性能情報読み出し
170：比較手段にて用いられるCPU待ち時間読み出し
180：比較手段にて用いられるジョブ実行時間およびCPU処理時間読み出し
190：判定結果保存
195：ボトルネック判定結果読み出し
【図１】
2006293578.tif 000003
【図２】
2006293578.tif 000004
【図３】
2006293578.tif 000005
【図４】
2006293578.tif 000006
【図５】
2006293578.tif 000007