JP2014081765A - 負荷分散装置、負荷分散方法および負荷分散プログラム - Google Patents

負荷分散装置、負荷分散方法および負荷分散プログラム Download PDF

Info

Publication number
JP2014081765A
JP2014081765A JP2012228736A JP2012228736A JP2014081765A JP 2014081765 A JP2014081765 A JP 2014081765A JP 2012228736 A JP2012228736 A JP 2012228736A JP 2012228736 A JP2012228736 A JP 2012228736A JP 2014081765 A JP2014081765 A JP 2014081765A
Authority
JP
Japan
Prior art keywords
data
load distribution
core
request
identification 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.)
Pending
Application number
JP2012228736A
Other languages
English (en)
Inventor
Takeshi Mishima
健 三島
Haruo Yokota
治夫 横田
Fang Xi
方 西
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
Tokyo Institute of Technology NUC
Original Assignee
Nippon Telegraph and Telephone Corp
Tokyo Institute of Technology NUC
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, Tokyo Institute of Technology NUC filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2012228736A priority Critical patent/JP2014081765A/ja
Publication of JP2014081765A publication Critical patent/JP2014081765A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】各コアに処理を適切に割り当てることを課題とする。
【解決手段】負荷分散装置10は、データベース40に記憶されるデータを識別する各IDと、該データへのアクセスに関する処理を担当する各プロセスを識別するためのプロセスのIDとを対応付けて記憶する管理テーブルを有する。負荷分散装置10は、管理テーブルに記憶された各プロセスのIDで示される各プロセスを、各コアに振り分ける。そして、負荷分散装置10は、データベース40に記憶されたデータを要求するリクエストを受信した場合に、該リクエストに含まれるアクセス先のIDを抽出し、管理テーブルを参照して、該IDに対応するプロセスのIDで示されるプロセスを特定する。続いて、負荷分散装置10は、特定されたプロセスを担当するコアに対して、リクエストを送信する。
【選択図】 図1

Description

本発明は、負荷分散装置、負荷分散方法および負荷分散プログラムに関する。
従来、複数のコアを持つプロセッサを備えるマルチコアシステムが利用されている。このようなマルチコアシステムで動作するOS(Operating System)は、プロセス(またはスレッド)を各コアに割り当てて処理を進めている。この際、やみくもにプロセスを各コアに割り当てると、性能低下を招く場合がある。
このため、各コアに処理を割り当てる方法として、処理分割分散装置が、複数に分けられたアプリケーションについて、あらかじめ指定された処理モデルに従って、処理を各コアに割り当てる技術が知られている。依存関係のない処理同士は、複数のコアで並列に実行することで高速に処理できるものである。
また、マルチコアシステムにおいて、各コアに処理を割り当てる方法として、コアの負荷やメモリアクセスの負荷を監視して、負荷に偏りがあった場合にはスレッドを他のコアに割り当てる技術が知られている(例えば、特許文献1参照)。
特開2008−191949号公報
しかしながら、上記した処理モデルに従って、処理をコアに割り当てる技術では、処理負担を軽減しつつ、各コアに処理を適切に割り当てることができない場合があるという課題があった。つまり、アプリケーション開発者が、あらかじめ処理モデルを指定するので、実際には、一部のコアに集中して処理が割り当てられてしまう場合がある。
また、上記したコアの負荷やメモリアクセスの負荷に応じて、処理をコアに割り当てる技術では、コアの負荷やメモリアクセスの負荷を監視する処理が必要であるため、監視する処理による処理負担が掛かるという課題があった。
そこで、この発明は、上述した従来技術の課題を解決するためになされたものであり、処理負担が掛かることなく、各コアに処理を適切に割り当てることを目的とする。
上述した課題を解決し、目的を達成するため、負荷分散装置は、記憶装置に記憶されるデータを識別する各データ識別子と、該データへのアクセスに関する処理を担当する各プロセスを識別するためのプロセス識別情報とを対応付けて記憶する記憶部と、前記記憶部に記憶された各プロセス識別情報で示されるプロセスについて、同一のプロセスが同一のコアプロセッサに振り分けられるように、各コアプロセッサに振り分ける振分部と、前記記憶装置に記憶されたデータを要求するリクエストを受信した場合に、該リクエストに含まれるアクセス先のデータ識別子を抽出し、前記記憶部を参照して、該データ識別子に対応するプロセス識別情報で示されるプロセスを特定する特定部と、前記特定部によって特定されたプロセスを担当するコアプロセッサに対して、前記リクエストを送信する送信部と、を備えることを特徴とする。
また、負荷分散方法は、負荷分散装置で実行される負荷分散方法であって、前記負荷分散装置は、記憶装置に記憶されるデータを識別する各データ識別子と、該データへのアクセスに関する処理を担当する各プロセスを識別するためのプロセス識別情報とを対応付けて記憶する記憶部を備え、前記記憶部に記憶された各プロセス識別情報で示されるプロセスについて、同一のプロセスが同一のコアプロセッサに振り分けられるように、各コアプロセッサに振り分ける振分工程と、前記記憶装置に記憶されたデータを要求するリクエストを受信した場合に、該リクエストに含まれるアクセス先のデータ識別子を抽出し、前記記憶部を参照して、該データ識別子に対応するプロセス識別情報で示されるプロセスを特定する特定工程と、前記特定工程によって特定されたプロセスを担当するコアプロセッサに対して、前記リクエストを送信する送信工程と、を含んだことを特徴とする。
また、負荷分散プログラムは、記憶装置に記憶されるデータを識別する各データ識別子と、該データへのアクセスに関する処理を担当する各プロセスを識別するためのプロセス識別情報とを対応付けて記憶する記憶部に記憶された各プロセス識別情報で示されるプロセスについて、同一のプロセスが同一のコアプロセッサに振り分けられるように、各コアプロセッサに振り分ける振分ステップと、前記記憶装置に記憶されたデータを要求するリクエストを受信した場合に、該リクエストに含まれるアクセス先のデータ識別子を抽出し、前記記憶部を参照して、該データ識別子に対応するプロセス識別情報で示されるプロセスを特定する特定ステップと、前記特定ステップによって特定されたプロセスを担当するコアプロセッサに対して、前記リクエストを送信する送信ステップと、をコンピュータに実行させる。
本願に開示する負荷分散装置、負荷分散方法および負荷分散プログラムは、処理負荷を大きくすることなく、コアプロセッサが持つデータのキャッシュヒット率が向上するように、各コアに処理を適切に割り当てることができるという効果を奏する。
図1は、第一の実施の形態に係るマルチコアシステムの構成を説明するための図である。 図2は、第一の実施の形態に係るマルチコアサーバの構成を示すブロック図である。 図3は、データベースが記憶するデータのリレーションを説明する図である。 図4は、第一の実施の形態に係る負荷分散装置の構成を示すブロック図である。 図5は、管理テーブルに記憶される管理表の一例を示す図である。 図6は、負荷分散装置による各コアへの割当処理を説明する図である。 図7は、第一の実施の形態に係る負荷分散装置の処理手順を説明するためのフローチャートである。 図8は、負荷分散プログラムを実行するコンピュータを示す図である。
以下に、本願に係る負荷分散装置、負荷分散方法および負荷分散プログラムの実施形態を図面に基づいて詳細に説明する。なお、この実施形態により本願に係る負荷分散装置、負荷分散方法および負荷分散プログラムが限定されるものではない。
[第一の実施の形態]
以下の実施の形態では、第一の実施の形態に係るマルチコアシステムの構成、マルチコアサーバの構成、負荷分散装置の構成および処理の流れを順に説明し、最後に第一の実施の形態による効果を説明する。
[第一の実施の形態に係るマルチコアシステムの構成]
まず、図1を用いて、第一の実施の形態に係るマルチコアシステム100について説明する。図1は、第一の実施の形態に係るマルチコアシステム100の全体構成の一例を説明するための図である。第一の実施の形態に係るマルチコアシステム100は、負荷分散装置10と、マルチコアサーバ20と、クライアント30と、データベース40とを有する。
負荷分散装置10は、クライアント30からマルチコアサーバ20へのリクエストを中継し、マルチコアサーバ20からクライアント30への実行結果を中継する。また、負荷分散装置10は、キャッシュヒット率を上げるように、クライアント30からのリクエストを適するプロセスへ割り当てる。なお、負荷分散装置10の詳しい構成と処理については、後に図4を用いて説明する。
マルチコアサーバ20は、データベース40を管理するサーバである。マルチコアサーバ20は、負荷分散装置10を介してクライアント30からのリクエストを受信する。マルチコアサーバ20は、受信したリクエストに応じて、データベース40にアクセスしてデータを取得する処理を行い、処理結果を負荷分散装置10を介してクライアント30に返信する。図1の例では、マルチコアサーバ20は、複数のコアを用いて、複数のプロセス20A〜20Dを実行している。なお、マルチコアサーバの構成については、後に図2を用いて詳述する。
クライアント30は、データベース40に記憶されたデータを要求するリクエストを、負荷分散装置10を介して、マルチコアサーバ20に対して送信する。また、クライアント30は、リクエストに対する実行結果を、負荷分散装置10を介して、マルチコアサーバ20から受信する。
データベース40は、クライアント30によって要求されるデータを記憶する。データベース40に記憶されるデータには、各データを識別するIDが付与されている。なお、データベース40が持つデータのリレーションについては、後に図3を用いて説明する。
次に、図2を用いて、マルチコアシステム100のマルチコアサーバ20の構成を説明する。図2は、第一の実施の形態に係るマルチコアサーバの構成を示すブロック図である。
図2に示すように、マルチコアサーバ20は、複数のプロセッサ200、210、L3キャッシュ220、及びメモリ230を有する。なお、プロセッサ200と、プロセッサ210は、同様の構成であり、以下では、プロセッサ200の構成のみを説明し、プロセッサ210の構成の説明は省略する。
プロセッサ200は、複数のコア201A、201B、複数のL1キャッシュ202A、202B、L2キャッシュ203から構成される。各コア201A、201Bは、それぞれ担当するプロセスの処理を実行する。
L1キャッシュ202Aは、コア201A専用のキャッシュであり、L1キャッシュ202Bは、コア201B専用のキャッシュである。L2キャッシュ203は、複数のコア201A、201Bで共有されるキャッシュである。L3キャッシュ220は、プロセッサ200、210のチップ外で共有されるキャッシュである。
上記したキャッシュは、レベルが低い、すなわちコアに近いものほど高速であるが、容量が小さい。従って、アクセス頻度の高いデータをレベルが低い(コアに近い)キャッシュに入るようにする。
次に、図3を用いて、データベース40が記憶するデータのリレーションについて説明する。図3は、データベースが記憶するデータのリレーションを説明する図である。図3の例は、データベースに記憶されているデータが、学校における生徒の成績に関するデータである場合の例を示している。
図3に例示するように、データベース40は、データを識別する「ID」と、生徒の名前に関するデータであるか「Name」と、生徒の成績に関するデータである「Grade」とを記憶する。例えば、図3の例を挙げて説明すると、ID「00001」、Name「Taro」、Grade「A」のデータは、ID「00001」のデータについて、名前が「Taro」である生徒の成績が「A」であることを意味している。
次に、図4を用いて、図1に示した負荷分散装置10の構成を説明する。図4は、第一の実施の形態に係る負荷分散装置の構成を示すブロック図である。図4に示すように、この負荷分散装置10は、通信制御部11、記憶部12、制御部13を有する。以下にこれらの各部の処理を説明する。
通信制御部11は、接続されるマルチコアサーバ20およびクライアント30との間でやり取りする各種情報に関する通信を制御する。具体的には、通信制御部11は、クライアント30受信し、マルチコアサーバ20へリクエストを送信する。また、マルチコアサーバ20から実行結果を受信し、クライアント30へ実行結果を送信する。
記憶部12は、制御部13による各種処理に必要なデータおよびプログラムを格納するが、特に本発明に密接に関連するものとしては、管理テーブル12aを備える。この管理テーブル12aは、データベースに記憶されるデータを識別する各IDと、該データへのアクセスに関する処理を担当する各プロセスを識別するためのプロセスのIDとを対応付けた管理表を記憶する。つまり、管理テーブル12aには、どの範囲のデータをどのプロセスが担当するかが事前に登録されている。
ここで、図5を用いて、管理テーブルに記憶される管理表の例を説明する。図5は、管理テーブルに記憶される管理表の一例を示す図である。図5に示すように、管理テーブル12aは、データベースに記憶されるデータの範囲を識別する複数のIDである「IDの範囲」と、データへのアクセスに関する処理を担当するプロセスのIDを示す「担当プロセス」とを対応付けて記憶する。
図5の例を挙げて説明すると、管理テーブル12aは、IDの範囲「1〜10000」と担当プロセス「1」とが対応付けて記憶し、IDの範囲「10001〜20000」と担当プロセス「2」とが対応付けて記憶し、IDの範囲「20001〜30000」と担当プロセス「3」とが対応付けて記憶し、IDの範囲「30001〜40000」と担当プロセス「4」とが対応付けて記憶する。ここで、プロセスに対応するIDの範囲(IDの数)がそれぞれ同数であるため、各コアに対して、データの範囲のリクエストが均等に割り当てられるようにすることが可能である。
つまり、図5の例では、全体のデータは1〜40000まであるので、プロセス1が1〜10000、プロセス2が10001〜20000、プロセス3が20001〜30000、プロセス4が30001〜40000を担当することが規定されていることを意味する。
図5に例示する管理テーブル12aでは、IDに対応付けられて記憶するプロセスの数が、マルチコアサーバ20のコア201A、201B、211A、211Bの数と同じである。つまり、管理テーブル12aにおいて規定されたプロセスが4つであり、マルチコアサーバ20のコア201A、201B、211A、211Bが4つであるため、同数である。これにより、後に説明するプロセスをコアに割り当てる際に、1対1の関係で割り当てることができる。なお、プロセスとコアが同数でなくともよく、例えば、プロセスが8つになった場合には、各コアに2プロセスずつを割り当てる。
制御部13は、各種の処理手順などを規定したプログラムおよび所要データを格納するための内部メモリを有し、これらによって種々の処理を実行するが、特に本発明に密接に関連するものとしては、クライアント側送受信部13a、振分部13b、特定部13c、サーバ側送受信部13dを有する。
クライアント側送受信部13aは、負荷分散装置10を介してクライアント30からのリクエストを受信する。例えば、リクエストとして、「SELECT Name FROM table WHERE ID=20032」を受信する。また、クライアント側送受信部13aは、負荷分散装置10を介してクライアント30へ実行結果を送信する。
振分部13bは、管理テーブル12aに記憶された各プロセスのIDで示されるプロセスについて、同一のプロセスが同一のコアに振り分けられるように、各コア201A、201B、211A、211Bに振り分ける。例えば、振分部13bは、初期化時(データベース40へのアクセスを許す前)に、プロセッサアフィニティを使って、プロセスを特定のコアに割り当てる。
図6を用いて、具体的な例を挙げて説明すると、担当プロセスとして管理テーブル12aに記憶された識別子が「1」のプロセス20Aをコア201Aに割り当てる。同様に、担当プロセスとして管理テーブル12aに記憶された識別子が「2」のプロセス20Bをコア201Bに割り当てる。また同様に、担当プロセスとして管理テーブル12aに記憶された識別子が「3」のプロセス20Cをコア211Aに割り当て、担当プロセスとして管理テーブル12aに記憶された識別子が「4」のプロセス20Dをコア211Bに割り当てる。
これにより、図6に示すように、プロセス1がID「1〜10000」、プロセス2がID「10001〜20000」、プロセス3がID「20001〜30000」、プロセス4がID「30001〜40000」を担当することとなる。このため、特定のデータのIDに関連する処理が特定のコアで固定的に行われるため、コアが持つデータのキャッシュヒット率を向上させることができる。
また、振分部13bは、管理テーブル12aに記憶されたプロセスのIDの数がコアの数より多い場合には、各コアが担当するプロセスの数が均等になるように、各プロセスを各コアに振り分ける。例えば、管理テーブル12aに記憶されたプロセスのIDの数が8であり、コアの数が4である場合には、各コアが担当するプロセスの数が均等になるように、各コアに対してプロセスの数を2つずつ振り分ける。なお、振分部13bは、マルチコアサーバ20が有するコアの総数を予め把握しているものとする。
特定部13cは、データベース40に記憶されたデータを要求するリクエストをクライアント側送受信部13aが受信した場合に、該リクエストに含まれるアクセス先のIDを抽出し、管理テーブル12aの管理表を参照して、該IDに対応するプロセスのIDで示されるプロセスを特定する。
例えば、特定部13cは、リクエストとして、「SELECT Name FROM table WHERE ID=20032」をクライアント側送受信部13aが受信した場合には、WHERE句のID「20032」を抽出し、ID「20032」であることから、管理テーブル12aの管理表を参照して、ID「20032」に対応するプロセスのID「3」のプロセスが担当であると特定する。
サーバ側送受信部13dは、特定部13cによって特定されたプロセスを担当するコアに対して、リクエストを送信する。例えば、サーバ側送受信部13dは、プロセスのID「3」のプロセスが担当であると特定した場合には、プロセスのID「3」のプロセスを担当するマルチコアサーバ20のコア211Aに対して、リクエストを送信して処理を行わせる。
そして、コア211Aによってリクエストに応じた処理が行われた後、サーバ側送受信部13dは、マルチコアサーバ20から処理の実行結果を受信し、負荷分散装置10を介して、クライアント30へ実行結果を送信する。このようにして、プロセスのID「3」に対応するコア211Aには、IDが「20001〜30000」の範囲のリクエストが集まることになる。このため、コアが処理するデータのキャッシュヒット率を向上させることが可能となる。
そして、コア211Aによってリクエストに応じた処理が行われた後、サーバ側送受信部13dは、マルチコアサーバ20から処理の実行結果を受信し、負荷分散装置10を介して、クライアント30へ実行結果を送信する。
[負荷分散装置による処理]
次に、図7を用いて、第一の実施の形態に係る負荷分散装置10による処理を説明する。図7は、第一の実施の形態に係る負荷分散装置の処理手順を説明するためのフローチャートである。
図7に示すように、負荷分散装置10のクライアント側送受信部13aがクライアント30からリクエストを受信すると(ステップS101肯定)、特定部13cは、リクエストに含まれるデータのIDを抽出する(ステップS102)。例えば、特定部13cは、リクエストとして、「SELECT Name FROM table WHERE ID=20032」をクライアント側送受信部13aが受信した場合には、WHERE句のID「20032」を抽出する。
そして、特定部13cは、管理テーブル12aの管理表を参照して、抽出したIDに対応する担当プロセスを特定する(ステップS103)。例えば、特定部13cは、抽出したID「20032」である場合には、管理テーブル12aの管理表を参照して、ID「20032」に対応するプロセスのID「3」のプロセスが担当プロセスであると特定する。
その後、サーバ側送受信部13dは、特定した担当プロセスに対するコアに対してリクエストを送信する(ステップS104)。例えば、サーバ側送受信部13dは、プロセスのID「3」のプロセスが担当であると特定された場合には、プロセスのID「3」のプロセスを担当するマルチコアサーバ20のコア211Aに対して、リクエストを送信して処理を行わせる。
[第一の実施形態の効果]
上述してきたように、負荷分散装置10は、データベース40に記憶されるデータを識別する各IDと、該データへのアクセスに関する処理を担当する各プロセスを識別するためのプロセスのIDとを対応付けて記憶する管理テーブル12aを有する。負荷分散装置10は、管理テーブル12aに記憶された各プロセスのIDで示される各プロセスを、各コアに振り分ける。そして、負荷分散装置10は、データベース40に記憶されたデータを要求するリクエストを受信した場合に、該リクエストに含まれるアクセス先のIDを抽出し、管理テーブル12aを参照して、該IDに対応するプロセスのIDで示されるプロセスを特定する。続いて、負荷分散装置10は、特定されたプロセスを担当するコアに対して、リクエストを送信する。
このため、負荷分散装置10によれば、特定のデータのIDに関連する処理が特定のコアで固定的に行われるため、コアが持つデータのキャッシュヒット率を向上させることができる。この結果、各コアに処理を適切に割り当てることができるという効果を奏する。また、負荷分散装置10は、コアの負荷を監視するなどの処理が不要であるため、処理負荷を大きくすることはない。さらに、ハードウェアでもソフトウェアでも実現可能であるが、アプリケーションやOSやハードウェアを改造しなくても実現可能であり、実用的である。なお、アプリケーションやOSやハードウェアを改造しなくても実現可能であるという効果は、上記の第一の実施形態に限らず、他の実施形態であっても、同様の効果を得られるものである。
また、負荷分散装置10の管理テーブル12aでは、データのIDに対応付けられたプロセスのIDの数が、コアの数と同じである。このため、プロセスとコアとの関係を一対一とすることができ、プロセスをコアに割り当てることを容易にすることが可能である。
また、負荷分散装置10の管理テーブル12aでは、データのIDとして、データベース40に記憶されるデータの範囲を識別する複数のデータ識別子を各プロセスのIDに対応付けてそれぞれ記憶し、該複数のデータのIDの数がそれぞれ同数である。このため、各コアに対して、データの範囲のリクエストが均等に割り当てられるようにすることが可能である。
また、負荷分散装置10は、管理テーブル12aに記憶されたプロセスのIDの数がコアの数より多い場合には、各コアが担当するプロセスの数が均等になるように、各プロセスを各コアプロセッサに振り分ける。このため、プロセスの数とコアの数が異なる場合であっても、各コアに対してプロセスを均等に割り当てることが可能である。
[第二の実施の形態]
さて、これまで本発明の実施形態について説明したが、本発明は上述した実施形態以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では第二の実施形態として本発明に含まれる他の実施形態を説明する。
(1)システム構成等
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、振分部13bと特定部13cを統合してもよい。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
(2)プログラム
また、上記実施形態において説明した負荷分散装置10が実行する処理をコンピュータが実行可能な言語で記述したプログラムを作成することもできる。例えば、第一の実施形態に係る負荷分散装置10が実行する処理をコンピュータが実行可能な言語で記述した負荷分散プログラムを作成することもできる。この場合、コンピュータが負荷分散プログラムを実行することにより、上記実施形態と同様の効果を得ることができる。さらに、かかる負荷分散プログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録され負荷分散プログラムをコンピュータに読み込ませて実行することにより上記第一の実施形態と同様の処理を実現してもよい。以下に、図1に示した負荷分散装置10と同様の機能を実現する負荷分散プログラムを実行するコンピュータの一例を説明する。なお、図1に示した負荷分散装置10が実行する処理をプログラムとしてコンピュータが行う場合に、図1のマルチコアサーバ20上でプログラムが実行されてもよい。
図8は、負荷分散プログラムを実行するコンピュータ1000を示す図である。図8に例示するように、コンピュータ1000は、例えば、メモリ1010と、CPU1020と、ハードディスクドライブインタフェース1030と、ディスクドライブインタフェース1040と、シリアルポートインタフェース1050と、ビデオアダプタ1060と、ネットワークインタフェース1070と、GPU1100とを有し、これらの各部はバス1080によって接続される。
メモリ1010は、図8に例示するように、ROM(Read Only Memory)1011及びRAM1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、図8に例示するように、ハードディスクドライブ1031に接続される。ディスクドライブインタフェース1040は、図8に例示するように、ディスクドライブ1041に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ1041に挿入される。シリアルポートインタフェース1050は、図8に例示するように、例えばマウス1051、キーボード1052に接続される。ビデオアダプタ1060は、図8に例示するように、例えばディスプレイ1061に接続される。
ここで、図8に例示するように、ハードディスクドライブ1031は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093、プログラムデータ1094を記憶する。すなわち、上記の負荷分散プログラムは、コンピュータ1000によって実行される指令が記述されたプログラムモジュールとして、例えばハードディスクドライブ1031に記憶される。
また、上記実施形態で説明した各種データは、プログラムデータとして、例えばメモリ1010やハードディスクドライブ1031に記憶される。そして、CPU1020およびGPU1100が、メモリ1010やハードディスクドライブ1031に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出し、振分手順、特定手順、送信手順を実行する。
なお、負荷分散プログラムに係るプログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1031に記憶される場合に限られず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ等を介してCPU1020によって読み出されてもよい。あるいは、負荷分散プログラムに係るプログラムモジュール1093やプログラムデータ1094は、ネットワーク(LAN(Local Area Network)、WAN(Wide Area Network)等)を介して接続された他のコンピュータに記憶され、ネットワークインタフェース1070を介してCPU1020またはGPU1100によって読み出されてもよい。
10 負荷分散装置
11 通信制御部
12 記憶部
12a 管理テーブル
13 制御部
13a クライアント側送受信部
13b 振分部
13c 特定部
13d サーバ側送受信部
20 マルチコアサーバ
30 クライアント
40 データベース
100 マルチコアシステム

Claims (7)

  1. 記憶装置に記憶されるデータを識別する各データ識別子と、該データへのアクセスに関する処理を担当する各プロセスを識別するためのプロセス識別情報とを対応付けて記憶する記憶部と、
    前記記憶部に記憶された各プロセス識別情報で示されるプロセスについて、同一のプロセスが同一のコアプロセッサに振り分けられるように、各コアプロセッサに振り分ける振分部と、
    前記記憶装置に記憶されたデータを要求するリクエストを受信した場合に、該リクエストに含まれるアクセス先のデータ識別子を抽出し、前記記憶部を参照して、該データ識別子に対応するプロセス識別情報で示されるプロセスを特定する特定部と、
    前記特定部によって特定されたプロセスを担当するコアプロセッサに対して、前記リクエストを送信する送信部と、
    を備えることを特徴とする負荷分散装置。
  2. 前記データ識別子に対応付けられたプロセス識別情報の数が、前記コアプロセッサの数と同じであることを特徴とする請求項1に記載の負荷分散装置。
  3. 前記記憶部は、前記データ識別子として、前記記憶装置に記憶されるデータの範囲を識別する複数のデータ識別子を各プロセス識別情報に対応付けてそれぞれ記憶し、該複数のデータ識別子の数がそれぞれ同数であることを特徴とする請求項1または2に記載の負荷分散装置。
  4. 前記振分部は、前記記憶部に記憶されたプロセス識別情報の数が前記コアプロセッサの数より多い場合には、各コアプロセッサが担当するプロセスの数が均等になるように、各プロセスを各コアプロセッサに振り分けることを特徴とする請求項1〜3のいずれか一つに記載の負荷分散装置。
  5. 前記記憶部は、データベースに記憶されるデータを識別するデータ識別子と、前記データベースへのアクセスを管理するデータベース管理システムのプロセスであって、同一の処理を行うプロセスを識別するためのプロセス識別情報とを対応付けて記憶することを特徴とする請求項1〜4のいずれか一つに記載の負荷分散装置。
  6. 負荷分散装置で実行される負荷分散方法であって、
    前記負荷分散装置は、記憶装置に記憶されるデータを識別する各データ識別子と、該データへのアクセスに関する処理を担当する各プロセスを識別するためのプロセス識別情報とを対応付けて記憶する記憶部を備え、
    前記記憶部に記憶された各プロセス識別情報で示されるプロセスについて、同一のプロセスが同一のコアプロセッサに振り分けられるように、各コアプロセッサに振り分ける振分工程と、
    前記記憶装置に記憶されたデータを要求するリクエストを受信した場合に、該リクエストに含まれるアクセス先のデータ識別子を抽出し、前記記憶部を参照して、該データ識別子に対応するプロセス識別情報で示されるプロセスを特定する特定工程と、
    前記特定工程によって特定されたプロセスを担当するコアプロセッサに対して、前記リクエストを送信する送信工程と、
    を含んだことを特徴とする負荷分散方法。
  7. 記憶装置に記憶されるデータを識別する各データ識別子と、該データへのアクセスに関する処理を担当する各プロセスを識別するためのプロセス識別情報とを対応付けて記憶する記憶部に記憶された各プロセス識別情報で示されるプロセスについて、同一のプロセスが同一のコアプロセッサに振り分けられるように、各コアプロセッサに振り分ける振分ステップと、
    前記記憶装置に記憶されたデータを要求するリクエストを受信した場合に、該リクエストに含まれるアクセス先のデータ識別子を抽出し、前記記憶部を参照して、該データ識別子に対応するプロセス識別情報で示されるプロセスを特定する特定ステップと、
    前記特定ステップによって特定されたプロセスを担当するコアプロセッサに対して、前記リクエストを送信する送信ステップと、
    をコンピュータに実行させるための負荷分散プログラム。
JP2012228736A 2012-10-16 2012-10-16 負荷分散装置、負荷分散方法および負荷分散プログラム Pending JP2014081765A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012228736A JP2014081765A (ja) 2012-10-16 2012-10-16 負荷分散装置、負荷分散方法および負荷分散プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012228736A JP2014081765A (ja) 2012-10-16 2012-10-16 負荷分散装置、負荷分散方法および負荷分散プログラム

Publications (1)

Publication Number Publication Date
JP2014081765A true JP2014081765A (ja) 2014-05-08

Family

ID=50785916

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012228736A Pending JP2014081765A (ja) 2012-10-16 2012-10-16 負荷分散装置、負荷分散方法および負荷分散プログラム

Country Status (1)

Country Link
JP (1) JP2014081765A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016139171A (ja) * 2015-01-26 2016-08-04 日本電信電話株式会社 リソース割当装置、リソース割当システム、および、リソース割当方法
KR20190087520A (ko) * 2016-12-27 2019-07-24 도시바 미쓰비시덴키 산교시스템 가부시키가이샤 프로그래머블 컨트롤러, 관리 장치 및 제어 시스템
CN110968415A (zh) * 2018-09-29 2020-04-07 Oppo广东移动通信有限公司 多核处理器的调度方法、装置及终端

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016139171A (ja) * 2015-01-26 2016-08-04 日本電信電話株式会社 リソース割当装置、リソース割当システム、および、リソース割当方法
KR20190087520A (ko) * 2016-12-27 2019-07-24 도시바 미쓰비시덴키 산교시스템 가부시키가이샤 프로그래머블 컨트롤러, 관리 장치 및 제어 시스템
US10956238B2 (en) 2016-12-27 2021-03-23 Toshiba Mitsubishi-Electric Industrial Systems Corporation Programmable controller, management device, and control system
KR102258542B1 (ko) * 2016-12-27 2021-05-28 도시바 미쓰비시덴키 산교시스템 가부시키가이샤 프로그래머블 컨트롤러, 관리 장치 및 제어 시스템
CN110968415A (zh) * 2018-09-29 2020-04-07 Oppo广东移动通信有限公司 多核处理器的调度方法、装置及终端
CN110968415B (zh) * 2018-09-29 2022-08-05 Oppo广东移动通信有限公司 多核处理器的调度方法、装置及终端

Similar Documents

Publication Publication Date Title
CN106776005B (zh) 一种面向容器化应用的资源管理系统及方法
CN110032447B (zh) 用于分配资源的方法和装置
US8949847B2 (en) Apparatus and method for managing resources in cluster computing environment
US11579907B2 (en) Acceleration management node, acceleration node, client, and method
WO2018177012A1 (zh) 一种控制带宽的方法、装置和设备
US9875139B2 (en) Graphics processing unit controller, host system, and methods
US9870171B2 (en) Affinity-aware parallel zeroing of memory for initialization of large pages in non-uniform memory access (NUMA) servers
CN105373420B (zh) 数据传输方法及装置
US9244737B2 (en) Data transfer control method of parallel distributed processing system, parallel distributed processing system, and recording medium
US10164902B2 (en) Resource allocation method using cloud API key and apparatus therefor
US10891164B2 (en) Resource setting control device, resource setting control system, resource setting control method, and computer-readable recording medium
US9807008B2 (en) Tournament scheduling
CN110166507B (zh) 多资源调度方法和装置
WO2016101799A1 (zh) 一种基于分布式系统的业务分配方法及装置
JP2014120097A (ja) 情報処理装置、プログラム、及び、情報処理方法
US10936377B2 (en) Distributed database system and resource management method for distributed database system
CN113342477A (zh) 一种容器组部署方法、装置、设备及存储介质
US20210200765A1 (en) Connection pools for parallel processing applications accessing distributed databases
JP2013125548A (ja) 仮想マシン割り当てシステム及びその使用方法
CN106789421B (zh) 协同设计的方法和装置
CN104518897A (zh) 虚拟防火墙的资源管理优化处理方法和装置
JP2014081765A (ja) 負荷分散装置、負荷分散方法および負荷分散プログラム
CN110245014B (zh) 数据处理方法和装置
US20150212859A1 (en) Graphics processing unit controller, host system, and methods
CN114116173A (zh) 动态调整任务分配的方法、装置和系统