JP6285850B2 - プロセスマイグレーション方法及びクラスタシステム - Google Patents

プロセスマイグレーション方法及びクラスタシステム Download PDF

Info

Publication number
JP6285850B2
JP6285850B2 JP2014239267A JP2014239267A JP6285850B2 JP 6285850 B2 JP6285850 B2 JP 6285850B2 JP 2014239267 A JP2014239267 A JP 2014239267A JP 2014239267 A JP2014239267 A JP 2014239267A JP 6285850 B2 JP6285850 B2 JP 6285850B2
Authority
JP
Japan
Prior art keywords
node
migration
group
list
unrelated
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
JP2014239267A
Other languages
English (en)
Other versions
JP2016099972A (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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2014239267A priority Critical patent/JP6285850B2/ja
Publication of JP2016099972A publication Critical patent/JP2016099972A/ja
Application granted granted Critical
Publication of JP6285850B2 publication Critical patent/JP6285850B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、クラスタシステムを構成する各物理ノードで実行されているプロセスの実行先ノードの再割当てを行うプロセスマイグレーション方法及びクラスタシステムに関する。
複数の物理ノードから構成される汎用のクラスタシステムでは、ジョブを並行処理可能な実行単位に分割し、これらを複数の物理ノード(処理サーバ)に分散して同時に実行させることでスループットの向上を実現している。
特に、シングルシステムイメージと呼ばれるクラスタシステムでは、複数の物理ノード(以下、単に「ノード」ともいう)をまたがったプロセス空間やリソースアクセス機構を用いることにより、比較的性能の低いノードを組み合わせて仮想的に1つの巨大なノードを構成することができる(例えば、非特許文献1参照)。そのようなクラスタシステムは、数値計算をはじめとする様々な分野で利用されている。
特許文献1には、多数のPC(Personal Computer)から構成されるPCクラスタリングシステムにおいて、PCの稼働台数に関する制約条件を満たしつつ各ジョブの投入先のPCを割り当てるスケジューリング方法が開示されている。
特開2007−72768号公報
Christine Morin, et al. "Kerrighed : A Single System Image Cluster Operating System for High Performance Computing" In Proc. of Europar 2003 : Parallel Processing, volume 2790 of LNCS, pp.1291-1294.
前記のような汎用のクラスタシステムでは、サービスの提供に必要な処理が複数ノードにまたがって協調動作することがある。その場合、ノード間の通信が頻繁に行われるとシステム全体のスループットが大きく低下することとなる。さらに、ネットワークをまたがってCPU(Central Processing Unit)やメモリなどの計算リソースを共有することも、スループット低下の要因となる。
また、ネットワーク処理やファイル入出力処理などカーネル空間へのコンテキストスイッチを伴う処理を頻繁に実行するプロセスが存在する場合にも、これがボトルネックとなってシステム全体のスループットが低下することとなる。
本発明は、前記のようなクラスタシステムにおけるスループット低下の課題を解決するためになされたものであり、クラスタシステムの各ノードで実行されているプロセスの特性や処理状況に応じてボトルネックとなっているプロセスを別のノードに動的にマイグレーションすることにより、システム全体のリソース使用を適正化して、コンピュータ資源の有効活用を図ることを目的とする。
前記の目的を達成するために、本発明は、複数のプロセスを実行可能な物理ノードがネットワーク接続されて構成されたクラスタシステムにおけるプロセスマイグレーション方法であって、前記クラスタシステムが備えるプロセス状態監視部が、所定の周期毎に各プロセスにおけるマイグレーションの要因となる所定の動作特性の発生を監視し、前記所定の動作特性が発生したプロセスに、当該動作特性と、その発生頻度と、当該プロセスが実行されている物理ノードを示す実行中ノードとを関連付けてマイグレーション候補のプロセスとしてマイグレーション候補リストに記録するステップを実行し、前記クラスタシステムが備えるクラスタスケジューラが、所定の周期毎に各物理ノードのリソース使用状況を取得してノードリストに記録するステップと、前記マイグレーション候補リストを前記プロセス状態監視部から取得するステップと、前記マイグレーション候補リストに記録されたプロセスの動作特性がプロセス間の関連性を示すものであるか否かで当該プロセスおよび当該プロセスと関連性を有するプロセスを示す関連プロセス群の存否を判定するステップと、前記関連プロセス群が存在し、当該関連プロセス群の実行中ノードが同一であるときに、実行中ノードが当該関連プロセス群の実行中ノードと同一であって当該プロセスと関連性を有しないプロセスを示す非関連プロセスが有るか否かを前記マイグレーション候補リストを参照して判定するステップと、前記非関連プロセスが有ると判定した場合に、前記ノードリストを参照し、前記非関連プロセスが必要とするリソースを有していて当該非関連プロセスを受入れ可能な物理ノードが存在するときに、当該物理ノードへの当該非関連プロセスのマイグレーションを指示するステップとを実行するものとした。
こうすることにより、関連プロセス群が実行されているノードから他のノードに非関連プロセスを移行させるようにマイグレーションを実行することができる。したがって、クラスタシステム全体の処理を最適化することが可能となる。
また他の本発明は、前記のプロセスマイグレーション方法において、前記マイグレーション候補リストに記録されたプロセスの動作特性にはそれぞれ優先度が割り当てられ、前記クラスタスケジューラは、前記優先度の高い動作特性が検知されているプロセスを優先して前記関連プロセス群の存否を判定するステップを実行するものとした。
こうすることにより、より優先度の高い動作特性が検知されているプロセスのマイグレーションを優先して実行することができる。
また他の本発明は、前記のプロセスマイグレーション方法において、前記クラスタスケジューラは、前記関連プロセス群が存在し、当該関連プロセス群の実行中ノードが同一でない場合に、前記ノードリストを参照し、当該関連プロセス群が必要とするリソースを有していて当該関連プロセス群を受入れ可能な物理ノードが存在するときに、当該関連プロセス群を構成する各プロセスの当該物理ノードへのマイグレーションを指示するものとした。
こうすることにより、関連性を有するすべてのプロセス群が同一の物理ノードで実行されることになるので、プロセス間通信などによるシステム全体のスループット低下を軽減することができる。
また他の本発明は、複数のプロセスを実行可能な物理ノードがネットワーク接続されて構成されたクラスタシステムであって、所定の周期毎に各プロセスにおけるマイグレーションの要因となる所定の動作特性の発生を監視し、前記所定の動作特性が発生したプロセスに、当該動作特性と、その発生頻度と、当該プロセスが実行されている物理ノードを示す実行中ノードとを関連付けてマイグレーション候補のプロセスとしてマイグレーション候補リストに記録するプロセス状態監視部と、所定の周期毎に各物理ノードのリソース使用状況を取得してノードリストに記録し、前記マイグレーション候補リストを前記プロセス状態監視部から取得し、前記マイグレーション候補リストに記録されたプロセスの動作特性がプロセス間の関連性を示すものであるか否かで当該プロセスおよび当該プロセスと関連性を有するプロセスを示す関連プロセス群の存否を判定し、前記関連プロセス群が存在し、当該関連プロセス群の実行中ノードが同一であるときに、実行中ノードが当該関連プロセス群の実行中ノードと同一であって当該プロセスと関連性を有しないプロセスを示す非関連プロセスが有るか否かを前記マイグレーション候補リストを参照して判定し、前記非関連プロセスが有ると判定した場合に、前記ノードリストを参照し、前記非関連プロセスが必要とするリソースを有していて当該非関連プロセスを受入れ可能な物理ノードが存在するときに、当該物理ノードへの当該非関連プロセスのマイグレーションを指示するクラスタスケジューラと、を備えるものとした。
こうすることにより、関連プロセス群が実行されているノードから他のノードに非関連プロセスを移行させるようにマイグレーションを実行することができる。したがって、クラスタシステム全体の処理を最適化することが可能となる。
また他の本発明は、前記のクラスタシステムにおいて、前記マイグレーション候補リストに記録されたプロセスの動作特性にはそれぞれ優先度が割り当てられ、前記クラスタスケジューラは、前記優先度の高い動作特性が検知されているプロセスを優先して前記関連プロセス群の存否を判定するものとした。
こうすることにより、より優先度の高い動作特性が検知されているプロセスのマイグレーションを優先して実行することができる。
また他の本発明は、前記のクラスタシステムにおいて、前記クラスタスケジューラは、前記関連プロセス群が存在し、当該関連プロセス群の実行中ノードが同一でない場合に、前記ノードリストを参照し、当該関連プロセス群が必要とするリソースを有していて当該関連プロセス群を受入れ可能な物理ノードが存在するときに、当該関連プロセス群を構成する各プロセスの当該物理ノードへのマイグレーションを指示するものとした。
こうすることにより、関連性を有するすべてのプロセス群が同一の物理ノードで実行されることになるので、プロセス間通信などによるシステム全体のスループット低下を軽減することができる。
本発明によれば、クラスタシステムの各ノードで実行されているプロセスの特性や処理状況に応じてプロセスを別のノードに動的にマイグレーションすることにより、システム全体のリソース使用を適正化して、コンピュータ資源の有効活用を図ることができる。
本発明に係るクラスタシステムの構成例を示す説明図である。 クラスタスケジューラ及びプロセス状態監視部の機能ブロック図である。 タスクリストの構成及びデータ例を示す説明図である。 プロセス状態監視部によるタスクリストへの登録処理のフローチャートである。 スコアテーブルの構成及びデータ例を示す説明図である。 クラスタスケジューラによるプロセスマイグレーション処理の全体フローチャートである。 タスクリストのレコード単位のプロセスマイグレーション処理の詳細フローチャートである。 ボトルネックプロセスのマイグレーション処理の詳細フローチャートである。 非関連プロセス群のマイグレーション処理の詳細フローチャートである。 関連プロセス群のマイグレーション処理の詳細フローチャートである。 ノードリストの構成及びデータ例を示す説明図である。 別ノードのプロセス同士がプロセス間通信を行っている場合のプロセスマイグレーションの動作例を示す説明図である。
以下、本発明を実施するための形態を、適宜図面を参照しながら説明する。
図1は、本発明に係るクラスタシステムの構成例を示す説明図である。
図1に示すように、クラスタシステム100は、それぞれが汎用の処理サーバによって構成されるn個の物理ノードであるノード#1(70)、ノード#2(70)、・・・、ノード#n(70)がネットワーク80によって互いに通信可能に接続されて構成される。
SSI(Single System Image)制御部10は、これら複数の物理ノード70を組み合わせて仮想的な1つのノードを構成するための制御プログラムが、各物理ノード70において実行され、それらが協調動作することによって1つの仮想ノードとしての機能を提供する。このSSI制御部10は、クラスタスケジューラ20とプロセス状態監視部30とを備える。
各物理ノード70は、OS(Operating System)40と個別ノード監視部50とを備え、SSI制御部10から割り当てられた1以上のプロセス60を並列に実行することができるようになっている。
クラスタスケジューラ20は、各物理ノード70のリソース使用状態などが記憶されているノードリスト21を参照して各プロセスを各物理ノード70に割り当てるとともに、その後のプロセスマイグレーションの制御を行う。
プロセス状態監視部30は、本発明のマイグレーション候補リストとしてのタスクリスト31に、各プロセスをマイグレーションすべきか否かを判断するための所定の動作特性などを記録する。
図2は、クラスタスケジューラ及びプロセス状態監視部の機能ブロック図である。
図2に示すように、プロセス状態監視部30は、タスクリスト31、スコアテーブル32、システムログ参照部33、タスクリスト更新/参照部34、タスクリスト登録判定部35、リソース使用状況取得部36、タスクリスト参照受付部37を備える。
システムログ参照部33は、それぞれのノードのOS40によって記録されるシステムログのなかから個別ノード監視部50が抽出したプロセスマイグレーションの要因となるイベントの情報を収集し、タスクリスト登録判定部35に引き渡す。
リソース使用状況取得部36は、それぞれのノードのOS40の機能を利用して個別ノード監視部50が取得する各プロセスのCPU負荷及びメモリ使用量などのリソース使用状況を、個別ノード監視部50から取得し、タスクリスト登録判定部35に引き渡す。
タスクリスト登録判定部35は、システムログ参照部33から取得した各イベントの発生回数をスコアテーブル32に逐次記録しておく。また、タスクリスト登録判定部35は、スコアテーブル32に記録したイベントの情報と、リソース使用状況取得部36から取得したリソース使用状況に基づいて、マイグレーション候補となるプロセスを抽出し、抽出したプロセスに関する情報を登録または更新するようにタスクリスト更新/参照部34に指示する。
このとき、タスクリスト登録判定部35は、スコアテーブル32に記録した各イベントについては、所定のスコア計算を行うことによって当該プロセスをマイグレーション候補とするか否かを判定する。
タスクリスト更新/参照部34は、タスクリスト登録判定部35からの指示にしたがってタスクリスト31の更新を行うとともに、タスクリスト参照受付部37からの参照要求に対してタスクリスト31の登録内容を読み出してタスクリスト参照受付部37に返送する。タスクリスト参照受付部37は、外部からタスクリスト31の参照要求を受け付けて、タスクリスト更新/参照部34に参照要求を転送し、タスクリスト更新/参照部34から返送されるタスクリスト31の登録内容を、要求元に返送する。
また、図2に示すように、クラスタスケジューラ20は、ノードリスト21、タスクリスト参照部22、ノード情報管理部23、マイグレーション判定部24、マイグレーション指示部25を備える。
タスクリスト参照部22は、プロセス状態監視部30内のタスクリスト参照受付部37に対してタスクリスト31の参照要求を送信し、返送されるタスクリスト31の登録内容をマイグレーション判定部24に引き渡す。
ノード情報管理部23は、それぞれのノードのOS40によって監視されているノードのCPU使用率及びメモリ使用量などのリソース使用状況を個別ノード監視部50を介して取得し、ノードリスト21に登録する。
マイグレーション判定部24は、タスクリスト参照部22から取得したタスクリスト31の登録内容と、ノードリスト21に登録されている各ノードのリソース使用状況などに基づいて、各プロセスのマイグレーション判定を行い、マイグレーションの対象とするプロセスとマイグレーション先のノードとをマイグレーション指示部25に通知する。
マイグレーション指示部25は、マイグレーション判定部24からの通知に基づいて移行元と移行先とのノードのOS40にプロセスのマイグレーションを指示し、OS40間の連携によって実際にプロセスのマイグレーションが実行される。
図3は、タスクリストの構成及びデータ例を示す説明図である。
図3に示すように、タスクリスト31には、「プロセスID」、「実行中ノード」、「処理内容」、「回数」、「優先度」、及び「移行先ノード」の各フィールドからなるレコードが、マイグレーション候補となるプロセスと処理内容の組合せの数だけ登録される。
ここで、「プロセスID」とは、クラスタシステム100内で各プロセスを一意に識別するためにSSI制御部10のプロセス状態監視部30によって付される識別子である。「実行中ノード」とは、当該プロセスが実行されているノードの識別番号である。「処理内容」とは、当該プロセスのマイグレーション要因となっている動作特性を示すものである。図3に例示したそれぞれの処理内容の意味を以下に示す。
CPU_load:当該プロセスのCPU負荷が閾値を超えた
memory_usage:当該プロセスのメモリ使用量が閾値を超えた
open /path/to/file1:特定のファイルをオープンした
network_load:ネットワークにアクセスした
shmem:共有メモリをアクセスした
rpc_to 10010:特定のプロセスとプロセス間通信を行った
fork 10020,10021,10022:子プロセスを生成した
「回数」とは、当該プロセスにおける当該処理内容の発生回数である。この値は単位時間当たりの発生回数をカウントするものでも、ある時点からの累積の発生回数をカウントするものでもよい。「優先度」とは、それぞれの処理内容について予め設定されるマイグレーションの優先順位を示すものであり、処理内容に応じて例えば優先度「5」〜「1」の5段階で順位付けられる。この優先度の値が大きいプロセスほど優先してマイグレーションが実行される。「移行先ノード」とは、ある特定の処理内容が発生したプロセスを、予め決められた特定のノードに集約する場合の集約先のノードの識別番号である。
図4は、プロセス状態監視部によるタスクリストへの登録処理のフローチャートである。図4に示したタスクリストへの登録処理は一定時間毎に起動され、まずステップS41にて、リソース使用状況取得部36が、個別ノード監視部50を介してそれぞれのノードで実行されている各プロセスのCPU負荷を取得する。次に、ステップS42では、タスクリスト登録判定部35が、CPU負荷が閾値を超えるプロセスが有るか否かを判定し、閾値を超えるプロセスが無ければ(ステップS42でNo)、ステップS44に処理を進める。他方、閾値を超えるプロセスが有れば(ステップS42でYes)、ステップS43にて、タスクリスト更新/参照部34が当該プロセスをタスクリスト31に追加する。
ステップS44では、リソース使用状況取得部36が、個別ノード監視部50を介してそれぞれのノードで実行されている各プロセスのメモリ使用量を取得する。次に、ステップS45では、タスクリスト登録判定部35が、メモリ使用量が閾値を超えるプロセスが有るか否かを判定し、閾値を超えるプロセスが無ければ(ステップS45でNo)、ステップS47に処理を進める。他方、閾値を超えるプロセスが有れば(ステップS45でYes)、ステップS46にて、タスクリスト更新/参照部34が当該プロセスをタスクリスト31に追加する。
ステップS47では、システムログ参照部33が、個別ノード監視部50を介してそれぞれのノードのOS40によって記録されるシステムログからタスクリスト31への登録判定対象となるイベントを取得する。次に、ステップS48では、タスクリスト登録判定部35が、該当するイベントが有るか否かを判定し、該当するイベントが無ければ(ステップS48でNo)、処理を終了する。他方、該当するイベントが有れば(ステップS48でYes)、ステップS49にて、当該イベントに基づいてスコアテーブル32を更新してスコア計算を行う。次に、タスクリスト登録判定部35は、ステップS50にて、スコアが閾値を超えるプロセスが有るか否かを判定し、閾値を超えるプロセスが無ければ(ステップS50でNo)、処理を終了する。他方、閾値を超えるプロセスが有れば(ステップS50でYes)、ステップS51にて、タスクリスト更新/参照部34が当該プロセスをタスクリスト31に追加したのち、処理を終了する。
図5は、スコアテーブルの構成及びデータ例を示す説明図である。図5に示すように、スコアテーブル32には、「プロセスID」、「実行中ノード」、「処理内容」、「回数」、及び「スコア」の各フィールドからなるレコードが、登録判定対象となるプロセスと処理内容の組合せの数だけ登録される。同じプロセスが複数の異なる処理内容について重複登録されることもある。
ここで、「プロセスID」、「実行中ノード」、「処理内容」、及び「回数」は、図3の説明において前記した通りである。「スコア」とは、当該プロセスをタスクリスト31に追加登録するか否かの判定に用いられる評価値である。スコアの計算方法は任意であるが、例えば、処理内容に応じて重み係数W1とW2とを設定しておき、
スコア=W1+W2×回数
なる計算式によって算出すればよい。
例えば、そのようにして算出したスコアが図5のような数値になっており、閾値が「0.7」に設定されているのであれば、図5の1行目のレコード(スコアが「0.8」で閾値を超えている)に対応するプロセスが、タスクリスト31に追加登録されることとなる。
図6は、クラスタスケジューラによるプロセスマイグレーション処理の全体フローチャートである。図6に示したプロセスマイグレーション処理は一定時間毎に起動され、まずステップS61にて、タスクリスト参照部22が、プロセス状態監視部30からタスクリスト31の登録内容を取得する。このとき、タスクリスト参照部22はプロセス状態監視部30内のタスクリスト参照受付部37に対してタスクリスト31の取得を要求し、タスクリスト参照受付部37がタスクリスト更新/参照部34を介して取得したタスクリスト31の登録内容が、タスクリスト参照部22に返送される。
次に、ステップS62にて、マイグレーション判定部24は、取得したタスクリスト31の全レコードを、第一に優先度の降順で、第二に回数の値の降順でソートすることにより、未処理のタスクリストを生成する。続くステップS63からステップS66までの処理は、ソートされた先頭のレコードから順に繰り返し実行される。ステップS63では、マイグレーション判定部24は、ソートされた先頭のレコードを1つ取り出してマイグレーション処理(詳細は図7から図10を用いて後記する)を実行する。
ステップS64では、マイグレーション判定部24は、当該レコードに対応するプロセスのマイグレーションを行ったか否かを判定し、マイグレーションを行った場合は(ステップS64でYes)、ステップS65にて、当該プロセスに関するレコードをステップS62で生成した未処理のタスクリストから削除する。ステップS66では、マイグレーション判定部24は、未処理のタスクリストのレコードが終了したか否かを判定し、レコードが残っていれば(ステップS66でNo)、ステップS63に処理を戻し、レコード終了であれば(ステップS66でYes)処理を終了する。
図7は、タスクリストのレコード単位のプロセスマイグレーション処理(図6のステップS63)の詳細フローチャートである。図7に示したプロセスマイグレーション処理は、未処理のタスクリストの先頭から取り出された1つのレコードについて実行される。まずステップS71では、マイグレーション判定部24は、当該レコードに対応するプロセスには関連プロセスが有るか否かを判定する。ここで、関連プロセスとは、処理対象のレコードに含まれる処理内容がプロセス間通信もしくは子プロセス生成である場合の相手先のプロセスまたはプロセス群を指す。判定の結果、関連プロセスが無ければ(ステップS71でNo)ステップS72(詳細は図8を用いて後記する)に処理を進め、関連プロセスが有れば(ステップS71でYes)ステップS73に処理を進めて関連プロセス群が異なるノードで実行されているか否かを判定する。ここで、関連プロセス群が異なるノードで実行されていない場合は(ステップS73でNo)ステップS74(詳細は図9を用いて後記する)に処理を進め、関連プロセス群が異なるノードで実行されている場合は(ステップS73でYes)ステップS75(詳細は図10を用いて後記する)に処理を進める。ステップS72、ステップS74、またはステップS75の処理を実行したのち、図6のステップS64に処理を戻す。
ここで、マイグレーション先のノードを選択する際にマイグレーション判定部24が参照するノードリスト21について説明する。図11は、ノードリストの構成及びデータ例を示す説明図である。図11に示すように、ノードリスト21には、「ノード番号」、「平均CPU使用率」、「メモリ使用量」、及び「優先フラグ」の各フィールドからなるレコードが、クラスタシステム100を構成しているノードの数だけ登録される。
ここで、「ノード番号」とは、クラスタシステム100を構成しているそれぞれのノードに付される識別番号である。「平均CPU使用率」とは、直近のある単位時間内のCPU使用率の平均値であり、例えば図11の1行目のレコードは、ノード番号「#1」のノードの平均CPU使用率は「23%」であることを示している。「メモリ使用量」とは、そのノードの総利用可能メモリ量と実際に使用されているメモリ量であり、例えば図11の1行目のレコードは、ノード番号「#1」のノードの総利用可能メモリ8388608kBのうち2028824kBが使用されていることを示している。「優先フラグ」には、所定の閾値(例えば5段階評価の場合の優先度「4」)以上の高い優先度をもつプロセス(高優先プロセス)を優先して実行させるノードに対しては”true”が、その他のノードに対しては”false”が予め設定される。
図8は、ボトルネックプロセスのマイグレーション処理(図7のステップS72)の詳細フローチャートである。図7のステップS71にて関連プロセスが無いと判定されたプロセスは、それ自身がボトルネックとなっていることからタスクリスト31に登録されたものである。そこで、図8の処理では、当該ボトルネックプロセスを受入れ可能な他のノードへのマイグレーションを試みる。
まずステップS81にて、マイグレーション判定部24は、当該ボトルネックプロセスの優先度の値に基づいて当該プロセスが高優先プロセスか否かを判定する。判定の結果、高優先プロセスでなければ(ステップS81でNo)ステップS83に処理を進め、高優先プロセスであれば(ステップS81でYes)ステップS82に処理を進めてノードリスト21の優先フラグが”true”となっているノードが有るか否かを判定する。判定の結果、優先フラグが”true”となっているノードが有れば(ステップS82でYes)ステップS84に処理を進め、優先フラグが”true”となっているノードが無ければ(ステップS82でNo)ステップS83に処理を進める。
ステップS83では、マイグレーション判定部24は、ノードリスト21の優先フラグが”false”となっているノードが有るか否かを判定する。判定の結果、優先フラグが”false”となっているノードが有れば(ステップS83でYes)ステップS84に処理を進め、優先フラグが”false”となっているノードが無ければ(ステップS83でNo)図7に処理を戻す。ステップS84では、マイグレーション判定部24は、ノードリスト21を参照して当該ボトルネックプロセスが必要とするリソースを有していて当該プロセスを受入れ可能なノードが有るか否かを判定する。判定の結果、受入れ可能なノードが有る場合は(ステップS84でYes)ステップS85に処理を進め、受入れ可能なノードが無い場合は(ステップS84でNo)図7に処理を戻す。
ステップS85では、マイグレーション指示部25が、移設元と移設先とのノードのOS40にマイグレーションを指示することにより、当該ボトルネックプロセスの当該ノードへのマイグレーションを実行したのち図7に処理を戻す。
図9は、非関連プロセス群のマイグレーション処理(図7のステップS74)の詳細フローチャートである。図7のステップS73にて関連プロセス群が異なるノードで実行されていないと判定された場合には、それら関連プロセス群はそのまま現在のノードで実行することとし、それ以外の非関連プロセス群の他のノードへのマイグレーションを試みる。
まずステップS91にて、マイグレーション判定部24は、当該関連プロセス群と同じノードで実行されている未処理の非関連プロセスが有るか否かを判定する。判定の結果、未処理の非関連プロセスが有れば(ステップS91でYes)ステップS92に処理を進め、未処理の非関連プロセスが無ければ(ステップS91でNo)図7に処理を戻す。
ステップS92からステップS96までの処理は、マイグレーション対象のプロセスが非関連プロセスである点を除いて前記した図8のステップS81からステップS85までの処理と同様であるので、詳しい説明は省略する。マイグレーション判定部24は、ステップS96を実行したのちにステップS91に処理を戻し、未処理の非関連プロセスについてステップS92からステップS96までの処理を繰り返す。
このような処理を実行することにより、関連プロセス群と同じノードで実行されているすべての非関連プロセス群について個別に他ノードへのマイグレーションが行われる。
図10は、関連プロセス群のマイグレーション処理(図7のステップS75)の詳細フローチャートである。図7のステップS73にて関連プロセス群が異なるノードで実行されていると判定された場合には、それら関連プロセス群を一括して受入れ可能なノードへのマイグレーション(一括マイグレーション)を試みる。
まずステップS101にて、マイグレーション判定部24は、当該関連プロセス群を一括して受入れ可能なノードが有るか否かを判定する。このとき、当該関連プロセス群によるリソース使用量が最も多いノードから順に受入れ可否を判定することで、プロセスのマイグレーション処理量を最小化することが好ましい。判定の結果、受入れ可能なノードが有る場合は(ステップS101でYes)ステップS102に処理を進め、受入れ可能なノードが無い場合は(ステップS101でNo)図7に処理を戻す。
ステップS102では、マイグレーション指示部25が、移設元と移設先とのノードのOS40にマイグレーションを指示することにより、当該受入れ可能なノードへの当該関連プロセス群の一括マイグレーションを実行したのち図7に処理を戻す。
このような処理を実行することにより、異なるノードで実行されている関連プロセス群が単一のノードで実行されるようにマイグレーションを行うので、関連プロセス間でのプロセス間通信等による処理性能の低下を解消することが可能となる。
図12は、別ノードのプロセス同士がプロセス間通信を行っている場合のプロセスマイグレーションの動作例を示す説明図である。この例では、ノード#1(70)で実行されているプロセス1−1とノード#3(70)で実行されているプロセス3−1との間で頻繁にプロセス間通信が行われているものとする。
クラスタスケジューラ20内のノード情報管理部23は、各ノードの個別ノード監視部50から所定の周期で各ノードの平均CPU使用率とメモリ使用量を取得し(<1>)、取得したデータをノードリスト21に登録する(<2>)。また、各ノードで実行されている各プロセスのCPU使用率、メモリ使用量、システムログ等の情報は、プロセス状態監視部30内のリソース使用状況取得部36及びシステムログ参照部33によって各ノードの個別ノード監視部50から取得される(<3>)。これら取得された情報に基づいてプロセス状態監視部30内のタスクリスト登録判定部35がタスクリスト31にプロセス状態を示すレコードを登録し更新する(<4>)。ここでは、ノード#1(70)で実行されているプロセス1−1とノード#3(70)で実行されているプロセス3−1との間で頻繁にプロセス間通信が行われていることを示すレコード(処理内容:rpc_to)が、タスクリスト31に記録されたものと仮定する。
このレコードは、クラスタスケジューラ20内のマイグレーション判定部24によって参照され(<5>)、マイグレーション判定部24は、例えばノード#1(70)で実行されているプロセス1−1をノード#3(70)にマイグレーションすべきであると判断し、マイグレーション指示部25を介して移設元となるノード#1(70)と移設先となるノード#3(70)とのOS40にマイグレーションを指示する(<6>)。それぞれのノードのOS40は、マイグレーション指示部25からの指示にしたがって、ノード#1(70)で実行されているプロセス1−1のノード#3(70)へのマイグレーションを連携して実行する(<7>)。
以上説明したように、本実施形態によれば、別々のノードで実行されている関連プロセス群を単一のノードにまとめて実行させたり、関連プロセス群が実行されているノードから非関連プロセスを追い出したり、ボトルネックとなっているプロセスを予備のノードに追い出したりすることができる。したがって、クラスタシステム全体の処理を最適化することが可能となる。
以上にて本発明を実施するための形態の説明を終えるが、本発明の実施の態様はこれに限られるものではなく、本発明の趣旨を逸脱しない範囲において各種の変形が可能なことは言うまでもない。
10 SSI制御部
20 クラスタスケジューラ
21 ノードリスト
22 タスクリスト参照部
23 ノード情報管理部
24 マイグレーション判定部
25 マイグレーション指示部
30 プロセス状態監視部
31 タスクリスト(マイグレーション候補リスト)
32 スコアテーブル
33 システムログ参照部
34 タスクリスト更新/参照部
35 タスクリスト登録判定部
36 リソース使用状況取得部
37 タスクリスト参照受付部
40 OS
50 個別ノード監視部
60 プロセス
70 ノード
80 ネットワーク
100 クラスタシステム

Claims (6)

  1. 複数のプロセスを実行可能な物理ノードがネットワーク接続されて構成されたクラスタシステムにおけるプロセスマイグレーション方法であって、
    前記クラスタシステムが備えるプロセス状態監視部が、
    所定の周期毎に各プロセスにおけるマイグレーションの要因となる所定の動作特性の発生を監視し、前記所定の動作特性が発生したプロセスに、当該動作特性と、その発生頻度と、当該プロセスが実行されている物理ノードを示す実行中ノードとを関連付けてマイグレーション候補のプロセスとしてマイグレーション候補リストに記録するステップを実行し、
    前記クラスタシステムが備えるクラスタスケジューラが、
    所定の周期毎に各物理ノードのリソース使用状況を取得してノードリストに記録するステップと、
    前記マイグレーション候補リストを前記プロセス状態監視部から取得するステップと、
    前記マイグレーション候補リストに記録されたプロセスの動作特性がプロセス間の関連性を示すものであるか否かで当該プロセスおよび当該プロセスと関連性を有するプロセスを示す関連プロセス群の存否を判定するステップと、
    前記関連プロセス群が存在し、当該関連プロセス群の実行中ノードが同一であるときに、実行中ノードが当該関連プロセス群の実行中ノードと同一であって当該プロセスと関連性を有しないプロセスを示す非関連プロセスが有るか否かを前記マイグレーション候補リストを参照して判定するステップと、
    前記非関連プロセスが有ると判定した場合に、前記ノードリストを参照し、前記非関連プロセスが必要とするリソースを有していて当該非関連プロセスを受入れ可能な物理ノードが存在するときに、当該物理ノードへの当該非関連プロセスのマイグレーションを指示するステップとを実行する
    ことを特徴とするプロセスマイグレーション方法。
  2. 請求項1に記載のプロセスマイグレーション方法において、
    前記マイグレーション候補リストに記録されたプロセスの動作特性にはそれぞれ優先度が割り当てられ、
    前記クラスタスケジューラは、前記優先度の高い動作特性が検知されているプロセスを優先して前記関連プロセス群の存否を判定するステップを実行する
    ことを特徴とするプロセスマイグレーション方法。
  3. 請求項1または請求項2に記載のプロセスマイグレーション方法において、
    前記クラスタスケジューラは、前記関連プロセス群が存在し、当該関連プロセス群の実行中ノードが同一でない場合に、前記ノードリストを参照し、当該関連プロセス群が必要とするリソースを有していて当該関連プロセス群を受入れ可能な物理ノードが存在するときに、当該関連プロセス群を構成する各プロセスの当該物理ノードへのマイグレーションを指示するステップを実行する
    ことを特徴とするプロセスマイグレーション方法。
  4. 複数のプロセスを実行可能な物理ノードがネットワーク接続されて構成されたクラスタシステムであって、
    所定の周期毎に各プロセスにおけるマイグレーションの要因となる所定の動作特性の発生を監視し、前記所定の動作特性が発生したプロセスに、当該動作特性と、その発生頻度と、当該プロセスが実行されている物理ノードを示す実行中ノードとを関連付けてマイグレーション候補のプロセスとしてマイグレーション候補リストに記録するプロセス状態監視部と、
    所定の周期毎に各物理ノードのリソース使用状況を取得してノードリストに記録し、
    前記マイグレーション候補リストを前記プロセス状態監視部から取得し、
    前記マイグレーション候補リストに記録されたプロセスの動作特性がプロセス間の関連性を示すものであるか否かで当該プロセスおよび当該プロセスと関連性を有するプロセスを示す関連プロセス群の存否を判定し、
    前記関連プロセス群が存在し、当該関連プロセス群の実行中ノードが同一であるときに、実行中ノードが当該関連プロセス群の実行中ノードと同一であって当該プロセスと関連性を有しないプロセスを示す非関連プロセスが有るか否かを前記マイグレーション候補リストを参照して判定し、
    前記非関連プロセスが有ると判定した場合に、前記ノードリストを参照し、前記非関連プロセスが必要とするリソースを有していて当該非関連プロセスを受入れ可能な物理ノードが存在するときに、当該物理ノードへの当該非関連プロセスのマイグレーションを指示するクラスタスケジューラと、
    を備えることを特徴とするクラスタシステム。
  5. 請求項4に記載のクラスタシステムにおいて、
    前記マイグレーション候補リストに記録されたプロセスの動作特性にはそれぞれ優先度が割り当てられ、
    前記クラスタスケジューラは、前記優先度の高い動作特性が検知されているプロセスを優先して前記関連プロセス群の存否を判定する
    ことを特徴とするクラスタシステム。
  6. 請求項4または請求項5に記載のクラスタシステムにおいて、
    前記クラスタスケジューラは、前記関連プロセス群が存在し、当該関連プロセス群の実行中ノードが同一でない場合に、前記ノードリストを参照し、当該関連プロセス群が必要とするリソースを有していて当該関連プロセス群を受入れ可能な物理ノードが存在するときに、当該関連プロセス群を構成する各プロセスの当該物理ノードへのマイグレーションを指示する
    ことを特徴とするクラスタシステム。
JP2014239267A 2014-11-26 2014-11-26 プロセスマイグレーション方法及びクラスタシステム Active JP6285850B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014239267A JP6285850B2 (ja) 2014-11-26 2014-11-26 プロセスマイグレーション方法及びクラスタシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014239267A JP6285850B2 (ja) 2014-11-26 2014-11-26 プロセスマイグレーション方法及びクラスタシステム

Publications (2)

Publication Number Publication Date
JP2016099972A JP2016099972A (ja) 2016-05-30
JP6285850B2 true JP6285850B2 (ja) 2018-02-28

Family

ID=56077943

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014239267A Active JP6285850B2 (ja) 2014-11-26 2014-11-26 プロセスマイグレーション方法及びクラスタシステム

Country Status (1)

Country Link
JP (1) JP6285850B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101820269B1 (ko) 2017-07-21 2018-01-18 건국대학교 산학협력단 마이그레이션 방법 및 시스템
CN109582459A (zh) * 2017-09-29 2019-04-05 阿里巴巴集团控股有限公司 应用的托管进程进行迁移的方法及装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007102332A (ja) * 2005-09-30 2007-04-19 Toshiba Corp 負荷分散システム及び負荷分散方法
US9389980B2 (en) * 2009-11-30 2016-07-12 Red Hat, Inc. Detecting events in cloud computing environments and performing actions upon occurrence of the events

Also Published As

Publication number Publication date
JP2016099972A (ja) 2016-05-30

Similar Documents

Publication Publication Date Title
Ghomi et al. Load-balancing algorithms in cloud computing: A survey
CN104915407B (zh) 一种基于Hadoop多作业环境下的资源调度方法
US20190303200A1 (en) Dynamic Storage-Aware Job Scheduling
Rasooli et al. COSHH: A classification and optimization based scheduler for heterogeneous Hadoop systems
JP5770721B2 (ja) 情報処理システム
JP5664098B2 (ja) 複合イベント分散装置、複合イベント分散方法および複合イベント分散プログラム
JP6233413B2 (ja) タスク割り当て判定装置、制御方法、及びプログラム
Xu et al. Adaptive task scheduling strategy based on dynamic workload adjustment for heterogeneous Hadoop clusters
JP2005056391A (ja) コンピューティング環境の作業負荷を均衡させる方法およびシステム
JP4992408B2 (ja) ジョブ割当プログラム、方法及び装置
WO2017010922A1 (en) Allocation of cloud computing resources
JP4458412B2 (ja) パラメータ調整装置
Kurazumi et al. Dynamic processing slots scheduling for I/O intensive jobs of Hadoop MapReduce
JP6969499B2 (ja) Vmマイグレーションシステムおよびvmマイグレーション方法
JP6519111B2 (ja) データ処理制御方法、データ処理制御プログラムおよびデータ処理制御装置
Pongsakorn et al. Container rebalancing: Towards proactive linux containers placement optimization in a data center
US11157323B2 (en) Multiple metric based load prediction and resource allocation in an active stream processing job
Xue et al. Managing data center tickets: Prediction and active sizing
Dai et al. Scheduling for response time in Hadoop MapReduce
JP6285850B2 (ja) プロセスマイグレーション方法及びクラスタシステム
JP2016004328A (ja) タスク割当プログラム、タスク割当方法およびタスク割当装置
Rathore A REVIEW TOWARDS: LOAD BALANCING TECHNIQUES.
CN111831408A (zh) 异步任务处理方法、装置、电子设备及介质
JP6279816B2 (ja) ストレージ監視システムおよびその監視方法
CN117667299A (zh) 虚拟机迁移方法、芯片、网卡、处理设备、***及介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161226

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170912

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170913

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171110

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171128

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180117

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180202

R150 Certificate of patent or registration of utility model

Ref document number: 6285850

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150