図面 (/)

技術 情報処理装置、プロセッサ管理方法、およびプログラム

出願人 富士通株式会社
発明者 奥野崇及川智央
出願日 2015年6月25日 (6年0ヶ月経過) 出願番号 2015-127443
公開日 2017年1月12日 (4年6ヶ月経過) 公開番号 2017-010421
状態 特許登録済
技術分野 デバッグ/監視 マルチプログラミング マルチプロセッサ
主要キーワード 選定モジュール エラー情報収集 CPU間 オフライン化 FCカード 平均使用率 運用期間 CPU群
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2017年1月12日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (19)

課題

プロセッサ信頼性評価に有用な情報を確実に取得できるようにする。

解決手段

情報処理装置10の記憶部15は、複数のプロセッサ11〜14それぞれの使用時間とエラー発生状況とを示す動作情報を記憶する。情報処理装置10の制御部16は、プログラム実行開始時に、動作情報に基づいて、複数のプロセッサ11〜14のうちの使用時間が短い方から所定数のプロセッサを、動作させる第1のプロセッサとして選択する。次に制御部16は、選択されていない第2のプロセッサを停止した状態で、第1のプロセッサにプログラムを実行させ、第1のプロセッサの使用時間とエラー発生状況とを取得する。そして制御部16は、取得した使用時間とエラー発生状況とを記憶部15に格納する。

概要

背景

近年のコンピュータでは、1台のコンピュータ内に複数のプロセッサが搭載されている場合がある。プロセッサは、CPU(Central Processing Unit)とも呼ばれる。1つのプロセッサ内に、複数のプロセッサコアが搭載されている場合もある。この場合の複数のプロセッサコアそれぞれが、コンピュータ内の独立したプロセッサとして機能する。以下、プロセッサまたはCPUと呼んだ場合、プロセッサコアを含むものとする。

マルチコアプロセッサの普及により、コンピュータ内のプロセッサ数増加傾向にある。従来は、プロセッサが増加しても、システム全体の負荷を考慮せず、プロセッサをすべて使用していた。この場合、いずれか1つのプロセッサに訂正不可能なエラーが発生すると、OS(Operating System)の動作を継続できなくなり、システムがダウンする。

なお、訂正不可能なエラーが発生しやすいプロセッサを、訂正可能なエラー数から判断し、運用中のシステムダウンの抑止措置を採ることも可能である。例えば訂正可能なエラー数が一定数に達したプロセッサが検出されると、そのプロセッサの使用を停止することができる。これにより、訂正不可能なエラーの発生が抑止される。

システムの障害発生時の対応に関する技術としては、例えば、命令再試行可能なエラー発生時、システムの負荷状況及びエラー頻度状況によりプロセッサリリーフ、命令再試行処理を行う技術がある。また、システムリセット時の初期化処理において異常が発生しても、システムが起動しなくなることを回避する技術もある。さらに、サーバ等の処理装置障害が発生した場合の復旧時間の長期化をより確実に抑えられるようにする技術もある。

概要

プロセッサの信頼性評価に有用な情報を確実に取得できるようにする。情報処理装置10の記憶部15は、複数のプロセッサ11〜14それぞれの使用時間とエラー発生状況とを示す動作情報を記憶する。情報処理装置10の制御部16は、プログラム実行開始時に、動作情報に基づいて、複数のプロセッサ11〜14のうちの使用時間が短い方から所定数のプロセッサを、動作させる第1のプロセッサとして選択する。次に制御部16は、選択されていない第2のプロセッサを停止した状態で、第1のプロセッサにプログラムを実行させ、第1のプロセッサの使用時間とエラー発生状況とを取得する。そして制御部16は、取得した使用時間とエラー発生状況とを記憶部15に格納する。

目的

1つの側面では、本件は、プロセッサの信頼性評価に有用な情報を確実に取得できるようにすることを目的とする

効果

実績

技術文献被引用数
0件
牽制数
0件

この技術が所属する分野

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

複数のプロセッサそれぞれの使用時間とエラー発生状況とを示す動作情報を記憶する記憶部と、プログラム実行開始時に、前記動作情報に基づいて、前記複数のプロセッサのうちの使用時間が短い方から所定数のプロセッサを、動作させる第1のプロセッサとして選択し、選択されていない第2のプロセッサを停止した状態で、前記第1のプロセッサに前記プログラムを実行させ、前記第1のプロセッサの使用時間とエラー発生状況とを取得し、取得した該使用時間と該エラー発生状況とを前記記憶部に格納する制御部と、を有する情報処理装置

請求項2

前記制御部は、前記第1のプロセッサの選択では、エラー発生状況に基づく前記複数のプロセッサそれぞれの信頼性に差がない場合には、使用時間が短いプロセッサから順に前記第1のプロセッサとして選択し、前記複数のプロセッサそれぞれの信頼性に差がある場合には、信頼性の高いプロセッサから順に前記第1のプロセッサとして選択する、請求項1記載の情報処理装置。

請求項3

前記制御部は、前記第1のプロセッサの選択では、単位使用時間当たりのエラー数が少ないプロセッサほど信頼性が高いと判断する、請求項2記載の情報処理装置。

請求項4

前記制御部は、プロセッサの稼働時間に該プロセッサの平均使用率乗算した値を、該プロセッサの使用時間とする、請求項1乃至3のいずれかに記載の情報処理装置。

請求項5

コンピュータが、プログラムの実行開始時に、複数のプロセッサそれぞれの使用時間とエラー発生状況とを示す動作情報に基づいて、前記複数のプロセッサのうちの使用時間が短い方から所定数のプロセッサを、動作させる第1のプロセッサとして選択し、選択されていない第2のプロセッサを停止した状態で、前記第1のプロセッサに前記プログラムを実行させ、前記第1のプロセッサの使用時間とエラー発生状況とを取得し、取得した該使用時間と該エラー発生状況とを記憶部に格納する、プロセッサ管理方法

請求項6

コンピュータに、プログラムの実行開始時に、複数のプロセッサそれぞれの使用時間とエラー発生状況とを示す動作情報に基づいて、前記複数のプロセッサのうちの使用時間が短い方から所定数のプロセッサを、動作させる第1のプロセッサとして選択し、選択されていない第2のプロセッサを停止した状態で、前記第1のプロセッサに前記プログラムを実行させ、前記第1のプロセッサの使用時間とエラー発生状況とを取得し、取得した該使用時間と該エラー発生状況とを記憶部に格納する、処理を実行させるプログラム。

技術分野

0001

本発明は、情報処理装置プロセッサ管理方法、およびプログラムに関する。

背景技術

0002

近年のコンピュータでは、1台のコンピュータ内に複数のプロセッサが搭載されている場合がある。プロセッサは、CPU(Central Processing Unit)とも呼ばれる。1つのプロセッサ内に、複数のプロセッサコアが搭載されている場合もある。この場合の複数のプロセッサコアそれぞれが、コンピュータ内の独立したプロセッサとして機能する。以下、プロセッサまたはCPUと呼んだ場合、プロセッサコアを含むものとする。

0003

マルチコアプロセッサの普及により、コンピュータ内のプロセッサ数増加傾向にある。従来は、プロセッサが増加しても、システム全体の負荷を考慮せず、プロセッサをすべて使用していた。この場合、いずれか1つのプロセッサに訂正不可能なエラーが発生すると、OS(Operating System)の動作を継続できなくなり、システムがダウンする。

0004

なお、訂正不可能なエラーが発生しやすいプロセッサを、訂正可能なエラー数から判断し、運用中のシステムダウンの抑止措置を採ることも可能である。例えば訂正可能なエラー数が一定数に達したプロセッサが検出されると、そのプロセッサの使用を停止することができる。これにより、訂正不可能なエラーの発生が抑止される。

0005

システムの障害発生時の対応に関する技術としては、例えば、命令再試行可能なエラー発生時、システムの負荷状況及びエラー頻度状況によりプロセッサリリーフ、命令再試行処理を行う技術がある。また、システムリセット時の初期化処理において異常が発生しても、システムが起動しなくなることを回避する技術もある。さらに、サーバ等の処理装置障害が発生した場合の復旧時間の長期化をより確実に抑えられるようにする技術もある。

先行技術

0006

特開平6−324897号公報
特開2010−61419号公報
特開2013−164762号公報

発明が解決しようとする課題

0007

複数のプロセッサを有するコンピュータシステムでは、そのシステムの性能を使い切っていないことがある。このような場合、訂正可能なエラー数が一定数に達したプロセッサが存在しなくても、システムの省電力化などの目的で、一部のプロセッサを停止させておくことができる。このように、性能に余力があるときに一部のプロセッサを停止させるという運用を継続すると、各プロセッサの稼働時間に大きな差が生じることがある。

0008

各プロセッサの稼働時間の実績が大きく異なる場合に、プロセッサごとの訂正可能なエラー数だけでプロセッサの信頼性を判断すると、信頼性を正確には判断できない。例えば、他のプロセッサよりも長時間稼働したプロセッサは、他のプロセッサよりも訂正可能なエラーが多く検出されて当然であり、訂正可能なエラー数が他のプロセッサよりも多いからといって、信頼性が低いと評価することはできない。そこで、稼働実績を考慮して各プロセッサの信頼性を評価することが考えられる。

0009

しかし、ほとんど使用されてないプロセッサが存在すると、そのプロセッサの稼働実績は存在せず、稼働実績に関する情報を取得できない。稼働実績を用いた信頼性評価において、稼働実績に関する情報が取得できないプロセッサがあると、プロセッサ間の信頼性の優劣を正しく判断することができない。その結果、訂正不可能なエラーが発生しやすいプロセッサの判断を誤る可能性が生じる。

0010

1つの側面では、本件は、プロセッサの信頼性評価に有用な情報を確実に取得できるようにすることを目的とする。

課題を解決するための手段

0011

1つの案では、記憶部と制御部とを有する情報処理装置が提供される。記憶部は、複数のプロセッサそれぞれの使用時間とエラー発生状況とを示す動作情報を記憶する。制御部は、プログラムの実行開始時に、動作情報に基づいて、複数のプロセッサのうちの使用時間が短い方から所定数のプロセッサを、動作させる第1のプロセッサとして選択する。次に制御部は、選択されていない第2のプロセッサを停止した状態で、第1のプロセッサにプログラムを実行させ、第1のプロセッサの使用時間とエラー発生状況とを取得する。そして制御部は、取得した該使用時間と該エラー発生状況とを記憶部に格納する。

発明の効果

0012

1態様によれば、プロセッサの信頼性評価に有用な情報を確実に取得できる。

図面の簡単な説明

0013

第1の実施の形態に係る情報処理装置の一例を示す図である。
第2の形態に用いるサーバのハードウェアの一構成例を示す図である。
システムボードの詳細とサーバ内で保持される情報の例を示す図である。
稼働時間・エラー管理簿の一例を示す図である。
エラーログの一例を示す図である。
CPU動作管理機能を示すブロック図である。
システム起動時のCPU動作管理処理の手順の一例を示すフローチャートである。
CPU数算出処理の手順の一例を示すフローチャートである。
CPU選定処理の手順の一例を示すフローチャートである。
システム停止時のCPU動作管理処理の手順の一例を示すフローチャートである。
使用率採取処理の手順の一例を示すフローチャートである。
エラー情報収集処理の手順の一例を示すフローチャートである。
初回起動時における使用CPU選定の第1の例を示す図である。
初回起動時における使用CPU選定の第2の例を示す図である。
回目起動時における使用CPU選定例を示す図である。
3回目起動時における使用CPU選定例を示す図である。
n回目の起動時における使用CPU選定例を示す図である。
n+m回目の起動時における使用CPU選定例を示す図である。

実施例

0014

以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第1の実施の形態〕
図1は、第1の実施の形態に係る情報処理装置の一例を示す図である。情報処理装置10は、複数のプロセッサ(CPU)11〜14、記憶部15、および制御部16を有する。情報処理装置10内では、CPU11〜14それぞれに識別番号が付与されている。CPU11の識別番号は「1」、CPU12の識別番号は「2」、CPU13の識別番号は「3」、CPU14の識別番号は「4」である。

0015

記憶部15は、複数のCPU11〜14それぞれの使用時間とエラー発生状況とを示す動作情報を記憶する。エラー発生状況には、例えば訂正可能なエラーの発生回数が示されている。例えば記憶部15内には、動作情報管理テーブル15aが設けられ、動作情報管理テーブル15aに動作情報が登録される。動作情報管理テーブル15aには、例えばCPU11〜14ごとに、使用時間とエラー数とが登録されている。動作情報管理テーブル15aに示される各CPU11〜14のエラー数は、例えばそのCPUから繰り返し収集したエラー発生状況に示されるエラー数の積算値である。

0016

制御部16は、プログラムの実行開始時に、記憶部15内の動作情報に基づいて、複数のCPU11〜14のうちの使用時間が短い方から所定数のCPUを、動作させるCPUとして選択する。そして制御部16は、選択されていないCPUを停止した状態で、選択したCPUにプログラムを実行させる。すなわち、複数のCPU11〜14のうちの使用時間が長い方の所定数のCPUが、停止させるCPUとなる。さらに制御部16は、選択したCPUそれぞれの使用時間とエラー発生状況とを取得し、取得した使用時間とエラー発生状況とを記憶部15に格納する。

0017

なお、制御部16は、エラーの発生状況に応じて、動作させるCPUの選択基準を変えることができる。例えば制御部16は、エラー発生状況に基づく複数のCPU11〜14それぞれの信頼性に差がない場合には、使用時間が短いCPUから順に、動作させるCPUとして選択することができる。そして、制御部16は、複数のCPUそれぞれの信頼性に差がある場合には、信頼性の高いCPUから順に、動作させるCPUとして選択する。

0018

なお制御部16は、信頼性の判断では、例えば、単位使用時間当たりのエラー数が少ないCPUほど信頼性が高いと判断することができる。また制御部16は、例えば、CPUの稼働時間にそのCPUの平均使用率乗算した値を、そのCPUの使用時間とすることもできる。

0019

このような情報処理装置10において、例えば、情報処理装置10の運用時に実行するプログラムが、3つのCPUで実行可能であるものとする。その場合、運用中、1つのCPUを停止させておくことができる。どのCPUを使用し、どのCPUを停止させるのかは、例えばプログラムの実行開始時に決定される。図1の例では、情報処理装置10を起動した際に、使用するCPUが決定され、そのCPUでプログラムが実行されるものとする。

0020

情報処理装置10の1回目の起動時には、すべてのCPUの使用時間とエラー数が共に「0」である。この場合、制御部16は、任意の1つのCPUを停止させる。図1の例では、CPU11〜13が使用され、CPU14が停止されている。制御部16は、例えば、プログラムの実行停止時に、使用されているCPU11〜13から動作情報を取得し、記憶部15に格納する。その結果、CPU11〜13についての使用時間とエラー数とが、動作情報管理テーブル15aに登録される。

0021

なお、CPUの利用率を加味した値を使用時間として用いることで、同じ期間だけ稼働したCPUでも、使用時間が異なってくる。例えば図1の例では、識別番号「1」のCPU11の使用時間が最も長い。

0022

情報処理装置10の2回目の起動時には、制御部16は、1回目のプログラムの実行により収集された動作情報に基づいて、使用するCPUと停止するCPUとを決定する。図1の例では、2回目の起動時には、いずれのCPUにもエラーが発生していない。そこで制御部16は、使用時間が短い方から3つのCPU12〜14を、使用対象として選択する。そして制御部16は、選択されなかったCPU11の動作を停止させる。そして制御部16は、使用しているCPU12〜14の動作情報を取得し、記憶部15に格納する。これにより、1回目で停止されていたCPU14の動作情報も取得することができる。

0023

以後、情報処理装置10を起動するごとに、制御部16は、使用時間が短いCPUを優先的に使用し、使用時間が長いCPUを停止させる。これにより、各CPU11〜14の使用時間を均等化させることができる。使用される複数のCPUの使用率に大きな差がなく、一回の起動での運用期間が毎回同じであれば、各CPUは、ローテーションで使用されることとなる。

0024

情報処理装置10を運用しているうちに、いずれかのCPUにおいて、訂正可能なエラーが発生することがある。図1の例では、情報処理装置10のk回目(kは1以上の整数)の起動時には、各CPU11〜14で1回ずつのエラーが検出されている。この場合、各CPU11〜14のエラー数は同等であるが、使用時間を考慮して信頼性を評価すると、複数のCPU11〜14の信頼性は同等とはならない。すなわち、単位時間当たりのエラー数が多いほど、信頼性が低いと考えられる。エラー数が同じであれば、使用時間が短いほど信頼性が低いことになる。図1の例では、使用時間が最も短いのは、識別番号「2」のCPU12である。そこで制御部16は、単位時間当たりのエラー数が最大のCPU12以外のCPU11,13,14を動作させるCPUとして選択し、CPU12を停止させる。

0025

このように、第1の実施の形態では、いずれのCPUからもエラーが検出されていない状態では、使用時間が短いCPUを優先的に使用することで、使用時間の均等化が図られる。その結果、すべてのCPU11〜14から動作情報を確実に収集することができ、CPU11〜14それぞれの信頼性を同等の条件で評価し、適切に比較することができる。

0026

すなわち、使用時間やエラー数を考慮しない規則で動作させるCPUを選択した場合、常に同じCPUが停止される可能性がある。常に停止しているCPUがあると、そのCPUからは動作情報を収集することができず、信頼性を評価できない。それに対し、第1の実施の形態では、CPUの信頼性に差がない状況では、すべてのCPUが平等に使用されるため、すべてのCPUから十分な動作情報を収集できる。

0027

しかも、情報処理装置10の運用のために有用なプログラムを、すべてのCPUに順番に実行させることで、動作情報が収集される。そのため、例えば、使用していないCPUにテストプログラムを実行させて動作情報を収集するような余計な処理を実施せずに済み、情報収集を効率的に実施できる。

0028

また第1の実施の形態では、いずれかのCPUのエラー検出後は、単位使用時間当たりのエラー数が少ないCPUを優先的に使用することで、使用時間を考慮して信頼性を正しく評価できる。例えば、使用時間を考慮せずに信頼性を評価すると、エラー数が少ないCPUの信頼性が高いと評価されてしまう。しかし、他のCPUよりも長時間使用されたCPUであれば、単にエラー数が多いというだけで他のCPUよりも信頼性が低いと判定することはできない。単位使用時間当たりのエラー数で信頼性を判定することで、CPU間の使用時間の違いを相殺して、信頼性を正しく判定することができる。

0029

そして信頼性の低いCPUを的確に停止させることで、使用中のCPUで訂正不可能なエラーが発生することによるシステムダウンを抑止することができる。
さらに、CPUの稼働時間に使用率を乗算した値を使用時間とすることで、使用時間を正確に算出することができる。すなわち、CPUのエラーは、処理の実行過程で発生する。そのため、何も処理を実行していないアイドル状態の期間を使用時間に含めてしまうと、信頼性を正確に判断できなくなる。第1の実施の形態では、使用率を加味して使用時間を計算することで、ほとんどアイドル状態にならないCPUと、通常アイドル状態になっているCPUとの違いを加味して信頼性を判断し、訂正不可能なエラーが発生しやすいCPUを正確に判断できる。

0030

なお、制御部16は、例えば情報処理装置10が有する、いずれか1つのプロセッサ(CPU)により実現することができる。また、記憶部15は、例えば情報処理装置10が有するメモリにより実現することができる。

0031

〔第2の実施の形態〕
次に第2の実施の形態について説明する。第2の実施の形態では、サーバの起動時に、プロセッサ(CPU)の稼働時間を加味して、各CPUの信頼性を評価する。なお、CPUの稼働時間としては、CPUの使用率を加味した実質稼働時間が用いられる。実質稼働時間は、例えば「CPUの稼働時間×CPU使用率」で求められる。なお、実質稼働時間は、第1の実施の形態における使用時間の一例である。求められた実質稼働時間を用いて、使用するCPUを選択することで、各CPUの信頼性を正確に判断可能となる。

0032

なお第2の実施の形態では、訂正可能なエラーが発生したCPUが存在しない場合、実質稼働時間が長いCPUから順に、所定数のCPUの動作を停止させる。また、訂正可能なエラーが発生したCPUが存在する場合は、実質稼働時間あたりの訂正可能なエラー数が多いCPUから順に、所定数のCPUの動作を停止させる。

0033

図2は、第2の形態に用いるサーバのハードウェアの一構成例を示す図である。サーバ100は、システムボード101内のCPUによって装置全体が制御されている。システムボード101は、複数のCPU(例えばマルチコアプロセッサ)とメモリとを有している。システムボード101には、バス109を介して複数の周辺機器が接続されている。システムボード101では、CPUがプログラムを実行することで実現する機能の少なくとも一部を、ASIC(Application Specific IntegratedCircuit)、PLD(Programmable Logic Device)などの電子回路で実現してもよい。

0034

バス109に接続されている周辺機器としては、HDD(Hard Disk Drive)102、監視ユニット103、グラフィック処理装置104、入力インタフェース105、光学ドライブ装置106、機器接続インタフェース107およびFC(Fibre Channel)カード108a,108bがある。

0035

HDD102は、内蔵したディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。HDD102は、サーバ100の補助記憶装置として使用される。HDD102には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、フラッシュメモリなどの不揮発性半導体記憶装置SSD:Solid State Drive)を使用することもできる。

0036

監視ユニット103は、サーバ100の動作を監視する。例えば監視ユニット103は、システムボード101内のCPUにおける訂正可能なエラーの情報を収集し、蓄積する。

0037

グラフィック処理装置104には、モニタ21が接続されている。グラフィック処理装置104は、システムボード101内のCPUからの命令に従って、画像をモニタ21の画面に表示させる。モニタ21としては、CRT(Cathode Ray Tube)を用いた表示装置液晶表示装置などがある。

0038

入力インタフェース105には、キーボード22とマウス23とが接続されている。入力インタフェース105は、キーボード22やマウス23から送られてくる信号をシステムボード101内のCPUに送信する。なお、マウス23は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネルタブレットタッチパッドトラックボールなどがある。

0039

光学ドライブ装置106は、レーザ光などを利用して、光ディスク24に記録されたデータの読み取りを行う。光ディスク24は、光の反射によって読み取り可能なようにデータが記録された可搬型記録媒体である。光ディスク24には、DVD(Digital Versatile Disc)、DVD−RAM(Random Access Memory)、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。

0040

機器接続インタフェース107は、サーバ100に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース107には、メモリ装置25やメモリリーダライタ26を接続することができる。メモリ装置25は、機器接続インタフェース107との通信機能を搭載した記録媒体である。メモリリーダライタ26は、メモリカード27へのデータの書き込み、またはメモリカード27からのデータの読み出しを行う装置である。メモリカード27は、カード型の記録媒体である。

0041

FCカード108a,108bは、ネットワーク20に接続されている。FCカード108a,108bは、ネットワーク20を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。

0042

図3は、システムボードの詳細とサーバ内で保持される情報の例を示す図である。システムボード101には、プロセッサ101−1、メモリ101−2、メモリブリッジ101−3,I/O(Input/Output)ブリッジ101−4などが搭載されている。

0043

プロセッサ101−1は、複数のCPU101a〜101e(プロセッサコア)を有している。複数のCPU101a〜101eそれぞれには、「0」〜「4」の識別番号が付与されている。識別番号「0」のCPU101aは、OSや、CPUの動作を管理する管理プログラム101fを実行する。識別番号「1」から「4」の4つのCPUは、アプリケーションプログラム101hを実行する。管理プログラム101fを実行するCPU101aは、図1に示す第1の実施の形態の制御部16の一例である。アプリケーションプログラム101hを実行するCPU101b〜101eは、図1に示す第1の実施の形態のCPU11〜14の一例である。

0044

メモリ101−2は、サーバ100の主記憶装置として使用される。メモリ101−2には、管理プログラム101f、稼働時間・エラー管理簿101g、アプリケーションプログラム101h、およびOS101iが記憶される。メモリ101−2としては、例えばRAMなどの揮発性の半導体記憶装置が使用される。メモリ101−2は、図1に示す第1の実施の形態の記憶部15の一例である。

0045

管理プログラム101fは、アプリケーションプログラム101hをどのCPUに実行させるかを管理するためのプログラムである。管理プログラム101fには、使用率採取モジュール、エラー情報収集モジュール、CPU数算出モジュール、CPU選定モジュールなどが含まれる。稼働時間・エラー管理簿101gは、各CPUの稼働時間や、発生したエラーが登録されたデータテーブルである。アプリケーションプログラム101hは、サーバ100が提供するサービスに関する情報処理を、CPU101b〜101eに実行させるためのプログラムである。OS101iは、サーバ100全体の動作を制御するためのプログラムである。

0046

メモリブリッジ101−3は、プロセッサ101−1からのメモリ101−2へのアクセスを制御する制御回路である。I/Oブリッジ101−4は、プロセッサ101−1からHDD102などの周辺機器へのアクセスを制御する制御回路である。

0047

HDD102には、メモリ101−2と同様に、管理プログラム102a、稼働時間・エラー管理簿102b、アプリケーションプログラム102c、およびOS102dが記憶される。HDD102に記憶された各種情報が、メモリ101−2に読み出され、プロセッサ101−1内のいずれかのCPUで実行される。

0048

監視ユニット103は、制御部103−1とメモリ103−2とを有している。制御部103−1は、システムボード101から送られたエラー情報を、エラーログ103aとしてメモリ103−2に格納する。なおシステムボード101から送られたエラー情報は、訂正可能なエラーに関する情報であり、エラー情報にはエラーを発生させたCPUの識別番号が含まれる。また制御部103−1は、システムボード101内のCPU101aからの要求に応じて、メモリ103−2内のエラーログ103aを、そのCPU101aに送信する。

0049

以上のようなハードウェア構成およびデータによって、第2の実施の形態の処理機能を実現することができる。なお、第1の実施の形態に示した装置も、図2に示したサーバ100と同様のハードウェアにより実現することができる。

0050

プロセッサ101−1は、HDD102内のプログラムの少なくとも一部をメモリ101−2にロードし、プログラムを実行する。またサーバ100に実行させるプログラムを、光ディスク24、メモリ装置25、メモリカード27などの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ101−1からの制御により、HDD102にインストールされた後、実行可能となる。またプロセッサ101−1が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。

0051

次に、CPUの動作管理に用いる情報について詳細に説明する。
図4は、稼働時間・エラー管理簿の一例を示す図である。稼働時間・エラー管理簿101gには、Unit、実質稼働時間、訂正可能なエラー数、前回の平均使用率の欄が設けられている。Unitの欄には、管理対象のCPUの識別番号が設定される。実質稼働時間の欄には、対応するCPUの実質的な稼働時間が設定される。実質的な稼働時間とは、CPUがオンラインとなっていた時間に、そのCPUの平均使用率を乗算して得られる時間である。訂正可能なエラー数の欄には、対応するCPUで発生した訂正可能なエラーの数が設定される。前回の平均使用率の欄には、直近システム運用時における対応するCPUの平均使用率が設定される。

0052

図5は、エラーログの一例を示す図である。エラーログ103aには、番号、時刻、およびUnitの欄が設けられている。番号の欄には、発生したエラーの識別番号が設定される。時刻の欄には、エラーの発生日時が設定される。Unitの欄は、エラーを発生させたCPUの識別番号が設定される。

0053

管理プログラム101fを実行するCPU101aは、図4図5に示すような情報を用いて、他のCPU101b〜101eの動作管理を行う。
図6は、CPU動作管理機能を示すブロック図である。図6には、サーバ100が有する、CPU動作管理のための機能を、機能ブロックで表している。例えばサーバ100は、OS110、使用率採取部120、エラー情報収集部130、CPU数算出部140、およびCPU選定部150を有する。OS110は、メモリ101−2に格納されたOSのプログラム(OS101i)を、CPU101aが実行することで実現する機能である。使用率採取部120、エラー情報収集部130、CPU数算出部140、およびCPU選定部150は、管理プログラム101fをCPU101aが実行することで実現される機能である。

0054

OS110は、CPU101b〜101eの動作状況を監視し、使用率を算出する。使用率採取部120は、例えばシステムの停止時にCPU101b〜101eの使用率をOS110から採取する。使用率採取部120は、採取した使用率を稼働時間・エラー管理簿101gに設定する。エラー情報収集部130は、例えばシステムの停止時に、監視ユニット103からエラーログ103aを収集し、システム起動から停止までの訂正可能なエラー数を、CPUごとに集計する。そして、エラー情報収集部130は、集計したエラー数の値を、稼働時間・エラー管理簿101gに設定する。

0055

CPU数算出部140は、例えばシステムの起動時に、稼働時間・エラー管理簿101gに基づいて、アプリケーションプログラム101hの実行に使用するCPU数を算出する。CPU選定部150は、例えばシステムの起動時に、稼働時間・エラー管理簿101gに基づいて、CPU数算出部140で算出されたCPU数分のCPUを、使用するCPUとして選定する。そしてCPU選定部150は、選定から漏れたCPUの動作を停止させる。

0056

なお、図6に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。
次に、CPU動作管理処理について詳細に説明する。CPU動作管理処理は、システムの起動時と停止時とに行われる。以下、図7図9を参照してシステム起動時の処理を説明し、図10図12を参照してシステム停止時の処理を説明する。

0057

図7は、システム起動時のCPU動作管理処理の手順の一例を示すフローチャートである。
[ステップS101]CPU101aは、OS110を起動する。

0058

[ステップS102]OS110は、管理プログラム101fのCPU数算出モジュールに基づいて、CPU数算出部140を起動する。CPU数算出部140は、アプリケーションプログラム101hの実行に使用するCPU数の算出処理を実行する。CPU数算出処理の詳細は後述する(図8参照)。

0059

[ステップS103]OS110は、管理プログラム101fのCPU選定モジュールに基づいて、CPU選定部150を起動する。CPU選定部150は、CPU101b〜101eのなかから、ステップS102で算出されたCPU数分のCPU選定処理を行う。CPU選定処理の詳細は後述する(図9参照)。

0060

[ステップS104]CPU101aは、ステップS103で選択されたCPUに、アプリケーションプログラム101hの実行を指示する。指示を受けたCPUが、アプリケーションを起動する。その後、アプリケーションに基づいて、サーバ100がサービスを提供する。

0061

図8は、CPU数算出処理の手順の一例を示すフローチャートである。
[ステップS111]CPU数算出部140は、アプリケーションの使用CPU数が固定か否かを判断する。例えばCPU数算出部140は、アプリケーションプログラム101hのプロパティなどの管理情報に、使用CPU数が指定されているかどうかを調査する。CPU数算出部140は、使用CPU数が指定されていれば、使用CPU数固定であると判断する。使用CPU数が固定の場合、処理が終了する。使用CPU数が固定でなければ、処理がステップS112に進められる。

0062

[ステップS112]CPU数算出部140は、前回の平均使用率の合計の値を「0」に初期化する。
[ステップS113]CPU数算出部140は、アプリケーションプログラム101hの実行用に用意されたCPU数分(図3の例では「4」)だけ、ステップS114,S115の処理をループする。例えばCPU数算出部140は、稼働時間・エラー管理簿101gに登録されているCPUを、上から順に処理対象とする。

0063

[ステップS114]CPU数算出部140は、処理対象のCPUの前回の平均使用率を、稼働時間・エラー管理簿101gから取得する。そしてCPU数算出部140は、取得した値を、前回の平均使用率の合計に加算する。

0064

[ステップS115]CPU数算出部140は、処理対象のCPUを、稼働時間・エラー管理簿101g上での次のCPUに移動する。
[ステップS116]CPU数算出部140は、アプリケーションプログラム101hの実行用に用意されたすべてのCPU101b〜101eについて処理が完了したら、処理をステップS117に進める。

0065

[ステップS117]CPU数算出部140は、前回の平均使用率の合計を60%で割った値を、使用するCPU数として算出する。除算小数点以下の値は、切り上げるものとする。これにより、平均使用率を60%以下とするための使用CPU数が求められる。

0066

次に、CPU選定処理について詳細に説明する。
図9は、CPU選定処理の手順の一例を示すフローチャートである。
[ステップS121]CPU選定部150は、稼働時間・エラー管理簿101gに登録されたCPU101b〜101eのエントリを、単位稼働時間当たりの訂正可能なエラー数で昇順に並べ替える。例えばCPU選定部150は、稼働時間・エラー管理簿101gの各CPUについて、訂正可能なエラー数を実質稼働時間で除算し、単位稼働時間当たりの訂正可能なエラー数を算出する。そしてCPU選定部150は、稼働時間・エラー管理簿101g内のCPU101b〜101eのエントリを、単位稼働時間当たりの訂正可能なエラー数が少ない順に並べる。

0067

[ステップS122]CPU選定部150は、単位稼働時間当たりの訂正可能なエラー数が同じCPUについて、実質稼働時間で昇順に並べ替える。例えばCPU選定部150は、稼働時間・エラー管理簿101gから、単位稼働時間当たりの訂正可能なエラー数が同じCPU群を検出する。該当するCPU群がある場合、CPU選定部150は、稼働時間・エラー管理簿101g内の該当CPU群のエントリを、実質稼働時間が短い順に並べる。

0068

[ステップS123]CPU選定部150は、アプリケーションプログラム101hの実行用に用意されたCPU数分(図3の例では「4」)だけ、ステップS124〜S126の処理をループする。例えばCPU選定部150は、稼働時間・エラー管理簿101gに登録されているCPUを、上から順に処理対象とする。すなわち単位時間当たりの訂正可能なエラー数が少ないCPUから順に、処理対象となる。また単位時間当たりの訂正可能なエラー数が同じCPUについては、実質稼働時間が短いCPUから順に処理対象となる。

0069

[ステップS124]CPU選定部150は、ステップS124〜S126の処理のループ回数が、使用するCPU数以内か否かを判断する。ループ回数が使用するCPU数以内であれば、処理がステップS126に進められる。ループ回数が使用するCPU数を超えている場合、処理がステップS125に進められる。

0070

[ステップS125]CPU選定部150は、処理対象のCPUをオフラインにする。オフラインとなったCPUは、アプリケーションプログラムの実行先から除外される。
[ステップS126]CPU選定部150は、処理対象のCPUを、稼働時間・エラー管理簿101g上での次のCPUに移動する。

0071

[ステップS127]CPU選定部150は、アプリケーションプログラム101hの実行用に用意されたすべてのCPU101b〜101eについて処理が完了したら、CPU選定処理を終了する。

0072

このようにして、システムの起動時に、単位稼働時間当たりのエラー数が多いCPUの使用が抑止される。これにより、信頼性の高いCPUを優先して使用することができる。なお、すべてのCPUの訂正可能なエラーの数が「0」の場合、単位稼働時間当たりのエラー数は、いずれのCPUも「0」となる。その場合、実質稼働時間が短いCPUが使用され、実質稼働時間が長いCPUの使用は抑止される。これにより、CPU間の信頼性の優劣が不明な場合には、システムが繰り返し起動されることで、すべてのCPUを均等に使用することができる。CPUが均等に使用されれば、単位稼働時間当たりのエラー数を算出結果で信頼性を判断したときの、判断結果の統計的な正確性が向上する。

0073

システムの停止時には、次回のシステム起動時に使用する情報の収集が行われる。
図10は、システム停止時のCPU動作管理処理の手順の一例を示すフローチャートである。

0074

[ステップS201]OS110は、アプリケーションプログラム101hを実行しているCPUに対して、実行を停止させる。
[ステップS202]OS110は、管理プログラム101fの使用率採取モジュールに基づいて、使用率採取部120を起動する。使用率採取部120は、システムの起動から停止までの各CPUの使用率の採取処理を実行する。使用率採取処理の詳細は後述する(図11参照)。

0075

[ステップS203]OS110は、管理プログラム101fのエラー情報収集モジュールに基づいて、エラー情報収集部130を起動する。エラー情報収集部130は、システムの起動から停止までの各CPUのエラー情報を収集する。エラー情報収集処理の詳細は後述する(図12参照)。

0076

[ステップS204]OS110は、動作を停止する。
次に、使用率採取処理の詳細について説明する。
図11は、使用率採取処理の手順の一例を示すフローチャートである。

0077

[ステップS211]使用率採取部120は、アプリケーションプログラム101hの実行用に用意されたCPU数分(図3の例では「4」)だけ、ステップS212,S213の処理をループする。例えば使用率採取部120は、稼働時間・エラー管理簿101gに登録されているCPUを、上から順に処理対象とする。

0078

[ステップS212]使用率採取部120は、前回の平均使用率を設定する。例えば使用率採取部120は、処理対象CPUの平均使用率を、OS110から取得する。使用率採取部120は、取得した平均使用率を、処理対象のCPUに関する前回の平均使用率として、稼働時間・エラー管理簿101g内に設定する。

0079

[ステップS213]使用率採取部120は、処理対象のCPUの実質稼働時間の値を更新する。例えば使用率採取部120は、OS110から、システムの最後の起動から現在までの時間(稼働時間)を取得する。そして使用率採取部120は、処理対象のCPUの平均使用率に取得した稼働時間を乗算した値を、稼働時間・エラー管理簿101g内の該当CPUの実質稼働時間に加算する。

0080

[ステップS214]使用率採取部120は、アプリケーションプログラム101hの実行用に用意されたすべてのCPU101b〜101eについて処理が完了したら、使用率採取処理を終了する。

0081

次に、エラー情報収集処理について説明する。
図12は、エラー情報収集処理の手順の一例を示すフローチャートである。
[ステップS221]エラー情報収集部130は、アプリケーションプログラム101hの実行用に用意されたすべてのCPU101b〜101eの、訂正可能なエラー数を取得する。例えばエラー情報収集部130は、監視ユニット103から、システムの最後の起動から現在までの訂正可能なエラー情報を取得する。

0082

[ステップS222]エラー情報収集部130は、アプリケーションプログラム101hの実行用に用意されたCPU数分(図3の例では「4」)だけ、ステップS223の処理をループする。例えばエラー情報収集部130は、稼働時間・エラー管理簿101gに登録されているCPUを、上から順に処理対象とする。

0083

[ステップS223]エラー情報収集部130は、訂正可能なエラー数を更新する。例えばエラー情報収集部130は、ステップS221で取得した訂正可能なエラー情報に基づいて、処理対象のCPUに関するエラーの数を計数する。そしてエラー情報収集部130は、計数した値を、稼働時間・エラー管理簿101g内の処理対象のCPUの訂正可能なエラー数に加算する。

0084

[ステップS224]エラー情報収集部130は、アプリケーションプログラム101hの実行用に用意されたすべてのCPU101b〜101eについて処理が完了したら、エラー情報収集処理を終了する。

0085

以上の処理により、第2の実施の形態では、使用するCPUを起動時にローテーションし、各CPUの使用率を加味した稼働時間の実績と、訂正可能なエラー数を収集することで、信頼性の低いCPUを適切に判断し、そのCPUの動作を停止させることができる。

0086

次に、システム全体の負荷に応じて使用するCPU数が3であり、その負荷が変動しないものとしたときの、単位時間あたりの訂正可能なエラー数の収集と、訂正不可能なエラーが発生しやすいCPUの判断の具体例を示す。

0087

図13は、初回起動時における使用CPU選定の第1の例を示す図である。図13の例では、アプリケーションプログラム101hに対して、使用CPU数が「3」であることが予め定義されているものとする。この場合、システム起動時に、アプリケーションプログラム101h実行用に用意されている4つのCPU101b〜101eのうち、3つのCPUが使用される。

0088

初回の起動時には、いずれのCPU101b〜101eについても、実質稼働時間および訂正可能なエラー数の値が「0」である。そこでCPU選定部150は、例えば、識別番号が若番のCPUから順に、使用対象として選択する。その結果、識別番号が最も大きい値「4」であるCPU101eは、使用対象から除外される。

0089

CPU選定部150は、使用対象から除外されたCPU101eを、オフラインにする。そしてOS110は、オンラインとなっているCPU101b〜101dに対して、アプリケーションプログラム101hを実行させる。

0090

なおアプリケーションプログラム101hで何個のCPUを使用するのかが、事前には定義されていない場合もある。
図14は、初回起動時における使用CPU選定の第2の例を示す図である。図14の例では、初回起動時には、アプリケーションプログラム101hの負荷が不明であるものとする。この場合、CPU選定部150は、システム全体の負荷を測定するため、1回目の起動時には、すべてのCPU101b〜101eを使用対象とする。OS110は、4つのCPU101b〜101eに対してアプリケーションプログラム101hを実行させる。

0091

図13図14に示した初回起動時の処理により、使用されたCPUの実質稼働時間が取得できる。また訂正可能なエラーが発生した場合、そのエラーがどのCPUから何回発生したのかについても取得できる。そしてシステム停止時に、稼働時間・エラー管理簿101gが更新される。次回以降のシステム起動時には、稼働時間・エラー管理簿101gの内容に応じて、使用するCPUが選定される。

0092

図15は、2回目起動時における使用CPU選定例を示す図である。図15の例では、1回目のシステム運用時には、いずれのCPU101b〜101eからも訂正可能なエラーは検出されていない。実質稼働時間は、「前々回までの実施稼働時間」+「前回の稼働時間の実績」×「前回の平均使用率」で算出される。なお2回目起動時には、「前々回までの実施稼働時間」は「0」である。例えば「CPU1」について、前回のシステム運用時の稼働時間が20時間であり、平均使用率が0.5(50%)であったものとする。この場合、「CPU1」の実質稼働時間は10時間(0h+20h×0.5=10h)となる。

0093

CPU選定部150は、すべてのCPU101b〜101eの訂正可能なエラー数が0の場合は、すべてのCPU101b〜101eの実質稼働時間を平等にするため、実質稼働時間が長いCPUは使用しない。図15の例では、識別番号「CPU1」CPU101bがオフラインとなり、使用が抑止される。なお、実質稼働時間が同じ場合は、CPU選定部150は、例えば識別番号が若番のCPUから使用対象として選定する。

0094

このように、実質稼働時間が短いCPUお優先的に使用することで、初回起動時に停止していたCPU101eが使用されることとなり、CPU101eの動作情報を収集できるようになる。また実質稼働時間が最も長いCPU101bが停止されることで、実質稼働時間の差が縮まる。すなわち、実質稼働時間の均等化が図られる。

0095

図16は、3回目起動時における使用CPU選定例を示す図である。図16の例では、1,2回目のシステム運用時には、いずれのCPU101b〜101eからも訂正可能なエラーは検出されていない。2回目のシステム運用時には、識別番号「CPU1」CPU101bの使用が抑止されたため、このCPU101bの実質稼働時間は増加していない。他のCPU101c〜101eは、実質稼働時間が増加している。その結果、識別番号「CPU2」CPU101cの実質稼働時間が最も大きくなっている。そこでCPU選定部150は、すべてのCPU101b〜101eの実質稼働時間を平等にするため、実質稼働時間が長いCPU101bの使用対象外としてオフライン化する。

0096

以後、すべてのCPUにおいて訂正可能なエラーが発生していない間は、実質稼働時間が同等になるように、システムの起動時点で、実質稼働時間が最も長いCPUが使用対象外とされる。システムn回目(nは4以上の整数)の起動時には、1以上のCPUにおいて訂正可能なエラーが発生したものとする。

0097

図17は、n回目の起動時における使用CPU選定例を示す図である。図17の例では、すべてのCPU101b〜101eについて、1回ずつ訂正可能なエラーが検出されている。この場合、CPU選定部150は、単位時間当たりの訂正可能なエラー数が最大であるCPUを、使用対象外とする。図17の例では、各CPU101b〜101eの訂正可能なエラー数が同じであるため、実質稼働時間が最も短い識別番号「2」のCPU101cが、単位時間当たりの訂正可能なエラー数が最大のCPUとなる。そこでCPU選定部150は、CPU101cを使用対象外としてオフラインにする。

0098

さらにm回(mは1以上の整数)のシステムの停止・起動が繰り返されると、各CPU101b〜101eの訂正可能なエラー数もばらついてくる。
図18は、n+m回目の起動時における使用CPU選定例を示す図である。図18の例では、訂正可能なエラー回数は、識別番号「4」のCPU101eが最大である。ただし、単位時間当たりの訂正可能なエラー数は、識別番号「2」のCPU101cが最大である。この場合、CPU選定部150は、単位時間当たりの訂正可能なエラー数が最大であるCPU101cを、使用対象外とする。

0099

これにより各CPUの稼働時間の実績に差異があっても、訂正不可能なエラーが発生しやすいCPUを適切に判断でき、そのCPUを使用しないことで、システムがダウンすることを抑止できる。また第2の実施の形態では、使用率を加味した稼働時間の実績を使う。これは、単純な稼働時間のみでは、ほとんどアイドル状態にならないCPUと、通常アイドル状態になっているCPUとを同等に扱ってしまうためである。稼働時間の実績の算出に利用率を加味することで、CPUが実際に使用された実績を正確に求めることができる。

0100

以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。

0101

10情報処理装置
11〜14プロセッサ(CPU)
15 記憶部
15a動作情報管理テーブル
16 制御部

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

関連する公募課題

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

この 技術と関連性が強い技術

関連性が強い 技術一覧

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

関連する挑戦したい社会課題一覧

この 技術と関連する公募課題

関連する公募課題一覧

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ