JP6558098B2 - 情報処理装置、およびプログラム - Google Patents

情報処理装置、およびプログラム Download PDF

Info

Publication number
JP6558098B2
JP6558098B2 JP2015127443A JP2015127443A JP6558098B2 JP 6558098 B2 JP6558098 B2 JP 6558098B2 JP 2015127443 A JP2015127443 A JP 2015127443A JP 2015127443 A JP2015127443 A JP 2015127443A JP 6558098 B2 JP6558098 B2 JP 6558098B2
Authority
JP
Japan
Prior art keywords
cpu
time
cpus
processor
error
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
Application number
JP2015127443A
Other languages
English (en)
Other versions
JP2017010421A (ja
Inventor
崇 奥野
崇 奥野
智央 及川
智央 及川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2015127443A priority Critical patent/JP6558098B2/ja
Publication of JP2017010421A publication Critical patent/JP2017010421A/ja
Application granted granted Critical
Publication of JP6558098B2 publication Critical patent/JP6558098B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、情報処理装置、およびプログラムに関する。
近年のコンピュータでは、1台のコンピュータ内に複数のプロセッサが搭載されている場合がある。プロセッサは、CPU(Central Processing Unit)とも呼ばれる。1つのプロセッサ内に、複数のプロセッサコアが搭載されている場合もある。この場合の複数のプロセッサコアそれぞれが、コンピュータ内の独立したプロセッサとして機能する。以下、プロセッサまたはCPUと呼んだ場合、プロセッサコアを含むものとする。
マルチコアプロセッサの普及により、コンピュータ内のプロセッサ数は増加傾向にある。従来は、プロセッサが増加しても、システム全体の負荷を考慮せず、プロセッサをすべて使用していた。この場合、いずれか1つのプロセッサに訂正不可能なエラーが発生すると、OS(Operating System)の動作を継続できなくなり、システムがダウンする。
なお、訂正不可能なエラーが発生しやすいプロセッサを、訂正可能なエラー数から判断し、運用中のシステムダウンの抑止措置を採ることも可能である。例えば訂正可能なエラー数が一定数に達したプロセッサが検出されると、そのプロセッサの使用を停止することができる。これにより、訂正不可能なエラーの発生が抑止される。
システムの障害発生時の対応に関する技術としては、例えば、命令再試行可能なエラー発生時、システムの負荷状況及びエラー頻度状況によりプロセッサリリーフ、命令再試行処理を行う技術がある。また、システムリセット時の初期化処理において異常が発生しても、システムが起動しなくなることを回避する技術もある。さらに、サーバ等の処理装置に障害が発生した場合の復旧時間の長期化をより確実に抑えられるようにする技術もある。
特開平6−324897号公報 特開2010−61419号公報 特開2013−164762号公報
複数のプロセッサを有するコンピュータシステムでは、そのシステムの性能を使い切っていないことがある。このような場合、訂正可能なエラー数が一定数に達したプロセッサが存在しなくても、システムの省電力化などの目的で、一部のプロセッサを停止させておくことができる。このように、性能に余力があるときに一部のプロセッサを停止させるという運用を継続すると、各プロセッサの稼働時間に大きな差が生じることがある。
各プロセッサの稼働時間の実績が大きく異なる場合に、プロセッサごとの訂正可能なエラー数だけでプロセッサの信頼性を判断すると、信頼性を正確には判断できない。例えば、他のプロセッサよりも長時間稼働したプロセッサは、他のプロセッサよりも訂正可能なエラーが多く検出されて当然であり、訂正可能なエラー数が他のプロセッサよりも多いからといって、信頼性が低いと評価することはできない。そこで、稼働実績を考慮して各プロセッサの信頼性を評価することが考えられる。
しかし、ほとんど使用されてないプロセッサが存在すると、そのプロセッサの稼働実績は存在せず、稼働実績に関する情報を取得できない。稼働実績を用いた信頼性評価において、稼働実績に関する情報が取得できないプロセッサがあると、プロセッサ間の信頼性の優劣を正しく判断することができない。その結果、訂正不可能なエラーが発生しやすいプロセッサの判断を誤る可能性が生じる。
1つの側面では、本件は、プロセッサの信頼性評価に有用な情報を確実に取得できるようにすることを目的とする。
1つの案では、記憶部と制御部とを有する情報処理装置が提供される。記憶部は、複数のプロセッサそれぞれの使用時間とエラー発生状況とを示す動作情報を記憶する。制御部は、プログラムの実行開始時に、動作情報に基づいて、複数のプロセッサのうちの使用時間が短い方から所定数のプロセッサを、動作させる第1のプロセッサとして選択する。次に制御部は、選択されていない第2のプロセッサを停止した状態で、第1のプロセッサにプログラムを実行させ、第1のプロセッサの使用時間とエラー発生状況とを取得する。そして制御部は、取得した該使用時間と該エラー発生状況とを記憶部に格納する。
1態様によれば、プロセッサの信頼性評価に有用な情報を確実に取得できる。
第1の実施の形態に係る情報処理装置の一例を示す図である。 第2の形態に用いるサーバのハードウェアの一構成例を示す図である。 システムボードの詳細とサーバ内で保持される情報の例を示す図である。 稼働時間・エラー管理簿の一例を示す図である。 エラーログの一例を示す図である。 CPU動作管理機能を示すブロック図である。 システム起動時のCPU動作管理処理の手順の一例を示すフローチャートである。 CPU数算出処理の手順の一例を示すフローチャートである。 CPU選定処理の手順の一例を示すフローチャートである。 システム停止時のCPU動作管理処理の手順の一例を示すフローチャートである。 使用率採取処理の手順の一例を示すフローチャートである。 エラー情報収集処理の手順の一例を示すフローチャートである。 初回起動時における使用CPU選定の第1の例を示す図である。 初回起動時における使用CPU選定の第2の例を示す図である。 2回目起動時における使用CPU選定例を示す図である。 3回目起動時における使用CPU選定例を示す図である。 n回目の起動時における使用CPU選定例を示す図である。 n+m回目の起動時における使用CPU選定例を示す図である。
以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第1の実施の形態〕
図1は、第1の実施の形態に係る情報処理装置の一例を示す図である。情報処理装置10は、複数のプロセッサ(CPU)11〜14、記憶部15、および制御部16を有する。情報処理装置10内では、CPU11〜14それぞれに識別番号が付与されている。CPU11の識別番号は「1」、CPU12の識別番号は「2」、CPU13の識別番号は「3」、CPU14の識別番号は「4」である。
記憶部15は、複数のCPU11〜14それぞれの使用時間とエラー発生状況とを示す動作情報を記憶する。エラー発生状況には、例えば訂正可能なエラーの発生回数が示されている。例えば記憶部15内には、動作情報管理テーブル15aが設けられ、動作情報管理テーブル15aに動作情報が登録される。動作情報管理テーブル15aには、例えばCPU11〜14ごとに、使用時間とエラー数とが登録されている。動作情報管理テーブル15aに示される各CPU11〜14のエラー数は、例えばそのCPUから繰り返し収集したエラー発生状況に示されるエラー数の積算値である。
制御部16は、プログラムの実行開始時に、記憶部15内の動作情報に基づいて、複数のCPU11〜14のうちの使用時間が短い方から所定数のCPUを、動作させるCPUとして選択する。そして制御部16は、選択されていないCPUを停止した状態で、選択したCPUにプログラムを実行させる。すなわち、複数のCPU11〜14のうちの使用時間が長い方の所定数のCPUが、停止させるCPUとなる。さらに制御部16は、選択したCPUそれぞれの使用時間とエラー発生状況とを取得し、取得した使用時間とエラー発生状況とを記憶部15に格納する。
なお、制御部16は、エラーの発生状況に応じて、動作させるCPUの選択基準を変えることができる。例えば制御部16は、エラー発生状況に基づく複数のCPU11〜14それぞれの信頼性に差がない場合には、使用時間が短いCPUから順に、動作させるCPUとして選択することができる。そして、制御部16は、複数のCPUそれぞれの信頼性に差がある場合には、信頼性の高いCPUから順に、動作させるCPUとして選択する。
なお制御部16は、信頼性の判断では、例えば、単位使用時間当たりのエラー数が少ないCPUほど信頼性が高いと判断することができる。また制御部16は、例えば、CPUの稼働時間にそのCPUの平均使用率を乗算した値を、そのCPUの使用時間とすることもできる。
このような情報処理装置10において、例えば、情報処理装置10の運用時に実行するプログラムが、3つのCPUで実行可能であるものとする。その場合、運用中、1つのCPUを停止させておくことができる。どのCPUを使用し、どのCPUを停止させるのかは、例えばプログラムの実行開始時に決定される。図1の例では、情報処理装置10を起動した際に、使用するCPUが決定され、そのCPUでプログラムが実行されるものとする。
情報処理装置10の1回目の起動時には、すべてのCPUの使用時間とエラー数が共に「0」である。この場合、制御部16は、任意の1つのCPUを停止させる。図1の例では、CPU11〜13が使用され、CPU14が停止されている。制御部16は、例えば、プログラムの実行停止時に、使用されているCPU11〜13から動作情報を取得し、記憶部15に格納する。その結果、CPU11〜13についての使用時間とエラー数とが、動作情報管理テーブル15aに登録される。
なお、CPUの利用率を加味した値を使用時間として用いることで、同じ期間だけ稼働したCPUでも、使用時間が異なってくる。例えば図1の例では、識別番号「1」のCPU11の使用時間が最も長い。
情報処理装置10の2回目の起動時には、制御部16は、1回目のプログラムの実行により収集された動作情報に基づいて、使用するCPUと停止するCPUとを決定する。図1の例では、2回目の起動時には、いずれのCPUにもエラーが発生していない。そこで制御部16は、使用時間が短い方から3つのCPU12〜14を、使用対象として選択する。そして制御部16は、選択されなかったCPU11の動作を停止させる。そして制御部16は、使用しているCPU12〜14の動作情報を取得し、記憶部15に格納する。これにより、1回目で停止されていたCPU14の動作情報も取得することができる。
以後、情報処理装置10を起動するごとに、制御部16は、使用時間が短いCPUを優先的に使用し、使用時間が長いCPUを停止させる。これにより、各CPU11〜14の使用時間を均等化させることができる。使用される複数のCPUの使用率に大きな差がなく、一回の起動での運用期間が毎回同じであれば、各CPUは、ローテーションで使用されることとなる。
情報処理装置10を運用しているうちに、いずれかのCPUにおいて、訂正可能なエラーが発生することがある。図1の例では、情報処理装置10のk回目(kは1以上の整数)の起動時には、各CPU11〜14で1回ずつのエラーが検出されている。この場合、各CPU11〜14のエラー数は同等であるが、使用時間を考慮して信頼性を評価すると、複数のCPU11〜14の信頼性は同等とはならない。すなわち、単位時間当たりのエラー数が多いほど、信頼性が低いと考えられる。エラー数が同じであれば、使用時間が短いほど信頼性が低いことになる。図1の例では、使用時間が最も短いのは、識別番号「2」のCPU12である。そこで制御部16は、単位時間当たりのエラー数が最大のCPU12以外のCPU11,13,14を動作させるCPUとして選択し、CPU12を停止させる。
このように、第1の実施の形態では、いずれのCPUからもエラーが検出されていない状態では、使用時間が短いCPUを優先的に使用することで、使用時間の均等化が図られる。その結果、すべてのCPU11〜14から動作情報を確実に収集することができ、CPU11〜14それぞれの信頼性を同等の条件で評価し、適切に比較することができる。
すなわち、使用時間やエラー数を考慮しない規則で動作させるCPUを選択した場合、常に同じCPUが停止される可能性がある。常に停止しているCPUがあると、そのCPUからは動作情報を収集することができず、信頼性を評価できない。それに対し、第1の実施の形態では、CPUの信頼性に差がない状況では、すべてのCPUが平等に使用されるため、すべてのCPUから十分な動作情報を収集できる。
しかも、情報処理装置10の運用のために有用なプログラムを、すべてのCPUに順番に実行させることで、動作情報が収集される。そのため、例えば、使用していないCPUにテストプログラムを実行させて動作情報を収集するような余計な処理を実施せずに済み、情報収集を効率的に実施できる。
また第1の実施の形態では、いずれかのCPUのエラー検出後は、単位使用時間当たりのエラー数が少ないCPUを優先的に使用することで、使用時間を考慮して信頼性を正しく評価できる。例えば、使用時間を考慮せずに信頼性を評価すると、エラー数が少ないCPUの信頼性が高いと評価されてしまう。しかし、他のCPUよりも長時間使用されたCPUであれば、単にエラー数が多いというだけで他のCPUよりも信頼性が低いと判定することはできない。単位使用時間当たりのエラー数で信頼性を判定することで、CPU間の使用時間の違いを相殺して、信頼性を正しく判定することができる。
そして信頼性の低いCPUを的確に停止させることで、使用中のCPUで訂正不可能なエラーが発生することによるシステムダウンを抑止することができる。
さらに、CPUの稼働時間に使用率を乗算した値を使用時間とすることで、使用時間を正確に算出することができる。すなわち、CPUのエラーは、処理の実行過程で発生する。そのため、何も処理を実行していないアイドル状態の期間を使用時間に含めてしまうと、信頼性を正確に判断できなくなる。第1の実施の形態では、使用率を加味して使用時間を計算することで、ほとんどアイドル状態にならないCPUと、通常アイドル状態になっているCPUとの違いを加味して信頼性を判断し、訂正不可能なエラーが発生しやすいCPUを正確に判断できる。
なお、制御部16は、例えば情報処理装置10が有する、いずれか1つのプロセッサ(CPU)により実現することができる。また、記憶部15は、例えば情報処理装置10が有するメモリにより実現することができる。
〔第2の実施の形態〕
次に第2の実施の形態について説明する。第2の実施の形態では、サーバの起動時に、プロセッサ(CPU)の稼働時間を加味して、各CPUの信頼性を評価する。なお、CPUの稼働時間としては、CPUの使用率を加味した実質稼働時間が用いられる。実質稼働時間は、例えば「CPUの稼働時間×CPU使用率」で求められる。なお、実質稼働時間は、第1の実施の形態における使用時間の一例である。求められた実質稼働時間を用いて、使用するCPUを選択することで、各CPUの信頼性を正確に判断可能となる。
なお第2の実施の形態では、訂正可能なエラーが発生したCPUが存在しない場合、実質稼働時間が長いCPUから順に、所定数のCPUの動作を停止させる。また、訂正可能なエラーが発生したCPUが存在する場合は、実質稼働時間あたりの訂正可能なエラー数が多いCPUから順に、所定数のCPUの動作を停止させる。
図2は、第2の形態に用いるサーバのハードウェアの一構成例を示す図である。サーバ100は、システムボード101内のCPUによって装置全体が制御されている。システムボード101は、複数のCPU(例えばマルチコアプロセッサ)とメモリとを有している。システムボード101には、バス109を介して複数の周辺機器が接続されている。システムボード101では、CPUがプログラムを実行することで実現する機能の少なくとも一部を、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)などの電子回路で実現してもよい。
バス109に接続されている周辺機器としては、HDD(Hard Disk Drive)102、監視ユニット103、グラフィック処理装置104、入力インタフェース105、光学ドライブ装置106、機器接続インタフェース107およびFC(Fibre Channel)カード108a,108bがある。
HDD102は、内蔵したディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。HDD102は、サーバ100の補助記憶装置として使用される。HDD102には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、フラッシュメモリなどの不揮発性の半導体記憶装置(SSD:Solid State Drive)を使用することもできる。
監視ユニット103は、サーバ100の動作を監視する。例えば監視ユニット103は、システムボード101内のCPUにおける訂正可能なエラーの情報を収集し、蓄積する。
グラフィック処理装置104には、モニタ21が接続されている。グラフィック処理装置104は、システムボード101内のCPUからの命令に従って、画像をモニタ21の画面に表示させる。モニタ21としては、CRT(Cathode Ray Tube)を用いた表示装置や液晶表示装置などがある。
入力インタフェース105には、キーボード22とマウス23とが接続されている。入力インタフェース105は、キーボード22やマウス23から送られてくる信号をシステムボード101内のCPUに送信する。なお、マウス23は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
光学ドライブ装置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)などがある。
機器接続インタフェース107は、サーバ100に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース107には、メモリ装置25やメモリリーダライタ26を接続することができる。メモリ装置25は、機器接続インタフェース107との通信機能を搭載した記録媒体である。メモリリーダライタ26は、メモリカード27へのデータの書き込み、またはメモリカード27からのデータの読み出しを行う装置である。メモリカード27は、カード型の記録媒体である。
FCカード108a,108bは、ネットワーク20に接続されている。FCカード108a,108bは、ネットワーク20を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
図3は、システムボードの詳細とサーバ内で保持される情報の例を示す図である。システムボード101には、プロセッサ101−1、メモリ101−2、メモリブリッジ101−3,I/O(Input/Output)ブリッジ101−4などが搭載されている。
プロセッサ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の一例である。
メモリ101−2は、サーバ100の主記憶装置として使用される。メモリ101−2には、管理プログラム101f、稼働時間・エラー管理簿101g、アプリケーションプログラム101h、およびOS101iが記憶される。メモリ101−2としては、例えばRAMなどの揮発性の半導体記憶装置が使用される。メモリ101−2は、図1に示す第1の実施の形態の記憶部15の一例である。
管理プログラム101fは、アプリケーションプログラム101hをどのCPUに実行させるかを管理するためのプログラムである。管理プログラム101fには、使用率採取モジュール、エラー情報収集モジュール、CPU数算出モジュール、CPU選定モジュールなどが含まれる。稼働時間・エラー管理簿101gは、各CPUの稼働時間や、発生したエラーが登録されたデータテーブルである。アプリケーションプログラム101hは、サーバ100が提供するサービスに関する情報処理を、CPU101b〜101eに実行させるためのプログラムである。OS101iは、サーバ100全体の動作を制御するためのプログラムである。
メモリブリッジ101−3は、プロセッサ101−1からのメモリ101−2へのアクセスを制御する制御回路である。I/Oブリッジ101−4は、プロセッサ101−1からHDD102などの周辺機器へのアクセスを制御する制御回路である。
HDD102には、メモリ101−2と同様に、管理プログラム102a、稼働時間・エラー管理簿102b、アプリケーションプログラム102c、およびOS102dが記憶される。HDD102に記憶された各種情報が、メモリ101−2に読み出され、プロセッサ101−1内のいずれかのCPUで実行される。
監視ユニット103は、制御部103−1とメモリ103−2とを有している。制御部103−1は、システムボード101から送られたエラー情報を、エラーログ103aとしてメモリ103−2に格納する。なおシステムボード101から送られたエラー情報は、訂正可能なエラーに関する情報であり、エラー情報にはエラーを発生させたCPUの識別番号が含まれる。また制御部103−1は、システムボード101内のCPU101aからの要求に応じて、メモリ103−2内のエラーログ103aを、そのCPU101aに送信する。
以上のようなハードウェア構成およびデータによって、第2の実施の形態の処理機能を実現することができる。なお、第1の実施の形態に示した装置も、図2に示したサーバ100と同様のハードウェアにより実現することができる。
プロセッサ101−1は、HDD102内のプログラムの少なくとも一部をメモリ101−2にロードし、プログラムを実行する。またサーバ100に実行させるプログラムを、光ディスク24、メモリ装置25、メモリカード27などの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ101−1からの制御により、HDD102にインストールされた後、実行可能となる。またプロセッサ101−1が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
次に、CPUの動作管理に用いる情報について詳細に説明する。
図4は、稼働時間・エラー管理簿の一例を示す図である。稼働時間・エラー管理簿101gには、Unit、実質稼働時間、訂正可能なエラー数、前回の平均使用率の欄が設けられている。Unitの欄には、管理対象のCPUの識別番号が設定される。実質稼働時間の欄には、対応するCPUの実質的な稼働時間が設定される。実質的な稼働時間とは、CPUがオンラインとなっていた時間に、そのCPUの平均使用率を乗算して得られる時間である。訂正可能なエラー数の欄には、対応するCPUで発生した訂正可能なエラーの数が設定される。前回の平均使用率の欄には、直近のシステム運用時における対応するCPUの平均使用率が設定される。
図5は、エラーログの一例を示す図である。エラーログ103aには、番号、時刻、およびUnitの欄が設けられている。番号の欄には、発生したエラーの識別番号が設定される。時刻の欄には、エラーの発生日時が設定される。Unitの欄は、エラーを発生させたCPUの識別番号が設定される。
管理プログラム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が実行することで実現される機能である。
OS110は、CPU101b〜101eの動作状況を監視し、使用率を算出する。使用率採取部120は、例えばシステムの停止時にCPU101b〜101eの使用率をOS110から採取する。使用率採取部120は、採取した使用率を稼働時間・エラー管理簿101gに設定する。エラー情報収集部130は、例えばシステムの停止時に、監視ユニット103からエラーログ103aを収集し、システム起動から停止までの訂正可能なエラー数を、CPUごとに集計する。そして、エラー情報収集部130は、集計したエラー数の値を、稼働時間・エラー管理簿101gに設定する。
CPU数算出部140は、例えばシステムの起動時に、稼働時間・エラー管理簿101gに基づいて、アプリケーションプログラム101hの実行に使用するCPU数を算出する。CPU選定部150は、例えばシステムの起動時に、稼働時間・エラー管理簿101gに基づいて、CPU数算出部140で算出されたCPU数分のCPUを、使用するCPUとして選定する。そしてCPU選定部150は、選定から漏れたCPUの動作を停止させる。
なお、図6に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。
次に、CPU動作管理処理について詳細に説明する。CPU動作管理処理は、システムの起動時と停止時とに行われる。以下、図7〜図9を参照してシステム起動時の処理を説明し、図10〜図12を参照してシステム停止時の処理を説明する。
図7は、システム起動時のCPU動作管理処理の手順の一例を示すフローチャートである。
[ステップS101]CPU101aは、OS110を起動する。
[ステップS102]OS110は、管理プログラム101fのCPU数算出モジュールに基づいて、CPU数算出部140を起動する。CPU数算出部140は、アプリケーションプログラム101hの実行に使用するCPU数の算出処理を実行する。CPU数算出処理の詳細は後述する(図8参照)。
[ステップS103]OS110は、管理プログラム101fのCPU選定モジュールに基づいて、CPU選定部150を起動する。CPU選定部150は、CPU101b〜101eのなかから、ステップS102で算出されたCPU数分のCPU選定処理を行う。CPU選定処理の詳細は後述する(図9参照)。
[ステップS104]CPU101aは、ステップS103で選択されたCPUに、アプリケーションプログラム101hの実行を指示する。指示を受けたCPUが、アプリケーションを起動する。その後、アプリケーションに基づいて、サーバ100がサービスを提供する。
図8は、CPU数算出処理の手順の一例を示すフローチャートである。
[ステップS111]CPU数算出部140は、アプリケーションの使用CPU数が固定か否かを判断する。例えばCPU数算出部140は、アプリケーションプログラム101hのプロパティなどの管理情報に、使用CPU数が指定されているかどうかを調査する。CPU数算出部140は、使用CPU数が指定されていれば、使用CPU数固定であると判断する。使用CPU数が固定の場合、処理が終了する。使用CPU数が固定でなければ、処理がステップS112に進められる。
[ステップS112]CPU数算出部140は、前回の平均使用率の合計の値を「0」に初期化する。
[ステップS113]CPU数算出部140は、アプリケーションプログラム101hの実行用に用意されたCPU数分(図3の例では「4」)だけ、ステップS114,S115の処理をループする。例えばCPU数算出部140は、稼働時間・エラー管理簿101gに登録されているCPUを、上から順に処理対象とする。
[ステップS114]CPU数算出部140は、処理対象のCPUの前回の平均使用率を、稼働時間・エラー管理簿101gから取得する。そしてCPU数算出部140は、取得した値を、前回の平均使用率の合計に加算する。
[ステップS115]CPU数算出部140は、処理対象のCPUを、稼働時間・エラー管理簿101g上での次のCPUに移動する。
[ステップS116]CPU数算出部140は、アプリケーションプログラム101hの実行用に用意されたすべてのCPU101b〜101eについて処理が完了したら、処理をステップS117に進める。
[ステップS117]CPU数算出部140は、前回の平均使用率の合計を60%で割った値を、使用するCPU数として算出する。除算の小数点以下の値は、切り上げるものとする。これにより、平均使用率を60%以下とするための使用CPU数が求められる。
次に、CPU選定処理について詳細に説明する。
図9は、CPU選定処理の手順の一例を示すフローチャートである。
[ステップS121]CPU選定部150は、稼働時間・エラー管理簿101gに登録されたCPU101b〜101eのエントリを、単位稼働時間当たりの訂正可能なエラー数で昇順に並べ替える。例えばCPU選定部150は、稼働時間・エラー管理簿101gの各CPUについて、訂正可能なエラー数を実質稼働時間で除算し、単位稼働時間当たりの訂正可能なエラー数を算出する。そしてCPU選定部150は、稼働時間・エラー管理簿101g内のCPU101b〜101eのエントリを、単位稼働時間当たりの訂正可能なエラー数が少ない順に並べる。
[ステップS122]CPU選定部150は、単位稼働時間当たりの訂正可能なエラー数が同じCPUについて、実質稼働時間で昇順に並べ替える。例えばCPU選定部150は、稼働時間・エラー管理簿101gから、単位稼働時間当たりの訂正可能なエラー数が同じCPU群を検出する。該当するCPU群がある場合、CPU選定部150は、稼働時間・エラー管理簿101g内の該当CPU群のエントリを、実質稼働時間が短い順に並べる。
[ステップS123]CPU選定部150は、アプリケーションプログラム101hの実行用に用意されたCPU数分(図3の例では「4」)だけ、ステップS124〜S126の処理をループする。例えばCPU選定部150は、稼働時間・エラー管理簿101gに登録されているCPUを、上から順に処理対象とする。すなわち単位時間当たりの訂正可能なエラー数が少ないCPUから順に、処理対象となる。また単位時間当たりの訂正可能なエラー数が同じCPUについては、実質稼働時間が短いCPUから順に処理対象となる。
[ステップS124]CPU選定部150は、ステップS124〜S126の処理のループ回数が、使用するCPU数以内か否かを判断する。ループ回数が使用するCPU数以内であれば、処理がステップS126に進められる。ループ回数が使用するCPU数を超えている場合、処理がステップS125に進められる。
[ステップS125]CPU選定部150は、処理対象のCPUをオフラインにする。オフラインとなったCPUは、アプリケーションプログラムの実行先から除外される。
[ステップS126]CPU選定部150は、処理対象のCPUを、稼働時間・エラー管理簿101g上での次のCPUに移動する。
[ステップS127]CPU選定部150は、アプリケーションプログラム101hの実行用に用意されたすべてのCPU101b〜101eについて処理が完了したら、CPU選定処理を終了する。
このようにして、システムの起動時に、単位稼働時間当たりのエラー数が多いCPUの使用が抑止される。これにより、信頼性の高いCPUを優先して使用することができる。なお、すべてのCPUの訂正可能なエラーの数が「0」の場合、単位稼働時間当たりのエラー数は、いずれのCPUも「0」となる。その場合、実質稼働時間が短いCPUが使用され、実質稼働時間が長いCPUの使用は抑止される。これにより、CPU間の信頼性の優劣が不明な場合には、システムが繰り返し起動されることで、すべてのCPUを均等に使用することができる。CPUが均等に使用されれば、単位稼働時間当たりのエラー数を算出結果で信頼性を判断したときの、判断結果の統計的な正確性が向上する。
システムの停止時には、次回のシステム起動時に使用する情報の収集が行われる。
図10は、システム停止時のCPU動作管理処理の手順の一例を示すフローチャートである。
[ステップS201]OS110は、アプリケーションプログラム101hを実行しているCPUに対して、実行を停止させる。
[ステップS202]OS110は、管理プログラム101fの使用率採取モジュールに基づいて、使用率採取部120を起動する。使用率採取部120は、システムの起動から停止までの各CPUの使用率の採取処理を実行する。使用率採取処理の詳細は後述する(図11参照)。
[ステップS203]OS110は、管理プログラム101fのエラー情報収集モジュールに基づいて、エラー情報収集部130を起動する。エラー情報収集部130は、システムの起動から停止までの各CPUのエラー情報を収集する。エラー情報収集処理の詳細は後述する(図12参照)。
[ステップS204]OS110は、動作を停止する。
次に、使用率採取処理の詳細について説明する。
図11は、使用率採取処理の手順の一例を示すフローチャートである。
[ステップS211]使用率採取部120は、アプリケーションプログラム101hの実行用に用意されたCPU数分(図3の例では「4」)だけ、ステップS212,S213の処理をループする。例えば使用率採取部120は、稼働時間・エラー管理簿101gに登録されているCPUを、上から順に処理対象とする。
[ステップS212]使用率採取部120は、前回の平均使用率を設定する。例えば使用率採取部120は、処理対象CPUの平均使用率を、OS110から取得する。使用率採取部120は、取得した平均使用率を、処理対象のCPUに関する前回の平均使用率として、稼働時間・エラー管理簿101g内に設定する。
[ステップS213]使用率採取部120は、処理対象のCPUの実質稼働時間の値を更新する。例えば使用率採取部120は、OS110から、システムの最後の起動から現在までの時間(稼働時間)を取得する。そして使用率採取部120は、処理対象のCPUの平均使用率に取得した稼働時間を乗算した値を、稼働時間・エラー管理簿101g内の該当CPUの実質稼働時間に加算する。
[ステップS214]使用率採取部120は、アプリケーションプログラム101hの実行用に用意されたすべてのCPU101b〜101eについて処理が完了したら、使用率採取処理を終了する。
次に、エラー情報収集処理について説明する。
図12は、エラー情報収集処理の手順の一例を示すフローチャートである。
[ステップS221]エラー情報収集部130は、アプリケーションプログラム101hの実行用に用意されたすべてのCPU101b〜101eの、訂正可能なエラー数を取得する。例えばエラー情報収集部130は、監視ユニット103から、システムの最後の起動から現在までの訂正可能なエラー情報を取得する。
[ステップS222]エラー情報収集部130は、アプリケーションプログラム101hの実行用に用意されたCPU数分(図3の例では「4」)だけ、ステップS223の処理をループする。例えばエラー情報収集部130は、稼働時間・エラー管理簿101gに登録されているCPUを、上から順に処理対象とする。
[ステップS223]エラー情報収集部130は、訂正可能なエラー数を更新する。例えばエラー情報収集部130は、ステップS221で取得した訂正可能なエラー情報に基づいて、処理対象のCPUに関するエラーの数を計数する。そしてエラー情報収集部130は、計数した値を、稼働時間・エラー管理簿101g内の処理対象のCPUの訂正可能なエラー数に加算する。
[ステップS224]エラー情報収集部130は、アプリケーションプログラム101hの実行用に用意されたすべてのCPU101b〜101eについて処理が完了したら、エラー情報収集処理を終了する。
以上の処理により、第2の実施の形態では、使用するCPUを起動時にローテーションし、各CPUの使用率を加味した稼働時間の実績と、訂正可能なエラー数を収集することで、信頼性の低いCPUを適切に判断し、そのCPUの動作を停止させることができる。
次に、システム全体の負荷に応じて使用するCPU数が3であり、その負荷が変動しないものとしたときの、単位時間あたりの訂正可能なエラー数の収集と、訂正不可能なエラーが発生しやすいCPUの判断の具体例を示す。
図13は、初回起動時における使用CPU選定の第1の例を示す図である。図13の例では、アプリケーションプログラム101hに対して、使用CPU数が「3」であることが予め定義されているものとする。この場合、システム起動時に、アプリケーションプログラム101h実行用に用意されている4つのCPU101b〜101eのうち、3つのCPUが使用される。
初回の起動時には、いずれのCPU101b〜101eについても、実質稼働時間および訂正可能なエラー数の値が「0」である。そこでCPU選定部150は、例えば、識別番号が若番のCPUから順に、使用対象として選択する。その結果、識別番号が最も大きい値「4」であるCPU101eは、使用対象から除外される。
CPU選定部150は、使用対象から除外されたCPU101eを、オフラインにする。そしてOS110は、オンラインとなっているCPU101b〜101dに対して、アプリケーションプログラム101hを実行させる。
なおアプリケーションプログラム101hで何個のCPUを使用するのかが、事前には定義されていない場合もある。
図14は、初回起動時における使用CPU選定の第2の例を示す図である。図14の例では、初回起動時には、アプリケーションプログラム101hの負荷が不明であるものとする。この場合、CPU選定部150は、システム全体の負荷を測定するため、1回目の起動時には、すべてのCPU101b〜101eを使用対象とする。OS110は、4つのCPU101b〜101eに対してアプリケーションプログラム101hを実行させる。
図13,図14に示した初回起動時の処理により、使用されたCPUの実質稼働時間が取得できる。また訂正可能なエラーが発生した場合、そのエラーがどのCPUから何回発生したのかについても取得できる。そしてシステム停止時に、稼働時間・エラー管理簿101gが更新される。次回以降のシステム起動時には、稼働時間・エラー管理簿101gの内容に応じて、使用するCPUが選定される。
図15は、2回目起動時における使用CPU選定例を示す図である。図15の例では、1回目のシステム運用時には、いずれのCPU101b〜101eからも訂正可能なエラーは検出されていない。実質稼働時間は、「前々回までの実施稼働時間」+「前回の稼働時間の実績」×「前回の平均使用率」で算出される。なお2回目起動時には、「前々回までの実施稼働時間」は「0」である。例えば「CPU1」について、前回のシステム運用時の稼働時間が20時間であり、平均使用率が0.5(50%)であったものとする。この場合、「CPU1」の実質稼働時間は10時間(0h+20h×0.5=10h)となる。
CPU選定部150は、すべてのCPU101b〜101eの訂正可能なエラー数が0の場合は、すべてのCPU101b〜101eの実質稼働時間を平等にするため、実質稼働時間が長いCPUは使用しない。図15の例では、識別番号「CPU1」CPU101bがオフラインとなり、使用が抑止される。なお、実質稼働時間が同じ場合は、CPU選定部150は、例えば識別番号が若番のCPUから使用対象として選定する。
このように、実質稼働時間が短いCPUお優先的に使用することで、初回起動時に停止していたCPU101eが使用されることとなり、CPU101eの動作情報を収集できるようになる。また実質稼働時間が最も長いCPU101bが停止されることで、実質稼働時間の差が縮まる。すなわち、実質稼働時間の均等化が図られる。
図16は、3回目起動時における使用CPU選定例を示す図である。図16の例では、1,2回目のシステム運用時には、いずれのCPU101b〜101eからも訂正可能なエラーは検出されていない。2回目のシステム運用時には、識別番号「CPU1」CPU101bの使用が抑止されたため、このCPU101bの実質稼働時間は増加していない。他のCPU101c〜101eは、実質稼働時間が増加している。その結果、識別番号「CPU2」CPU101cの実質稼働時間が最も大きくなっている。そこでCPU選定部150は、すべてのCPU101b〜101eの実質稼働時間を平等にするため、実質稼働時間が長いCPU101bの使用対象外としてオフライン化する。
以後、すべてのCPUにおいて訂正可能なエラーが発生していない間は、実質稼働時間が同等になるように、システムの起動時点で、実質稼働時間が最も長いCPUが使用対象外とされる。システムn回目(nは4以上の整数)の起動時には、1以上のCPUにおいて訂正可能なエラーが発生したものとする。
図17は、n回目の起動時における使用CPU選定例を示す図である。図17の例では、すべてのCPU101b〜101eについて、1回ずつ訂正可能なエラーが検出されている。この場合、CPU選定部150は、単位時間当たりの訂正可能なエラー数が最大であるCPUを、使用対象外とする。図17の例では、各CPU101b〜101eの訂正可能なエラー数が同じであるため、実質稼働時間が最も短い識別番号「2」のCPU101cが、単位時間当たりの訂正可能なエラー数が最大のCPUとなる。そこでCPU選定部150は、CPU101cを使用対象外としてオフラインにする。
さらにm回(mは1以上の整数)のシステムの停止・起動が繰り返されると、各CPU101b〜101eの訂正可能なエラー数もばらついてくる。
図18は、n+m回目の起動時における使用CPU選定例を示す図である。図18の例では、訂正可能なエラー回数は、識別番号「4」のCPU101eが最大である。ただし、単位時間当たりの訂正可能なエラー数は、識別番号「2」のCPU101cが最大である。この場合、CPU選定部150は、単位時間当たりの訂正可能なエラー数が最大であるCPU101cを、使用対象外とする。
これにより各CPUの稼働時間の実績に差異があっても、訂正不可能なエラーが発生しやすいCPUを適切に判断でき、そのCPUを使用しないことで、システムがダウンすることを抑止できる。また第2の実施の形態では、使用率を加味した稼働時間の実績を使う。これは、単純な稼働時間のみでは、ほとんどアイドル状態にならないCPUと、通常アイドル状態になっているCPUとを同等に扱ってしまうためである。稼働時間の実績の算出に利用率を加味することで、CPUが実際に使用された実績を正確に求めることができる。
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
10 情報処理装置
11〜14 プロセッサ(CPU)
15 記憶部
15a 動作情報管理テーブル
16 制御部

Claims (2)

  1. 複数のプロセッサそれぞれの使用時間とエラー発生状況とを示す動作情報を記憶する記憶部と、
    プログラムの実行開始時に、前記動作情報に基づいて、前記複数のプロセッサのうちの使用時間が短い方から所定数のプロセッサを、動作させる第1のプロセッサとして選択し、選択されていない第2のプロセッサを停止した状態で、前記第1のプロセッサに前記プログラムを実行させ、前記第1のプロセッサの稼働時間に前記第1のプロセッサの平均使用率を乗算した使用時間と、前記第1のプロセッサのエラー発生状況とを取得し、取得した該使用時間と該エラー発生状況とを前記記憶部に格納する制御部と、
    を有する情報処理装置。
  2. コンピュータに、
    プログラムの実行開始時に、複数のプロセッサそれぞれの使用時間とエラー発生状況とを示す動作情報に基づいて、前記複数のプロセッサのうちの使用時間が短い方から所定数のプロセッサを、動作させる第1のプロセッサとして選択し、
    選択されていない第2のプロセッサを停止した状態で、前記第1のプロセッサに前記プログラムを実行させ、
    前記第1のプロセッサの稼働時間に前記第1のプロセッサの平均使用率を乗算した使用時間と、前記第1のプロセッサのエラー発生状況を取得し、
    該使用時間と該エラー発生状況とを、前記動作情報として記憶部に格納する、
    処理を実行させるプログラム
JP2015127443A 2015-06-25 2015-06-25 情報処理装置、およびプログラム Active JP6558098B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015127443A JP6558098B2 (ja) 2015-06-25 2015-06-25 情報処理装置、およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015127443A JP6558098B2 (ja) 2015-06-25 2015-06-25 情報処理装置、およびプログラム

Publications (2)

Publication Number Publication Date
JP2017010421A JP2017010421A (ja) 2017-01-12
JP6558098B2 true JP6558098B2 (ja) 2019-08-14

Family

ID=57763631

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015127443A Active JP6558098B2 (ja) 2015-06-25 2015-06-25 情報処理装置、およびプログラム

Country Status (1)

Country Link
JP (1) JP6558098B2 (ja)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3541212B2 (ja) * 1993-12-28 2004-07-07 富士通株式会社 プロセッサ割当て装置
JP5259725B2 (ja) * 2008-10-31 2013-08-07 株式会社日立製作所 計算機システム
JP5440912B2 (ja) * 2009-07-02 2014-03-12 日本電気株式会社 情報処理装置及びそのプロセッサ管理方法
JP2012003594A (ja) * 2010-06-18 2012-01-05 Toyota Motor Corp 並列計算機
JP5648397B2 (ja) * 2010-09-28 2015-01-07 富士通株式会社 計算処理システム、そのジョブ分散配置方法及びジョブ分散配置プログラム
JP2014215765A (ja) * 2013-04-24 2014-11-17 株式会社三菱東京Ufj銀行 制御装置

Also Published As

Publication number Publication date
JP2017010421A (ja) 2017-01-12

Similar Documents

Publication Publication Date Title
US9389937B2 (en) Managing faulty memory pages in a computing system
US10223224B1 (en) Method and system for automatic disk failure isolation, diagnosis, and remediation
CN110083494B (zh) 在多核心环境中管理硬件错误的方法和装置
US20150149822A1 (en) Event handling in storage area networks
CN110399260B (zh) 用于预测性地服务和支持解决方案的系统和方法
TW201730764A (zh) 用來於一儲存系統中進行資料擦洗管理之方法與裝置
JP6369235B2 (ja) ストレージ制御装置およびストレージ制御プログラム
US20100083043A1 (en) Information processing device, recording medium that records an operation state monitoring program, and operation state monitoring method
US8122176B2 (en) System and method for logging system management interrupts
CN112181298B (zh) 阵列访问方法、装置、存储设备及机器可读存储介质
US20160357623A1 (en) Abnormality detection method and information processing apparatus
US11860718B2 (en) Register reading method and apparatus, device, and medium
US10613953B2 (en) Start test method, system, and recording medium
JP6558037B2 (ja) 運用管理プログラム、運用管理方法、および運用管理装置
JP5419819B2 (ja) 計算機システムの管理方法、及び管理システム
US11010249B2 (en) Kernel reset to recover from operating system errors
US9411695B2 (en) Provisioning memory in a memory system for mirroring
US9411666B2 (en) Anticipatory protection of critical jobs in a computing system
US11113163B2 (en) Storage array drive recovery
US11126486B2 (en) Prediction of power shutdown and outage incidents
JP6558098B2 (ja) 情報処理装置、およびプログラム
US20130318310A1 (en) Processor processing method and processor system
JP5342660B2 (ja) 管理システム及びシステム管理方法及びプログラム
US9928154B2 (en) Leveling stress factors among like components in a server
US20220214910A1 (en) Information processing system, information processing apparatus, and information processing method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180306

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181218

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181225

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190222

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190319

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190514

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20190514

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20190514

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: 20190618

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190701

R150 Certificate of patent or registration of utility model

Ref document number: 6558098

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150