JP6082305B2 - 計算機及び演算処理方法 - Google Patents
計算機及び演算処理方法 Download PDFInfo
- Publication number
- JP6082305B2 JP6082305B2 JP2013084371A JP2013084371A JP6082305B2 JP 6082305 B2 JP6082305 B2 JP 6082305B2 JP 2013084371 A JP2013084371 A JP 2013084371A JP 2013084371 A JP2013084371 A JP 2013084371A JP 6082305 B2 JP6082305 B2 JP 6082305B2
- Authority
- JP
- Japan
- Prior art keywords
- computer
- program
- request
- load
- execution
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Hardware Redundancy (AREA)
- Debugging And Monitoring (AREA)
Description
プログラム実行処理部は、指示を受けて所定のプログラムを実行する機能と、指示を受けて実行中のプログラムにおけるCPUに対する負荷を低減させる機能と、指示を受けて前記CPUに対する負荷を低減させた前記プログラムの、前記CPUに対する負荷を復旧させる機能を持っている。
また、入出力制御部は、ネットワークを通じて他の計算機から所定のメッセージを受信したことに基づいて、実行中のプログラムにおけるCPUに対する負荷を低減させる処理をプログラム実行処理部に指示し、他の計算機から受信した実行依頼プログラムの実行をプログラム実行処理部に指示する。そして、実行依頼プログラムの実行が終了したことに基づいて実行依頼プログラムの実行結果を他の計算機に返信すると共に、CPUに対する負荷を低減させたプログラムの、CPUに対する負荷を復旧させる処理をプログラム実行処理部に指示する。
更に、プログラム転送先計算機管理テーブルは、計算機を一意に識別する情報が格納される計算機アドレスフィールドと、前記計算機のCPUに対する負荷の値である計算機負荷値が格納される計算機負荷値フィールドと、前記計算機負荷値フィールドの値と所定の閾値とを比較して、所望の実行依頼プログラムを実行可能か否かを判定した判定結果が格納される判定結果フィールドを持つっている。
そして、入出力制御部は、実行依頼プログラムの実行を依頼するために、ネットワークを通じて他の計算機に計算機負荷値を問い合わせ、他の計算機から受信した計算機負荷値をプログラム転送先計算機管理テーブルの計算機負荷値フィールドに格納する。また、所望の実行依頼プログラムを実行可能か否かを判定した判定結果を判定結果フィールドに格納する。
また、入出力制御部は、プログラム転送先計算機管理テーブルの全レコードの判定結果フィールドが否定的結果であった場合に、ネットワークを通じて、実行依頼プログラムの優先順位を伴って再度前記計算機負荷値を問い合わせ、ネットワークを通じて他の計算機から受信した計算機負荷値をプログラム転送先計算機管理テーブルの計算機負荷値フィールドに格納し、再度所望の実行依頼プログラムを実行可能か否かを判定した判定結果を前記判定結果フィールドに格納する。そして、プログラム転送先計算機管理テーブルの判定結果フィールドに肯定的結果のレコードがあった場合に、レコードに係る計算機に実行依頼プログラムを送信する。
上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
ある計算機が他の計算機に対して負荷状態を問い合わせた際に、全ての計算機が高負荷状態である場合、問い合わせを行った計算機はもう一度、他の計算機に対して負荷状態を問い合わせる。この時、問い合わせには「要求サスペンドレベル」を付加する。これに対し、問い合わせを受けた計算機は、実行中のプログラムのうち、要求サスペンドレベルに合致するプログラムを一時停止(サスペンド:suspend)する。そして、処理能力に余裕ができた計算機を選択して、プログラムの実行を依頼する。
なお、プログラム、転じてプロセスを一時停止する機能は、一例としてPOSIX系OSでは「kill -STOP」というコマンドで標準装備されている。
図1は、本発明の実施形態であるネットワークシステム101の模式図である。
今、ネットワーク102には複数の計算機103が接続されている。これら計算機103は、その計算機103自身が置かれている状況に応じて、所定のプログラムを実行する。このうち、ある計算機103は、自身の負荷が重くなり、その処理能力を超えてしまいそうな状況に陥る。この計算機103は、ネットワーク102に接続されている他の計算機103に負荷の状況を問い合わせて、負荷が軽く、演算能力に余裕がある計算機103を見つける。そして、その負荷が軽い計算機103に、プログラムの実行を依頼する。
なお、説明を簡単にするため、ネットワーク102はTCP/IPネットワークであり、図1のネットワーク102に接続されている依頼元計算機104及び他計算機105は、全て同一のサブネットに属するプライベートIPアドレスが付与されているものとする。
すなわち、依頼元計算機104はネットワーク102上に存在する全ての他計算機105に対し、負荷の状況を問い合わせる。そして、全ての他計算機105の中から依頼先計算機106を一台決定して、プログラムの実行を依頼する。
図2は、計算機103のハードウェア構成を示すブロック図である。
計算機103は、CPU201、ROM202、RAM203、不揮発性ストレージ204とNIC(Network Information Card)205が、バス206に接続されて構成される。なお、計算機103にパーソナルコンピュータを用いる場合、表示部207及び操作部208を伴うが、表示部207及び操作部208は必ずしも必要とはされない。
不揮発性ストレージ204にはネットワークOSと、本実施形態の計算機103を機能させるためのプログラムが格納されている。
図3は、計算機103のソフトウェア上における機能を示すブロック図である。
入出力制御部301は、ネットワーク102を通じて他計算機105或は依頼元計算機104との間で、メッセージ、プログラム、そしてプログラムの実行結果の送受信を行う。
なお、入出力制御部301が他計算機105或は依頼元計算機104との間で、メッセージ、プログラム、そしてプログラムの実行結果の送受信を行う際に用いるプロトコルには、特に限定される要素はない。したがって、実装が容易なHTTP(Hyper Text Transfer Protocol)等、適切なものを用いればよい。
タスクマネージャとも呼ばれるシステムモニタ304は、現在実行中のプログラムと、それらプログラムが使用しているCPUの演算能力を逐一入出力制御部301に報告する。
この実行中プログラム管理テーブル306は、計算機103が依頼先計算機106として動作する際に必要なテーブルである。
ネットワーク102に接続される全ての計算機103は、依頼元計算機104であっても他計算機105であっても、そのハードウェア構成とソフトウェアの機能は殆ど変わらない。したがって、どの計算機103同士も絶対的な上下関係は存在しない。高負荷状態になった場合、その計算機103は依頼元計算機104になり、それ以外の計算機103は他計算機105となり、その中で依頼元計算機104から選ばれた一台の計算機103が依頼先計算機106になる。
図4は、各種データの構成と内容の一例を示す図である。
要求メッセージ401は、要求種別フィールドと、要求サスペンドレベルフィールドよりなる。
要求種別フィールドには、依頼元計算機104が他計算機105に対し、何を伝えたいのかを示す種別情報が格納される。この種別情報は、「負荷問い合わせ」と「プログラム実行依頼」の二種類である。
要求サスペンドレベルフィールドには、依頼元計算機104が他計算機105に対して、種別情報に伴うサスペンドレベルを示す情報が格納される。サスペンドレベルについては後述する計算機負荷判断ルールにて詳述する。
図4では、「負荷問い合わせ」と「プログラム実行依頼」を列挙して表示しているが、実際に送信されるメッセージはこれら二種類のメッセージのうちのいずれか片方である。
計算機IPアドレスフィールドは、依頼元計算機104のIPアドレスが格納される。
計算機負荷値フィールドは、依頼元計算機104に返答する、現在のCPUの負荷状態を示す値が格納される。
この負荷応答メッセージ402は、依頼元計算機104から受信した要求メッセージ401が「負荷問い合わせ」であった場合に、当該計算機103から依頼元計算機104へ返送されるメッセージである。
サスペンドレベルは、あるプログラムの優先順位或は重要度を示す。サスペンドレベルは「A」が最も高く、「B」が「A」の次に高く、「C」が最も低い。
許容負荷閾値は、あるサスペンドレベルに対応するプログラムを実行するに際し、許容されるCPUの負荷状態の閾値である。
サスペンドレベル「A」のプログラムの実行を許可できる場合は、CPUの許容負荷閾値は0%以上5%未満迄である。
サスペンドレベル「B」のプログラムの実行を許可できる場合は、CPUの許容負荷閾値は5%以上10%未満迄である。
サスペンドレベル「C」のプログラムの実行を許可できる場合は、CPUの許容負荷閾値は10%以上20%未満迄である。
要求サスペンドレベルとは、サスペンド、すなわちプログラムの一時停止を要求する対象となるサスペンドレベルである。
本実施形態の計算機103は、実行を依頼するプログラムと同じサスペンドレベルのプログラムを一時停止の対象とする。
すなわち、依頼元計算機104が依頼先計算機106へサスペンドレベル「A」のプログラムの実行を依頼する場合、依頼先計算機106は、実行中のプログラムのうち、サスペンドレベル「A」のプログラムの実行を一時停止する。
同様に、依頼元計算機104が依頼先計算機106へサスペンドレベル「B」のプログラムの実行を依頼する場合、依頼先計算機106は、実行中のプログラムのうち、サスペンドレベル「B」のプログラムの実行を一時停止する。
同様に、依頼元計算機104が依頼先計算機106へサスペンドレベル「C」のプログラムの実行を依頼する場合、依頼先計算機106は、実行中のプログラムのうち、サスペンドレベル「C」のプログラムの実行を一時停止する。
なお、依頼元計算機104から送信される要求メッセージ401の要求サスペンドレベルが「NULL」の場合、依頼先計算機106は実行中のプログラムに対して一時停止を行わない。
計算機IPアドレスフィールドには、計算機103のIPアドレスが格納される。なお、IPアドレスは計算機103を一意に識別する情報であることを鑑みれば、本実施形態のネットワークシステム101がTCP/IPネットワークでない場合であっても、計算機を一意に識別する情報がこのフィールドに格納される。そのような場合、このフィールドは「計算機アドレスフィールド」と呼ぶこともできる。
計算機負荷値フィールドには、計算機103の負荷値が格納される。
第一判定結果フィールドには、第一回目の判定結果が格納される。
サスペンド時負荷値フィールドには、仮に計算機103が依頼先計算機106となり、依頼元計算機104の要求メッセージ401を受けて、所定のサスペンドレベルに該当するプログラムの実行を一時停止した場合における、計算機103の負荷値が格納される。
第二判定結果フィールドには、第二回目の判定結果が格納される。
受信完了フラグフィールドには、他計算機105の負荷値を受信して、その負荷値に基いて第一判定結果フィールド又は第二判定結果フィールドに判定結果を格納したか否かを示すフラグが格納される。
計算機選択フラグフィールドには、プログラムの実行を依頼する対象となった計算機103を示すフラグが格納される。
プログラム名フィールドには、実行中又はサスペンド中のプログラムの名称が格納される。
動作状態フィールドには、プログラムの動作状態、すなわち当該プログラムが実行中であるのか、又はサスペンド中であるのかを示すフラグが格納される。
サスペンドレベルフィールドには、プログラムのサスペンドレベルが格納される。
CPU占有率フィールドには、プログラムがCPUの演算能力を占有している割合が格納される。
プログラム名フィールドには、依頼元計算機104から依頼されて現在実行中であるプログラムの名称が格納される。
依頼元IPアドレスフィールドには、依頼元計算機104のIPアドレスが格納される。
計算機103が依頼先計算機106として動作していない状態では、図4の矢印に示すように実行中依頼プログラム情報307は何れのフィールドも空(NULL)になる。
プログラム名フィールドには、プログラムの名称が格納される。
サスペンドレベルフィールドには、プログラムのサスペンドレベルが格納される。
図5は、依頼元計算機104が依頼先計算機106にサスペンドを伴わないプログラムの実行を依頼するタイムチャートである。
先ず、依頼元計算機104は他計算機105に要求メッセージ401を送信して、計算機103の負荷値を問い合わせる(S501)。この時、要求メッセージ401の要求種別は「負荷問い合わせ」であり、要求サスペンドレベルは無指定を意味する「NULL」である。
すると、要求メッセージ401を受信した他計算機105は、システムモニタ304を通じて現在の自身の負荷状態、即ち計算機負荷値を取得して、依頼元計算機104へ負荷応答メッセージ402を返信する(S502)。
すると、要求メッセージ401を受信した依頼先計算機106は、即座に依頼元計算機104へ準備が完了した旨を示す準備完了メッセージを返信する(S505)。
すると、プログラムを受信した依頼先計算機106は、当該プログラムを一旦プログラム記憶領域303に記憶した後、プログラムを実行する。そして、プログラムの実行が終了したら、その実行結果を依頼元計算機104へ返信する(S507)。
依頼元計算機104は、依頼先計算機106から実行結果を受信して、一連の処理を終了する(S508)。
先ず、依頼元計算機104は他計算機105に要求メッセージ401を送信して、計算機103の負荷値を問い合わせる(S601=S501)。この時、要求メッセージ401の要求種別は「負荷問い合わせ」であり、要求サスペンドレベルは無指定を意味する「NULL」である。
すると、要求メッセージ401を受信した他計算機105は、システムモニタ304を通じて現在の自身の負荷状態、即ち計算機負荷値を取得して、依頼元計算機104へ負荷応答メッセージ402を返信する(S602=S502)。
すると、要求メッセージ401を受信した他計算機105は、要求サスペンドレベルが同じプログラムを一時停止させた状態における、自身の負荷状態、即ち「サスペンドを伴う計算機負荷値」を算出する。そして、依頼元計算機104へ負荷応答メッセージ402を返信する(S605)。
すると、要求メッセージ401を受信した依頼先計算機106は、要求サスペンドレベルが同じプログラムを全て一時停止させる(S608)。そして、依頼元計算機104へ準備が完了した旨を示す準備完了メッセージを返信する(S609)。
すると、プログラムを受信した依頼先計算機106は、当該プログラムを一旦プログラム記憶領域303に記憶した後、プログラムを実行する。そして、プログラムの実行が終了したら、その実行結果を依頼元計算機104へ返信する(S611)。更に、依頼先計算機106は依頼元計算機104に実行結果を送信したらサスペンドを解除し、一時停止していたプログラムを動作状態に復帰させる(S612)。
依頼元計算機104は、依頼先計算機106から実行結果を受信して(S613)、一連の処理を終了する。
先ず、依頼元計算機104は他計算機105に要求メッセージ401を送信して、計算機103の負荷値を問い合わせる(S701=S601)。この時、要求メッセージ401の要求種別は「負荷問い合わせ」であり、要求サスペンドレベルは無指定を意味する「NULL」である。
すると、要求メッセージ401を受信した他計算機105は、システムモニタ304を通じて現在の自身の負荷状態、即ち計算機負荷値を取得して、依頼元計算機104へ負荷応答メッセージ402を返信する(S702=S602)。
すると、要求メッセージ401を受信した他計算機105は、要求サスペンドレベルが同じプログラムを一時停止させた状態における、自身の負荷状態、即ち「サスペンドを伴う計算機負荷値」を算出して、依頼元計算機104へ負荷応答メッセージ402を返信する(S705=S605)。
本実施形態では、負荷問い合わせを二回行う。更に、二回目の負荷問い合わせは、実行中のプログラムを一時停止させた状態における計算機負荷値を問い合わせている。これにより、依頼元計算機104は他計算機105にプログラムの実行を依頼できる可能性が高まる。
図8は、依頼元計算機104における動作の流れを示すフローチャートである。
依頼元計算機104が処理を開始すると(S801)、依頼元計算機104の入出力制御部301はプログラム転送先計算機管理テーブル305に登録されている他計算機105に対し、負荷問い合わせ処理を行う(S802)。その結果、他計算機105の中にプログラムの実行を依頼できる計算機103が存在するなら(S803のYES)、入出力制御部301は当該計算機103を依頼先計算機106と認定する。そして、依頼先計算機106に対してプログラムの送信を要求するメッセージ、すなわち要求種別フィールドが「プログラム実行依頼」である要求メッセージ401を送信する(S804)。その後、入出力制御部301は処理を依頼するプログラムを依頼先計算機106へ送信し、実行結果を受信して(S805)、一連の処理を終了する(S806)。
なお、これ以降に説明するフローチャートにおいて、動作の判断に使用するカウンタ変数iが表記されるが、このカウンタ変数iは局所変数である。すなわち、他のフローチャートに用いられるカウンタ変数iとは独立しており、相互に影響しない。
依頼元計算機104が処理を開始すると(S901)、最初に依頼元計算機104の入出力制御部301はカウンタ変数iの値を「1」に初期化する。そしてこれと共に、入出力制御部301はプログラム転送先計算機管理テーブル305の全てのレコードの第一判定結果フィールド、第二判定結果フィールド及び受信完了フラグフィールドの値を「偽」に初期化する(S902)。
依頼元計算機104が処理を開始すると(S1001)、依頼元計算機104の入出力制御部301は他計算機105から受信した負荷応答メッセージ402に含まれている計算機IPアドレスを用いて、プログラム転送先計算機管理テーブル305のレコードを特定する(S1002)。そして、入出力制御部301は他計算機105から受信した計算機103の負荷値を計算機負荷値フィールド又はサスペンド時負荷値フィールドへ、また負荷値に基づく判定結果を第一判定結果フィールド又は第二判定結果フィールドへ書き込む。更に、入出力制御部301は当該レコードの受信完了フラグフィールドの値を「真」に設定して(S1003)、一連の処理を終了する(S1004)。
図10の問い合わせ応答受信処理は、図9の負荷問い合わせ処理と並行して、他計算機105から負荷応答メッセージ402を受信したことに呼応して起動され、マルチタスク或はマルチスレッドにて実行される。
依頼元計算機104が処理を開始すると(S1101)、依頼元計算機104の入出力制御部301は最初にカウンタ変数iを「1」に初期化する(S1102)。
次に、入出力制御部301はプログラム転送先計算機管理テーブル305のi番目のレコードが存在するか否か、確認する(S1103)。レコードが存在するなら(S1103のYES)、入出力制御部301はi番目のレコードの第一判定結果フィールド及び第二判定結果フィールドの何れかの値が「真」であるか否かを確認する(S1104)。何れの値も共に「偽」であるなら(S1104のNO)、入出力制御部301はカウンタ変数iを1インクリメントして(S1105)、再びステップS1103から処理を繰り返す。
この時点で、プログラム転送先計算機管理テーブル305には、計算機選択フラグフィールドが「真」であるレコードが一つだけ存在する。
この時点で、プログラム転送先計算機管理テーブル305には、計算機選択フラグフィールドが「真」であるレコードが一つもない。
図12は、他計算機105における動作の流れを示すフローチャートである。
他計算機105が依頼元計算機104から要求メッセージ401を受信すると(S1201)、他計算機105の入出力制御部301は、受信した要求メッセージ401の要求種別が「負荷問い合わせ」なのか「プログラム実行依頼」なのかを確認する(S1202)。
要求メッセージ401の要求サスペンドレベルが「A」、「B」又は「C」の有効な値でない「NULL」ならば(S1203のNO)、入出力制御部301はシステムモニタ304から現在の計算機103自身の負荷状態、すなわち計算機負荷値を取得する(S1204)。そして、依頼元計算機104へ負荷応答メッセージ402を返信し(S1205)、一連の処理を終了する(S1206)。
ステップS1207において算出する計算機負荷値は、サスペンドを行った場合ならCPU占有率はどうなるのかを予測する演算処理によって得られる「予想負荷状態」である。
要求メッセージ401の要求サスペンドレベルが「NULL」ならば(S1208のNO)、入出力制御部301は依頼元計算機104へ準備完了メッセージを返信し(S1209)、プログラム受信処理を実行する(S1210)。その後、一連の処理を終了する(S1206)。
依頼先計算機106が処理を開始すると(S1301)、依頼先計算機106の入出力制御部301は依頼元計算機104から実行の依頼対象となるプログラムを受信する(S1302)。そして、プログラムを実行して(S1303)、実行結果を依頼元計算機104に送信して(S1304)、サスペンド解除処理を行い(S1305)、一連の処理を終了する(S1306)。
依頼先計算機106が処理を開始すると(S1401)、依頼先計算機106の入出力制御部301は最初にカウンタ変数iを「1」に初期化する(S1402)。
次に、入出力制御部301は実行中プログラム管理テーブル306のi番目のレコードが存在するか否か、確認する(S1403)。レコードが存在するなら(S1403のYES)、入出力制御部301は次にi番目のレコードのサスペンドレベルフィールドを見て、i番目のレコードのプログラムはサスペンドの対象であるか否かを確認する(S1404)。
その後、入出力制御部301はカウンタ変数iを1インクリメントして(S1407)、再びステップS1403から処理を繰り返す。
ステップS1403にて、i番目のレコードが存在しないなら(S1403のNO)、入出力制御部301は一連の処理を終了する(S1408)。
依頼先計算機106が処理を開始すると(S1501)、依頼先計算機106の入出力制御部301は最初にカウンタ変数iを「1」に初期化する(S1502)。
次に、入出力制御部301は実行中プログラム管理テーブル306のi番目のレコードが存在するか否か、確認する(S1503)。レコードが存在するなら(S1503のYES)、入出力制御部301は次にi番目のレコードのサスペンドレベルフィールドを見て、i番目のレコードのプログラムは現在サスペンド中であるか否かを確認する(S1504)。
その後、入出力制御部301はカウンタ変数iを1インクリメントして(S1507)、再びステップS1503から処理を繰り返す。
ステップS1503にて、i番目のレコードが存在しないなら(S1503のNO)、入出力制御部301は一連の処理を終了する(S1508)。
入出力制御部301は、図8、図9、図10及び図11に示したフローチャートに従い、依頼元計算機104、すなわちクライアントとして動作して、他の計算機103へ種々のメッセージを送信する。
クライアントから種々のメッセージを受信した入出力制御部301は、図12、図13、図14及び図15に示したフローチャートに従い、他計算機105又は依頼先計算機106、すなわちサーバとして動作して、種々のメッセージを返信する。
すなわち、入出力制御部301はクライアントとしてもサーバとしても動作する。
(1)例えば、POSIX系OSにおける「kill -STOP」コマンドを実行すると、CPUの負荷は低減するが、RAM203は開放されない。そこで、プログラム実行処理部302が所定のプログラムを実行する際、プログラムが利用するRAM203のアドレスを管理する。そして、当該プログラムを一時停止する際、プログラムが専有していたRAM203の内容を不揮発性ストレージ204に書き出し、一時停止から復帰する際に不揮発性ストレージ204からRAM203の内容を読み戻せば、RAM203も余裕ができる。
例えば、実行を依頼されるプログラムのサスペンドレベルが「A」なら、サスペンドレベル「B」と「C」のプログラムをサスペンドする。
同様に、実行を依頼されるプログラムのサスペンドレベルが「B」なら、サスペンドレベル「C」のプログラムをサスペンドする。
同様に、実行を依頼されるプログラムのサスペンドレベルが「B」なら、何れのプログラムもサスペンドしない。
また逆に、ある計算機103において、他の依頼元計算機104から実行を依頼されるプログラムが同時に実行される数を、厳密に一つだけに限定することもできる。これを実現するには、既に依頼元計算機104からプログラムの実行を受け付けている場合には、負荷応答メッセージのホスト負荷値をプログラムの実行の受付が不可能な値に、例えば100%として報告する。こうすることで、既にプログラムの実行を受け付けた後から来るプログラムの実行依頼を拒否することができる。
この場合、プログラム転送先計算機管理テーブル305は、次の二つのフィールドを有する。一つは、サスペンドを伴わない計算値負荷値又はサスペンドを伴うサスペンド時負荷値が格納される「計算機負荷値フィールド」である。もう一つは、サスペンドを伴わない場合の第一判定結果又はサスペンドを伴う場合の第二判定結果が格納される「判定結果フィールド」である。
依頼元計算機104が他計算機105に対して負荷状態を問い合わせた際に、全ての計算機が高負荷状態である場合、問い合わせを行った依頼元計算機104はもう一度、他計算機105に対して負荷状態を問い合わせる。この時、問い合わせには「要求サスペンドレベル」を付加する。これに対し、問い合わせを受けた他計算機105は、実行中のプログラムのうち、要求サスペンドレベルに合致するプログラムをサスペンドする。そして、処理能力に余裕ができた計算機を依頼先計算機106と決定して、プログラムの実行を依頼する。
このように、処理の優先度が高いプログラムを優先的にネットワークシステム101全体の演算能力へ割り当てることで、ネットワークシステム101全体の可用性が向上する。計算機103がこのような機能を備えることで、緊急性の高いプログラムは優先的に実行される。したがって、制御対象の安全性も向上する。
例えば、上記した実施形態例は本発明をわかりやすく説明するために装置及びシステムの構成を詳細且つ具体的に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることは可能であり、更にはある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることも可能である。
また、上記の各構成、機能、処理部等は、それらの一部又は全部を、例えば集積回路で設計するなどによりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行するためのソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の揮発性或は不揮発性のストレージ、または、ICカード、光ディスク等の記録媒体に保持することができる。
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしもすべての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
Claims (6)
- 指示を受けて所定のプログラムを実行する機能と、指示を受けて実行中のプログラムにおけるCPUに対する負荷を低減させる機能と、指示を受けて前記CPUに対する負荷を低減させた前記プログラムの、前記CPUに対する負荷を復旧させる機能とを備える、プログラム実行処理部と、
ネットワークに接続され、前記ネットワークを通じて他の計算機から所定のメッセージを受信したことに基づいて、実行中のプログラムにおけるCPUに対する負荷を低減させる処理を前記プログラム実行処理部に指示し、前記他の計算機から受信した実行依頼プログラムの実行を前記プログラム実行処理部に指示し、前記実行依頼プログラムの実行が終了したことに基づいて前記実行依頼プログラムの実行結果を前記他の計算機に返信すると共に、前記CPUに対する負荷を低減させた前記プログラムの、前記CPUに対する負荷を復旧させる処理を前記プログラム実行処理部に指示する、入出力制御部と、
計算機を一意に識別する情報が格納される計算機アドレスフィールドと、前記計算機のCPUに対する負荷の値である計算機負荷値が格納される計算機負荷値フィールドと、前記計算機負荷値フィールドの値と所定の閾値とを比較して、所望の実行依頼プログラムを実行可能か否かを判定した判定結果が格納される判定結果フィールドとを有するプログラム転送先計算機管理テーブルと、を備え、
前記入出力制御部は、前記実行依頼プログラムの実行を依頼するために、前記ネットワークを通じて他の計算機に前記計算機負荷値を問い合わせ、前記ネットワークを通じて前記他の計算機から受信した前記計算機負荷値を前記プログラム転送先計算機管理テーブルの前記計算機負荷値フィールドに格納し、前記所望の実行依頼プログラムを実行可能か否かを判定した判定結果を前記判定結果フィールドに格納すると共に、
前記プログラム転送先計算機管理テーブルの全レコードの前記判定結果フィールドが否定的結果であった場合に、前記ネットワークを通じて、前記実行依頼プログラムの優先順位を伴って再度前記計算機負荷値を問い合わせ、前記ネットワークを通じて他の計算機から受信した前記計算機負荷値を前記プログラム転送先計算機管理テーブルの前記計算機負荷値フィールドに格納し、再度前記所望の実行依頼プログラムを実行可能か否かを判定した判定結果を前記判定結果フィールドに格納して、
前記プログラム転送先計算機管理テーブルの前記判定結果フィールドに肯定的結果のレコードがあった場合に、前記レコードに係る計算機に前記実行依頼プログラムを送信する、
ことを特徴とする計算機。 - 更に、実行中又は負荷低減中のプログラムの名称が格納されるプログラム名フィールドと、前記プログラムの優先順位が格納されるサスペンドレベルフィールドとを有する実行中プログラム管理テーブルとを具備し、
前記入出力制御部は、前記実行依頼プログラムの優先順位と前記実行中プログラム管理テーブルのサスペンドレベルフィールドの値とを比較して、前記CPUに対する負荷を低減させる処理を実施するプログラムを選ぶ、
請求項1に記載の計算機。 - 更に、前記CPUの負荷状態を報告するシステムモニタを具備し、
前記入出力制御部は、前記他の計算機から所定のメッセージを受信したことに基づいて、前記システムモニタから得た前記CPUの負荷状態を前記他の計算機へ報告し、前記他の計算機から前記優先順位を伴う所定のメッセージを受信したことに基づいて、前記システムモニタから得た前記CPUの負荷状態から、前記CPUに対する負荷を低減させる処理を実施するプログラムを選んだ場合における、前記CPUの予想負荷状態を前記他の計算機へ報告する、請求項2に記載の計算機。 - 前記入出力制御部は、前記実行依頼プログラムの優先順位と前記実行中プログラム管理テーブルのサスペンドレベルフィールドの値とが同じプログラムに対して、前記CPUに対する負荷を低減させる処理を実施する、
請求項3に記載の計算機。 - 前記入出力制御部は、前記実行依頼プログラムの優先順位に比べて前記実行中プログラム管理テーブルのサスペンドレベルフィールドの値が低いプログラムに対して、前記CPUに対する負荷を低減させる処理を実施する、
請求項3に記載の計算機。 - 依頼元計算機からネットワークを通じてプログラム転送先計算機管理テーブルに登録されている他の計算機に計算機負荷値を問い合わせる要求メッセージを送信するステップと、
前記要求メッセージを受信した前記他の計算機における、現在の自身の負荷状態である計算機負荷値を負荷応答メッセージとして前記依頼元計算機に返信するステップと、
前記他の計算機からの前記負荷応答メッセージに基づいて、前記他の計算機の中にプログラムの実行を依頼できる前記他の計算機が存在するか否かを判定するステップと、
前記他の計算機が前記プログラムの実行を依頼できる、他の計算機が存在すると判定された場合には、入出力制御部において、前記他の計算機を依頼先計算機と認定するステップと、
前記依頼元計算機から前記依頼先計算機に、実行を依頼する前記プログラムを送信し、依頼先計算機から実行結果を受信して一連の処理を終了するステップと、
前記依頼先計算機からの実行結果を受信した後に、前記入出力制御部がプログラム転送先計算機管理テーブルを初期化するステップと、
前記他の計算機の中にプログラムの実行を依頼できる他の計算機が存在しないと判定された場合には、前記入出力制御部において、先に送信した前記要求メッセージに要求サスペンドレベルを設定していたか否かを確認するステップと、
前記要求メッセージが要求サスペンドレベルを設定していない場合には、要求サスペンドレベルを設定して、再び要求サスペンドレベルを伴う計算機負荷値を問い合わせる要求メッセージを送信するステップと、
前記他の計算機の全てが要求サスペンドレベルを設定しており、他の計算機の全てにおいて、前記他の計算機の中にプログラムの実行を依頼できる計算機が存在しない場合には、依頼元計算機自身が当該プログラムを実行して、一連の処理を終了するステップと、
を含む演算処理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013084371A JP6082305B2 (ja) | 2013-04-12 | 2013-04-12 | 計算機及び演算処理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013084371A JP6082305B2 (ja) | 2013-04-12 | 2013-04-12 | 計算機及び演算処理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014206879A JP2014206879A (ja) | 2014-10-30 |
JP6082305B2 true JP6082305B2 (ja) | 2017-02-15 |
Family
ID=52120376
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013084371A Expired - Fee Related JP6082305B2 (ja) | 2013-04-12 | 2013-04-12 | 計算機及び演算処理方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6082305B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6415405B2 (ja) | 2015-07-31 | 2018-10-31 | 本田技研工業株式会社 | タスク制御システム |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05101019A (ja) * | 1991-10-09 | 1993-04-23 | Nec Corp | 自動負荷検出分配型分散処理方法 |
JP2000330799A (ja) * | 1999-05-21 | 2000-11-30 | Casio Comput Co Ltd | ジョブ処理装置及び記憶媒体 |
-
2013
- 2013-04-12 JP JP2013084371A patent/JP6082305B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2014206879A (ja) | 2014-10-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10069749B1 (en) | Method and apparatus for disaggregated overlays via application services profiles | |
US10715460B2 (en) | Opportunistic resource migration to optimize resource placement | |
CN108667867B (zh) | 数据存储方法及装置 | |
CN103999031B (zh) | 云服务器的虚拟私有存储阵列服务 | |
JP5088366B2 (ja) | 仮想計算機制御プログラム、仮想計算機制御システムおよび仮想計算機移動方法 | |
JP6190969B2 (ja) | マルチテナントリソース調停方法 | |
JP5931196B2 (ja) | I/oノード及び複数の計算ノードに備えられたキャッシュメモリの制御方法 | |
JP5000456B2 (ja) | 資源管理システム、資源管理装置およびその方法 | |
US20110145153A1 (en) | Negotiating agreements within a cloud computing environment | |
US10235047B2 (en) | Memory management method, apparatus, and system | |
TW201214284A (en) | Virtualization and dynamic resource allocation aware storage level reordering | |
Psaras | Decentralised edge-computing and IoT through distributed trust | |
JP6293683B2 (ja) | 計算機システム及び計算機システムの性能障害の対処方法 | |
CN111443870A (zh) | 一种数据处理的方法、设备及存储介质 | |
WO2015145598A1 (ja) | 並列演算処理システムのデータ配分装置、データ配分方法、及びデータ配分プログラム | |
CN107528871B (zh) | 存储系统中的数据分析 | |
US10776173B1 (en) | Local placement of resource instances in a distributed system | |
JP6082305B2 (ja) | 計算機及び演算処理方法 | |
KR102357308B1 (ko) | 쇼핑몰업 대상 세무 서비스 제공을 위한 서버의 부하 분산 운영 방법, 장치 및 시스템 | |
US11336519B1 (en) | Evaluating placement configurations for distributed resource placement | |
JP2013186520A (ja) | コンピュータシステム、サーバ装置、負荷分散方法、及びプログラム | |
Butt et al. | Integration of cloud-fog based environment with smart grid | |
Sakib et al. | A proposal on cloud based data centre using shared memory of mobile storage by virtualization | |
JP7230632B2 (ja) | 情報処理装置、システム、プログラム及び制御方法 | |
JP2019101965A (ja) | 情報配信システム、情報配信方法及びサーバ装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20160303 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20161122 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20161129 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20161212 |
|
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: 20170117 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170120 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6082305 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |