JP6918267B2 - ボトルネック検出装置及びボトルネック検出プログラム - Google Patents
ボトルネック検出装置及びボトルネック検出プログラム Download PDFInfo
- Publication number
- JP6918267B2 JP6918267B2 JP2021503314A JP2021503314A JP6918267B2 JP 6918267 B2 JP6918267 B2 JP 6918267B2 JP 2021503314 A JP2021503314 A JP 2021503314A JP 2021503314 A JP2021503314 A JP 2021503314A JP 6918267 B2 JP6918267 B2 JP 6918267B2
- Authority
- JP
- Japan
- Prior art keywords
- bottleneck
- execution
- period
- load
- load information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/443—Optimisation
- G06F8/4441—Reducing the execution time required by the program code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
- G06F11/3419—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
- G06F11/3433—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment for load management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3452—Performance evaluation by statistical analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/445—Exploiting fine grain parallelism, i.e. parallelism at instruction level
- G06F8/4452—Software pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/865—Monitoring of software
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Probability & Statistics with Applications (AREA)
- Debugging And Monitoring (AREA)
Description
単体のプログラムと複数のプログラムとのいずれかである実行対象の少なくとも1回の実行に対して生成された、時間の経過と、負荷として設定されている負荷量との対応を示す負荷情報を取得し、前記負荷量が限界状態で継続する期間を示すボトルネック期間を、前記負荷情報を用いて計算する期間計算部と、
前記負荷情報の生成の元になる前記実行の後に実行される前記実行対象の実行中に、前記ボトルネック期間に実行される関数を、トレース機能を用いて記録する記録スケジューラーと
を備える。
図1から図9を参照して、実施の形態1のボトルネック検出システム1001を説明する。
図1は、ボトルネック検出システム1001の構成を示す。ボトルネック検出システム1001は、ホストコンピュータ10と、ターゲット機器20とを備える。ボトルネック検出システム1001は、コンピュータの性能ボトルネックを検出する。より具体的には、性能ボトルネックの要因となる関数を、プログラムのリビルド及び修正をすることなく検出する。
ホストコンピュータ10は、ターゲット機器20の有するプログラム1、2、3、・・・mを自動的に実行することによって、プログラム1、2、3、・・・mのボトルネックを検出する。図1にプログラム1、2、3、・・・mを示している。プログラム1は、図示はしていないが、関数11、関数12・・・関数1nを有する。プログラム2は、図示はしていないが、関数21、関数22・・・関数2nを有する。プログラムmは、関数m1、関数m2・・・関数mnを有する。
実行対象は複数回実行されるが、実行対象が単体のプログラムであれば同一の単体のプログラムが複数回実行される。図1のプログラム1が単体のプログラムとしての実行対象である場合、プログラム1が複数回実行される。単体のプログラム1の複数回の実行では、1回目に実行した関数の実行順序を2回目以降の実行でも、同じ順序で実行する。
実行対象が複数のプログラムであれば、同一の複数のプログラムが複数回、実行される。図1のプログラム1からプログラムmのm個が複数のプログラムとしての実行対象である場合、プログラム1からプログラムmが複数回、実行される。プログラム1、2、3、・・・mの1回目の実行、2回目の実行・・・のような場合は、具体的には以下のようである。1回目の実行、2回目の実行...における実行は、1回目に実行した複数のプログラム1、2、3、・・・mの実行順序、及び各プログラムを構成する関数の実行順序を、2回目以降の実行も、同じ順序で実行する。
ホストコンピュータ10は、プログラム実行モジュール11及び出力モジュール12を備えている。
プログラム実行モジュール11は、CI(Continuous Integration)ツールが相当する。なお、ターゲット機器20で実行対象を実行するのはターゲット機器20のプロセッサである。プログラム実行モジュール11は、性能値記録モジュール21及びボトルネック期間計算部22の機能をオン、オフする。プログラム実行モジュール11は、実行関数記録スケジューラー24を実行する。プログラム実行モジュール11は、実行対象を実行する。
実行関数記録スケジューラー24は、記録スケジューラーである。
(2)トレース出力モジュール12は、実行対象のボトルネックの要因になる関数のトレース結果を出力する。
図2は、ボトルネック期間Tbを模式的に示す。図2において、開始時刻Tsからボトルネックの終了時刻Teまでがボトルネック期間Tbである。ボトルネック期間Tbの計算方法は後述する。
(3)実行関数記録モジュール23は、記録スケジューラーである実行関数記録スケジューラー24によって機能がオン状態にされている時には、実行された関数を、時系列に記録する。
(4)実行関数記録スケジューラー24は、実行関数記録モジュール23の機能をオンにして、実行関数記録モジュール23に、ボトルネック期間Tbに実行される関数を、時系列で記録させる。
実行関数記録スケジューラー24は実行される関数の記録タイミングを制御するスケジューラーである。
(5)第1記憶部31は、性能値記録モジュール21の出力する複数の性能データ311を格納する。
(6)第2記憶部32は、ボトルネック期間計算部22の出力するボトルネック期間Tbを格納する。
(7)第3記憶部33は、実行関数記録モジュール23の記録した、実行関数トレースデータ331を格納する。
(8)第4記憶部34は、プログラム実行モジュール11によって実行される、複数のプログラムを格納する。図1では、プログラムmが、関数m1、m2、・・・mnを有することを示している。ボトルネック期間Tbに関数m1と関数m2とが実行された場合、実行関数記録モジュール23によって、関数m1と関数m2の実行が、時刻と共に記録される。
<ターゲット機器20の動作の概要>
図3は、実施の形態1のターゲット機器20の動作の概要を示すフローチャートである。図3の括弧内は動作の主体を示す。ターゲット機器20の動作は、関数記録方法に相当する。また、ターゲット機器20の動作は、ボトルネック検出プログラムの処理に相当する。
(1)トレースの対象となる実行対象にトレース機能を設定するのではなく、トレース機能である実行関数記録モジュール23のON、OFFを切り替えることによって、トレースログの記録容量を小さくする。
(2)ターゲット機器20は、1回目の実行では、トレースログの記録期間として、ボトルネック期間Tbを決定する。
(3)ターゲット機器20は、2回目の実行では、ボトルネック期間Tbに到達した際に、トレース機能である実行関数記録モジュール23をONにして、トレースログを記録する。ボトルネック期間Tbが経過すると、実行関数記録スケジューラー24が実行関数記録モジュール23をオフにする。
ステップS11において、1回目の実行対象の実行で、性能値記録モジュール21が、性能データを取得し、性能データ311をグラフ化して、性能グラフを生成する。
図5は、性能データ311及び性能グラフを示す。左の性能グラフの枠の範囲が、右の性能データに対応する。性能データ311は、CPU負荷またはIOスループットのような負荷値を示す負荷情報が、時系列で記録されたデータである。負荷値は0%から100%の範囲とする。負荷値は、原則、システム全体の値とする。時刻は、起動あるいは特定のアプリケーション実行からの、経過時刻とする。絶対時刻(現実の時計時刻)と区別するため、相対時刻と呼ぶ。図5の右に示す性能データ311はテキストの生データである。図5では、相対時刻12:02:21.100に、CPU負荷率が10%のように示している。性能グラフは、横軸が相対時刻、縦軸が負荷値である。図1の第1記憶部31には性能データ311を示しているが、第1記憶部31には性能グラフも格納されている。
ステップS12において、ボトルネック期間計算部22が、性能グラフからボトルネック期間Tbを計算する。性能グラフは性能データが形式的にグラフ化されているに過ぎず、性能グラフは性能データである。
図6は、ボトルネック期間Tbを示す。ボトルネック期間Tbは、ボトルネックが発生した開始時刻Tsと終了時刻Teで表される。ボトルネック期間計算部22は、複数のボトルネック期間Tbを計算することも可能である。図6は、複数のボトルネック期間Tbを示している。ID(identification)によって、ボトルネック期間Tbが区別される。IDはオプションである。ID=1は1回目のボトルネック期間Tbを示し、ID=2は2回目のボトルネック期間Tbを示す。
具体的には以下のようである。
図7に示すステップS51において、ボトルネック期間計算部22は、ターゲット機器20の性能グラフの時間帯を大まかに分割し、連続する3つの時間帯の中央の時間帯の両隣の時間帯の平均負荷値を計算する。図7では、ボトルネック期間計算部22は、範囲41の平均負荷値[X−1]及び範囲43の平均負荷値[X+1]を計算する。そして、ボトルネック期間計算部22は、平均負荷値[X+1]と平均負荷値[X−1]との差の絶対値を、式1のように、平均負荷値変化量Xとして計算する。
平均負荷値変化量X=|[X+1]−[X−1]| (式1)
ステップS52において、複数の平均負荷値変化量Xのうち、ボトルネック期間計算部22は、最大の平均負荷値変化量Xを、式2から抽出する。
Max[平均負荷値変化量X:|平均負荷値[x+1]−平均負荷値[x−1]|] (式2)
式2は、複数の平均負荷値変化量Xのうち、最大の平均負荷値変化量Xを示している。平均変化量Xの右側の式は、平均負荷値変化量Xが式1で計算されることを示している。
ステップS53において、ボトルネック期間計算部22は、時間の範囲をさらに細分化して時間帯を分割し、ステップS51の式1、ステップS52の式2を計算する。
上記のステップS51からステップS54により、範囲44をボトルネック期間Tbから除去し、範囲45をボトルネック期間Tbとして計算することができる。
具体的には以下のようである。実行関数記録スケジューラー24は、現在の実行時刻を定期的に取得する。
ステップS15において、実行関数記録スケジューラー24は、ボトルネック期間Tbかどうかを判定する。つまり、実行関数記録スケジューラー24は、ボトルネック期間Tbの開始時刻Tsになったかを判定する。
また、ステップS15において、実行関数記録スケジューラー24は、ボトルネック期間Tbの終了時刻Teになったかを判定する。終了時刻Teになった場合(ステップS15でNO)、実行関数記録スケジューラー24は、実行関数記録モジュール23の機能をオフにする。
これにより、実行関数記録モジュール23は、ボトルネック期間Tbが終了する終了時刻Teまで関数の実行の記録を継続し、ボトルネック期間Tbの終了と共に停止する。
図8は、実行関数トレースデータ331を示す。実行関数トレースデータ331は、アプリケーション及びシステムを構成する関数の実行の開始時刻と、関数の実行状態との組を記録したデータある。例えば、相対時刻12:02:21.100では、関数FuncA()の実行状態がStartであり、相対時刻12:02:21.150では、関数FuncA()の実行状態が、Endである。実行関数記録スケジューラー24によって実行関数記録モジュール23がONの状態の場合、実行関数記録モジュール23は、関数の実行を記録する。OFFの場合は実行関数記録モジュール23は関数の実行を記録しない。ユーザは、ホストコンピュータ10の出力モジュール12を介して、実行関数トレースデータ331を閲覧可能である。なお、ボトルネック期間Tbに対応して、実行関数記録スケジューラー24が実行関数記録モジュール23をオン、オフすることによって、実行関数の記録開始及び実行関数の記録停止をすることが特徴である。
(1)まず、性能データ311が、性能値記録モジュール21によって生成される。
(2)次に、ボトルネック期間Tbが、ボトルネック期間計算部22によって生成される。
(3)実行関数記録スケジューラー24は、ボトルネック期間Tbの開始時刻Tsになると実行関数記録モジュール23の機能をオフからオンにし、ボトルネック期間Tbの終了時刻Teになると実行関数記録モジュール23の機能をオフにする。ボトルネック期間Tb以外では、実行関数記録モジュール23がオフである。実行関数記録モジュール23は、ボトルネック期間Tbにおける関数の実行状態を、実行関数トレースデータ331として記録する。
実施の形態1のターゲット機器20によれば、実行対象を修正またはリビルドする必要がないので、実行関数記録スケジューラー24が実行関数記録モジュール23を用いて行う、トレースログ記録(ステップS16)の記録時間を短くできる。
また、ターゲット機器20の実行対象を書き換える必要がないため、ターゲット機器20の実行対象の実行時間に与える影響が従来に比べ小さく、ビルドに時間がかかる組込機器に対しては効果的である。
また、ボトルネック期間Tbにのみ、実行関数記録モジュール23はトレースログを生成するので、従来に比べ、ログ記録容量を小さくできる。
図10は、実施の形態2のボトルネック検出システム1002の構成図である。図10を参照して実施の形態2のボトルネック検出システム1002を説明する。ボトルネック検出システム1002は、ボトルネック期間Tbで実行関数のトレースログを記録する点では、実施の形態1のボトルネック検出システム1001と同じである。ボトルネック検出システム1002のボトルネック検出システム1001との相違点は、ボトルネック期間計算部22、実行関数記録スケジューラー24及びボトルネック期間を格納する第2記憶部32が、ホストコンピュータ10に配置されている点である。ボトルネック検出システム1002では、ホストコンピュータ10がボトルネック検出装置100である。
ボトルネック期間計算部22および実行関数記録スケジューラー24が、ホストコンピュータ10に配置されることにより、ターゲット機器20のソフトウェア構成を変更することなく、ボトルネック要因の関数を特定できる。
図11、図12、図13を参照して実施の形態3のボトルネック検出システム1003を説明する。
図11は、実施の形態3のボトルネック検出システム1003の構成図である。
ボトルネック検出システム1003では、ターゲット機器20のボトルネック期間計算部22が、近似グラフ作成部22aを有する。
図12は、実施の形態3のターゲット機器20の動作の概要を示すフローチャートである。
図13は、実施の形態3のターゲット機器20の動作の詳細を示すフローチャートである。ボトルネック検出システム1003では、ターゲット機器20がボトルネック検出装置100である。
(1)ステップS301において、1回目の実行対象の実行で、性能値記録モジュール21が、第1の性能グラフを生成する。
(2)ステップS302において、2回目の実行対象の実行で、性能値記録モジュール21が、第2の性能グラフを生成する。
(3)近似グラフ作成部22aは、第1の性能グラフと第2の性能グラフの近似度APを0から1.0の範囲で計測する。AP=0は不一致であり、AP=1.0は完全一致である。また、閾値はAP=0.7とする。ステップS303において、近似グラフ作成部22aは、近似度APが閾値以上の場合に、二つのグラフの近似グラフを生成する。近似グラフは、近似情報である。
(4)ステップS304において、ボトルネック期間計算部22は、近似グラフに対して、ボトルネック期間Tbを計算する。
(5)ステップS305において、実行関数記録スケジューラー24は、3回目の実行対象の実行で、ステップS304で計算したボトルネック期間Tbにおいて、トレースログを生成する。
ステップS31において、性能値記録モジュール21が、1回目の実行対象の実行で、第1の性能グラフを生成する。
ステップS32において、ボトルネック期間計算部22が、第1の性能グラフにボトルネック期間Tbが存在するかどうか判定する。ボトルネック期間Tbが存在する場合、処理は、ステップS33に進む。
ステップS33において、性能値記録モジュール21が、2回目の実行対象の実行で、第2の性能グラフを生成する。
ステップS34において、ボトルネック期間計算部22が、第2の性能グラフにボトルネック期間Tbが存在するかどうか判定する。ボトルネック期間Tbが存在する場合、処理は、ステップS35に進む。
ステップS36において、近似グラフ作成部22aが、近似度APが閾値0.7以上かどうかを判定する。近似度APが閾値0.7以上であれば、処理は、ステップS37に進む。
ステップS37において、近似グラフ作成部22aが、第1のグラフと第2のグラフとの、近似グラフを生成する。
ステップS38において、ボトルネック期間計算部22が、近似グラフから
ボトルネック期間Tbを計算する。
ステップS39において、実行関数記録スケジューラー24が実行関数記録モジュール23を用いて、3回目の実行対象の実行で、ボトルネック期間Tbに実行される関数を記録する。
実施の形態3によれば、第1の性能グラフと第2の性能グラフとの相違が考慮されるので、ボトルネックが発生している可能性の高いボトルネック期間Tbを得ることができる。
図14、図15を参照して実施の形態3のボトルネック検出システム1004を説明する。ボトルネック検出システム1003のシステム構成は、ボトルネック検出システム1001と同じであるので図は省略する。
図14は、ボトルネック検出システム1004のターゲット機器20の動作概要を示すフローチャートである。
図15は、後述のOR方式を説明する図である。ターゲット機器20はボトルネック検出装置100である。図14を参照してターゲット機器20の動作を説明する。
具体的には以下のようである。
(2)ステップS402において、ボトルネック期間計算部22が、第1の性能グラフから第1のボトルネック期間Tb1を計算する。
(3)ステップS403において、2回目の実行対象の実行で、性能値記録モジュール21が、第2の性能グラフを生成する。
(4)ステップS404において、ボトルネック期間計算部22が、第2の性能グラフから第2のボトルネック期間Tb2を計算する。
(5)ステップS405において、ボトルネック期間計算部22が、第1のボトルネック期間Tb1と、第2のボトルネック期間Tb2とから、新たなボトルネック期間Tb3を計算する。ボトルネック期間Tbを補正する点では実施の形態3と同様である。
実施の形態4では、ボトルネック期間Tbの開始時刻Tsと終了時刻Teとを、第1のボトルネック期間Tb1と第2のボトルネック期間Tb2とのOR(最も早い開始時刻Tsから最も遅い終了時刻Te)を取ることで補正する。図15ではORによって得られたボトルネック期間Tb3は、第1のボトルネック期間Tb1の開始時刻Ts1と、第2のボトルネック期間Tb2の終了時刻Te2とを持つ。
あるいは、第1のボトルネック期間Tb1と第2のボトルネック期間Tb2とのAND(第1のボトルネック期間Tb1と第2のボトルネック期間Tb2との重複期間)を、新たなボトルネック期間Tb3として生成してもよい。
(6)ステップS406において、実行関数記録スケジューラー24は、3回目の実行対象の実行で、ステップS405で計算した新たなボトルネック期間Tb3において、関数のトレースログを生成する。
ボトルネック期間どうしのORを取ることで、トレースログの記録サイズは増えるものの、実行関数の取りこぼしを防ぐことができる。
また、ボトルネック期間どうしのANDを取ることで、ボトルネックに大きく影響する関数を抽出できる。
(2)性能値記録モジュール21による性能データ311の記録開始は、実行対象の起動直後から記録しても構わない。
しかし、操作または通信受信のような外部イベント、あるいは、特定の関数の実行開始時刻を、記録開始の契機としてもよい。
(3)JenkinsのようなCIツールによる各部及び各モジュールの実行を想定している。しかし、各フローチャートの処理が自動実行できれば、その限りではない。例えば、ターゲット機器20にバッチファイルまたはスクリプトファイルを組み込んでおき、自動でフローチャートの流れを実行できれば、CIツールなしの構成でも構わない。
実施の形態5は、実施の形態1から実施の形態4で説明したボトルネック検出装置100のハードウェア構成を説明する。実施の形態2ではボトルネック検出装置100はホストコンピュータ10である。実施の形態1、3,4ではボトルネック検出装置100はターゲット機器20である。
図16は、ボトルネック検出装置100である図1及び図11のターゲット機器20のハードウェア構成を示す。
図1、図11のターゲット機器20では、性能値記録モジュール21、ボトルネック期間計算部22、実行関数記録モジュール23及び実行関数記録スケジューラー24は、ボトルネック検出装置100のプロセッサ110がボトルネック検出プログラム101を実行することで実現される。図1、図11のターゲット機器20では、第1記憶部31から第5記憶部35は、ボトルネック検出装置100の主記憶装置120または補助記憶装置130に相当する。
図16に示すように、ボトルネック検出プログラム101は、性能値記録モジュール21、ボトルネック期間計算部22、実行関数記録モジュール23及び実行関数記録スケジューラー24に対応する、性能値記録プログラム、ボトルネック期間計算プログラム、実行関数記録プログラム及び実行関数記録スケジューラープログラムから構成される。
出力IF50は、各種機器が接続され、各種機器にプロセッサ110によりデータが出力されるポートである。
通信IF60はプロセッサ110が他の装置と通信するための通信ポートである。
他の装置としては、ホストコンピュータ10である。
ボトルネック検出装置100は、プロセッサ110を代替する複数のプロセッサを備えていてもよい。これら複数のプロセッサは、ボトルネック検出プログラム101の実行を分担する。それぞれのプロセッサは、プロセッサ110と同じように、ボトルネック検出プログラム101を実行する装置である。ボトルネック検出プログラム101により利用、処理または出力されるデータ、情報、信号値及び変数値は、主記憶装置120、補助記憶装置130、または、プロセッサ110内のレジスタあるいはキャッシュメモリに記憶される。
図10のホストコンピュータ10では、ボトルネック期間計算部22及び実行関数記録スケジューラー24は、ボトルネック検出装置100のプロセッサ110がボトルネック検出プログラム101aを実行することで実現される。
ボトルネック検出プログラム101aは、ボトルネック期間計算部22及び実行関数記録スケジューラー24に対応する、ボトルネック期間計算プログラム及び実行関数記録スケジューラープログラムから構成される。
補助記憶装置130には、ボトルネック検出プログラム101a及びボトルネック期間101aが記憶されている。
図16及び図18のボトルネック検出装置100では、ボトルネック検出装置100の機能がソフトウェアで実現されるが、ボトルネック検出装置100の機能がハードウェアで実現されてもよい。
図18は、ボトルネック検出装置100の機能がハードウェアで実現される構成を示す。図18の電子回路90は、プロセッサ110、主記憶装置120、補助記憶装置130、入力IF140、出力IF150及び通信IF160の機能を実現する専用の電子回路である。電子回路90は、信号線91に接続している。電子回路90は、具体的には、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックIC、GA、ASIC、または、FPGAである。GAは、Gate Arrayの略語である。ASICは、Application Specific Integrated Circuitの略語である。FPGAは、Field−Programmable Gate Arrayの略語である。ボトルネック検出装置100の構成要素の機能は、1つの電子回路で実現されてもよいし、複数の電子回路に分散して実現されてもよい。また、ボトルネック検出装置100の構成要素の一部の機能が電子回路で実現され、残りの機能がソフトウェアで実現されてもよい。
Claims (5)
- 単体のプログラムと複数のプログラムとのいずれかである実行対象の少なくとも1回の実行に対して生成された、時間の経過と、負荷として設定されている負荷量との対応を示す負荷情報を取得し、前記負荷量が限界状態で継続する期間を示すボトルネック期間を、前記負荷情報を用いて計算するボトルネック期間計算部と、
前記負荷情報の生成の元になる前記実行の後に実行される前記実行対象の実行中に、前記ボトルネック期間に実行される関数を、トレース機能を用いて記録する記録スケジューラーと
を備え、
前記ボトルネック期間計算部は、
前記負荷情報を連続する3つ以上の複数の時間帯に分割し、時間的に連続する3つの時間帯において中央の時間帯の両隣の2つの時間帯である第1の時間帯と第2の時間帯とのそれぞれの負荷平均値に基づき、前記ボトルネック期間を計算するボトルネック検出装置。 - 前記負荷情報は、前記実行対象の1回の実行に対して生成されており、
前記ボトルネック期間計算部は、
前記負荷情報から、前記ボトルネック期間を計算する請求項1に記載のボトルネック検出装置。 - 前記ボトルネック期間計算部は、
前記実行対象の複数回の実行ごとに生成された複数の負荷情報を取得し、前記複数の負荷情報から、前記複数の負荷情報のそれぞれに近似する近似情報を生成し、前記近似情報から、前記ボトルネック期間を計算する請求項2に記載のボトルネック検出装置。 - 前記ボトルネック期間計算部は、
前記実行対象の複数回の実行ごとに生成された複数の負荷情報を取得し、前記複数の負荷情報ごとに前記ボトルネック期間を計算し、複数の前記ボトルネック期間を用いて、新たなボトルネック期間を生成し、
前記記録スケジューラーは、
前記負荷情報の生成の元になる前記実行の後に実行される前記実行対象の実行中に、前記新たなボトルネック期間に実行される関数を、トレース機能を用いて記録する請求項1に記載のボトルネック検出装置。 - コンピュータに、
単体のプログラムと複数のプログラムとのいずれかである実行対象の少なくとも1回の実行に対して生成された、時間の経過と、負荷として設定されている負荷量との対応を示す負荷情報を取得し、前記負荷量が限界状態で継続する期間を示すボトルネック期間を、前記負荷情報を用いて計算し、前記負荷情報を連続する3つ以上の複数の時間帯に分割し、時間的に連続する3つの時間帯において中央の時間帯の両隣の2つの時間帯である第1の時間帯と第2の時間帯とのそれぞれの負荷平均値に基づき、前記ボトルネック期間を計算する期間計算処理と、
前記負荷情報の生成の元になる前記実行の後に実行される前記実行対象の実行中に、前記ボトルネック期間に実行される関数を、トレース機能を用いて記録するスケジュール処理と
を実行させるボトルネック検出プログラム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2019/008667 WO2020178985A1 (ja) | 2019-03-05 | 2019-03-05 | ボトルネック検出装置及びボトルネック検出プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP6918267B2 true JP6918267B2 (ja) | 2021-08-11 |
JPWO2020178985A1 JPWO2020178985A1 (ja) | 2021-09-13 |
Family
ID=72338476
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021503314A Active JP6918267B2 (ja) | 2019-03-05 | 2019-03-05 | ボトルネック検出装置及びボトルネック検出プログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US20210373866A1 (ja) |
JP (1) | JP6918267B2 (ja) |
WO (1) | WO2020178985A1 (ja) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001337790A (ja) * | 2000-05-24 | 2001-12-07 | Hitachi Ltd | 記憶システム及びその階層管理制御方法 |
JP2003140928A (ja) * | 2001-11-02 | 2003-05-16 | Fujitsu Ltd | 仮想マシン内部情報自動取得システム |
US8103685B1 (en) * | 2007-03-30 | 2012-01-24 | Emc Corporation | Methods and apparatus for capturing last discovery time of managed objects |
JPWO2012008621A1 (ja) * | 2010-07-16 | 2013-09-09 | 日本電気株式会社 | 指標監視システム、指標監視方法およびプログラム |
US20140317286A1 (en) * | 2011-12-15 | 2014-10-23 | Hitachi, Ltd. | Monitoring computer and method |
-
2019
- 2019-03-05 JP JP2021503314A patent/JP6918267B2/ja active Active
- 2019-03-05 WO PCT/JP2019/008667 patent/WO2020178985A1/ja active Application Filing
-
2021
- 2021-08-11 US US17/399,157 patent/US20210373866A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
WO2020178985A1 (ja) | 2020-09-10 |
JPWO2020178985A1 (ja) | 2021-09-13 |
US20210373866A1 (en) | 2021-12-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8661306B2 (en) | Baseboard management controller and memory error detection method of computing device utilized thereby | |
US9465675B2 (en) | Communication control device, information processing apparatus, parallel computer system, and control method for parallel computer system | |
JP7004712B2 (ja) | プログラム可能クロックモニタ | |
US10095542B2 (en) | Cooperative thread array granularity context switch during trap handling | |
KR20140024060A (ko) | 랭크-특정 순환 중복 검사 | |
JP3938580B2 (ja) | 情報処理装置、情報処理方法、半導体装置、コンピュータプログラム | |
US10289418B2 (en) | Cooperative thread array granularity context switch during trap handling | |
US20100332914A1 (en) | Dump output control apparatus and dump output control method | |
TWI596612B (zh) | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 | |
JP6918267B2 (ja) | ボトルネック検出装置及びボトルネック検出プログラム | |
US9720037B2 (en) | Debug circuit, semiconductor device, and debug method | |
US9753084B2 (en) | Debug circuit, semiconductor device, and debug method | |
US20110066880A1 (en) | Apparatus and method for compensating for system memory error | |
US10534683B2 (en) | Communicating outstanding maintenance tasks to improve disk data integrity | |
US9043586B2 (en) | Memory training results corresponding to a plurality of memory modules | |
US11256537B2 (en) | Interrupt control apparatus, interrupt control method, and computer readable medium | |
US20200257545A1 (en) | Simulation device, simulation method, and computer readable medium | |
JP6318976B2 (ja) | デバッグ回路、デバッガ装置、半導体装置及びデバッグ方法 | |
US10452368B2 (en) | Recording medium having compiling program recorded therein, information processing apparatus, and compiling method | |
US20200004503A1 (en) | Information processing device, information processing method, and computer readable medium | |
US20180253349A1 (en) | Fault tolerant operating metohd and electronic device using the same | |
US11861181B1 (en) | Triple modular redundancy (TMR) radiation hardened memory system | |
JPWO2019171445A1 (ja) | トレーサビリティ管理装置、トレーサビリティ管理方法及びトレーサビリティ管理プログラム | |
KR20170065845A (ko) | 프로세서 및 제어 방법 | |
JP2007018440A (ja) | アーキテクチャ検証装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210324 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20210324 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20210324 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20210406 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210525 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20210622 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20210720 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6918267 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |