(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-11-08
(45)【発行日】2022-11-16
(54)【発明の名称】サーバ制御装置、サーバ制御方法、およびプログラム
(51)【国際特許分類】
G06F 9/50 20060101AFI20221109BHJP
【FI】
G06F9/50 150C
G06F9/50 120A
(21)【出願番号】P 2021528717
(86)(22)【出願日】2019-06-25
(86)【国際出願番号】 JP2019025240
(87)【国際公開番号】W WO2020261399
(87)【国際公開日】2020-12-30
【審査請求日】2021-11-09
(73)【特許権者】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(74)【代理人】
【識別番号】110001807
【氏名又は名称】弁理士法人磯野国際特許商標事務所
(72)【発明者】
【氏名】大谷 育生
(72)【発明者】
【氏名】堀米 紀貴
【審査官】大桃 由紀雄
(56)【参考文献】
【文献】国際公開第2004/092971(WO,A1)
【文献】国際公開第2010/089626(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/50
(57)【特許請求の範囲】
【請求項1】
アプリケーションの特定処理をアクセラレータにオフロードするサーバ内の前記アプリケーションごとのリクエスト、および前記サーバの前記アクセラレータと前記アプリケーションの構成を取得する取得部と、
取得した前記サーバの前記リクエストおよび前記構成の情報に基づいて、前記リクエストに対する処理性能の比を求め、前記比の前記アプリケーション間のばらつきが所定の閾値以下になるように前記アクセラレータの割り当てを最適化する最適化演算部と、
前記最適化演算部による演算結果と所定のポリシに基づいて、前記サーバの構成案を決定し、当該構成案を当該サーバに命令する決定部と、を備える
ことを特徴とするサーバ制御装置。
【請求項2】
前記比の分散、前記比の最小値、前記比の最大値のうち少なくともいずれかを前記比のパラメータとして有し、前記パラメータを適用するための閾値を保持する閾値記憶部を備え、
前記最適化演算部は、
前記パラメータの前記閾値をもとに、最適化演算を実行する
ことを特徴とする請求項1に記載のサーバ制御装置。
【請求項3】
前記最適化演算部は、前記比を下記式(2)に従って演算する
【数1】
ここで、
P:性能
R:リクエスト
P/R:比
Pi:アクセラレータあり性能
pi:ソフト性能
δ
F,δ
S:デルタ関数
ことを特徴とする請求項1に記載のサーバ制御装置。
【請求項4】
前記最適化演算部は、前記比を下記式(3)に従って演算する
【数2】
ここで、
P:性能
R:リクエスト
P/R:比
Pi:アクセラレータあり性能
pi:ソフト性能
ことを特徴とする請求項1に記載のサーバ制御装置。
【請求項5】
前記最適化演算部は、下記式(4)および式(5)で示される容量条件の範囲で、前記アクセラレータの割り当てを最適化する
【数3】
ここで、
Ci:FPGA要求容量
ci:ソフト要求容量
Sj:サーバj上のアクセラレータ容量
sj:サーバj上のソフト容量
δ
F,δ
S:デルタ関数
ことを特徴とする請求項1に記載のサーバ制御装置。
【請求項6】
前記最適化演算部は、前記比の分散を最小化させる最適化演算を行う
ことを特徴とする請求項1に記載のサーバ制御装置。
【請求項7】
アプリケーションの特定処理をアクセラレータにオフロードするサーバを制御するサーバ制御装置のサーバ制御方法であって、
前記サーバ内の前記アプリケーションごとのリクエスト、および前記サーバの前記アクセラレータと前記アプリケーションの構成を取得する工程と、
取得した前記サーバの前記リクエストおよび前記構成の情報に基づいて、前記リクエストに対する処理性能の比を求め、前記比の前記アプリケーション間のばらつきが所定の閾値以下になるように前記アクセラレータの割り当てを最適化する工程と、
前記最適化した演算結果と所定のポリシに基づいて、前記サーバの構成案を決定し、当該構成案を当該サーバに命令する工程と、を有する
ことを特徴とするサーバ制御方法。
【請求項8】
コンピュータを、
アプリケーションの特定処理をアクセラレータにオフロードするサーバ内の前記アプリケーションごとのリクエスト、および前記サーバの前記アクセラレータと前記アプリケーションの構成を取得する取得手順、
取得した前記サーバの前記リクエストおよび前記構成の情報に基づいて、前記リクエストに対する処理性能の比を求め、前記比の前記アプリケーション間のばらつきが所定の閾値以下になるように前記アクセラレータの割り当てを最適化する最適化演算手順、
前記最適化演算手順による演算結果と所定のポリシに基づいて、前記サーバの構成案を決定し、当該構成案を当該サーバに命令する決定手順、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、サーバ制御装置、サーバ制御方法、およびプログラムに関する。
【背景技術】
【0002】
GPU(Graphics Processing Unit)やFPGA(Field Programmable Gate Array)等のアクセラレータにソフトウェアアプリケーション(以下、APLという)の処理の一部をオフロードし、ソフトウェア(CPU処理)のみでは到達できない性能や電力効率を実現する例が増えてきている。
NFV(Network Functions Virtualization)やデータセンタなど、大規模なサーバクラスタにおいて、上記のようなアクセラレータを適用するケースが想定される(非特許文献1,非特許文献2参照)。
【0003】
従来のサーバ負荷要因のオフロードについて説明する。
図17は、汎用的なコンピュータに特定の処理に特化した演算装置を追加した演算システムの概略構成図である。
図17の左図は、プログラマブルでない(機能追加できない)演算システム10Aの構成図である。
図17の左図に示す演算システム10Aは、CPU11と、通信ネットワークに接続するためのNIC(Network Interface Card)12と、を備える。CPU11は、複数のCore11aを搭載するCoreプロセッサである。
図17では、APLおよびパケット処理がCore11aを使用する状況をイメージ表現している。
図17の左図の細矢印に示すように、演算システム10AにおけるCPU11は、APLの実行に先立ってパケット処理(あるいはパケット処理とAPLの並列処理)を行わなければならず、処理速度が遅い。
【0004】
図17の右図に示す演算システム10Bは、NIC12に代えて、アクセラレータ付きのNICであるSmartNIC13を備える。SmartNIC13は、処理能力が落ちる原因となるIPパケット処理など、負荷のかかる処理をオフロードしてCPU11の負荷を軽減することができるNICである。SmartNIC13は、パケット処理用の演算回路にプログラムでき、パケット処理用プログラムをオフロード可能である(
図17の符号a参照)。
図17の右図の太矢印に示すように、SmartNIC13を利用することで、例えば仮想サーバ環境のアクセラレーションによる処理能力を向上させることができる。
【先行技術文献】
【非特許文献】
【0005】
【文献】谷所 他, “P4/Cを用いたSmartNICファームウェア開発の取り組み,” ,[online], OkinawaOpenDays2017. 〈URL:https://www.okinawaopenlabs.com/ood/2017/wp-content/uploads/sites/4/2017/12/fujitsu_3.pdf〉
【文献】“インテルFPGAがMicrosoft Bingインテリジェント・サーチでディープラーニングAIを加速,” ,[online], インテルニュースルーム, 2018. 〈URL:https://newsroom.intel.co.jp/editorials/intel-fpgas-accelerating-artificial-intelligence-deep-learning-bing-intelligent-search/#gs.1jawxe〉
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、FPGAに搭載できる電子回路の容量は限られているため、複数種類のAPLの一部をオフロードすることは困難である。このため、複数種類のAPLを実行するクラスタ内において、どのFPGAにどのAPLの一部をオフロードするかを最適化しないと、全体的なスループットの向上が見込めないケースがある。
【0007】
図18A~
図18Dは、APLにFPGA接続が必須の場合のオフロードを説明する図である。NFVやデータセンタなどのサーバクラスタは、複数(ここでは4台)のサーバ20-1~20を有する。サーバ20-1~20-4は、FPGA21を備え、FPGA21にAPLの処理の一部をオフロードする。
図18A~
図18Dに示すサーバ20-1~20-4は、特定APLにFPGA21接続が必須である。ここでは、
図18Aおよび
図18Bに示すサーバ20-1~20-2は、APL1にFPGA21接続が必須であり、
図18Cおよび
図18Dに示すサーバ20-3~20-4は、APL2にFPGA21接続が必須である。
【0008】
図18Aおよび
図18Bに示すように、サーバ20-1~20-2は、FPGA21内に特定APL(APL1)をオフロードするものの他APL(APL2)は乗らない(APL2はオフロードできない)。このため、
図18Aおよび
図18Bの符号bに示す過負荷状態が発生する。一方、
図18Cおよび
図18Dに示すように、サーバ20-3~20-4は、FPGA21内に特定APL(APL2)をオフロードする(APL2をオフロードする負荷には余裕がある)。
このように、APLにFPGA接続が必須の場合に、FPGA21の割当がAPL負荷に対してアンバランスであると、APL限界に到達し、全体のスループットが減少する。
【0009】
図19A~
図19Dは、APLにFPGA接続が任意の場合のオフロードを説明する図である。サーバ20-1~20-4は、FPGA21を備え、APLにFPGA21を任意で接続して、FPGA21にAPLの処理の一部をオフロードする。
図19A~
図19Dに示すサーバ20-1~20-4は、特定APLにFPGA21接続は任意である。ここでは、
図19Aおよび
図19Bに示すサーバ20-1~20-2は、APL1にFPGA21を接続し、
図19Cおよび
図19Dに示すサーバ20-3~20-4は、APL2にFPGA21を接続している。また、APL1は、APL2よりもAPL負荷が大きいとする。
【0010】
図19Aおよび
図19Bに示すように、サーバ20-1~20-2は、FPGA21内にAPL負荷が大きいAPL1をオフロードするので、サーバ20-1~20-2では、APL1およびAPL2はいずれもAPL限界に到達しない。これに対して、
図19Cおよび
図19Dの符号cに示すように、サーバ20-3~20-4は、FPGA21内にAPL負荷が小さいAPL2をオフロードするので、APL1についてAPL限界に到達し、スループットが減少する。
このように、APLにFPGA接続が任意の場合、FPGA内に特定APLをオフロードした上で他APLを乗せられるにもかかわらず、FPGA21の割当がAPL負荷に対してアンバランスであると、APL限界に到達し、全体のスループットが減少する。
【0011】
このような背景に鑑みて本発明がなされたのであり、本発明は、アクセラレータを適用するサーバのスループットや可用性を向上させることができるネットワークシステムおよびネットワーク帯域制御管理方法を提供することを課題とする。
【課題を解決するための手段】
【0012】
前記した課題を解決するため、本発明は、アプリケーションの特定処理をアクセラレータにオフロードするサーバ内の前記アプリケーションごとのリクエスト、および前記サーバの前記アクセラレータと前記アプリケーションの構成を取得する取得部と、取得した前記サーバの前記リクエストおよび前記構成の情報に基づいて、前記リクエストに対する処理性能の比を求め、前記比の前記アプリケーション間のばらつきが所定の閾値以下になるように前記アクセラレータの割り当てを最適化する最適化演算部と、前記最適化演算部による演算結果と所定のポリシに基づいて、前記サーバが取るべき構成案を決定し、当該構成案を当該サーバに命令する決定部と、を備えることを特徴とするサーバ制御装置とした。
【発明の効果】
【0013】
本発明によれば、アクセラレータを適用するサーバのスループットや可用性を向上させることができるサーバ制御装置、サーバ制御方法、およびプログラムを提供することができる。
【図面の簡単な説明】
【0014】
【
図1】本発明の実施形態に係るサーバ制御装置を備えるネットワークシステムの構成例を示す図である。
【
図2】本実施形態に係るサーバ制御装置およびAPL制御部の構成を示す図である。
【
図3】本実施形態に係るサーバ制御装置の閾値テーブルの一例を示す図である。
【
図4】本実施形態に係るサーバ制御装置のポリシテーブルの一例を示す図である。
【
図5】本実施形態に係るサーバ制御装置の設定情報テーブルの一例を示す図である。
【
図6】本実施形態に係るAPL制御部の現構成テーブルを集約してサーバ制御装置の全構成テーブルを作成する例を説明する図である。
【
図7】本実施形態に係るAPL制御部の現リクエストテーブルを集約してサーバ制御装置の全リクエストテーブルを作成する例を説明する図である。
【
図8】本実施形態に係るサーバ制御装置のアクセラレータ割り当てを説明する図である。
【
図9】本実施形態に係る物理サーバ上に単一APLしかない場合のアクセラレータ書き換え方法を説明する図である。
【
図10】本実施形態に係る物理サーバ上に複数APLが混在する場合のアクセラレータ書き換え方法を説明する図である。
【
図11A】本実施形態に係るサーバ制御装置のAPLにFPGA接続が必須の場合のオフロードを説明する図である。
【
図11B】本実施形態に係るサーバ制御装置のAPLにFPGA接続が必須の場合のオフロードを説明する図である。
【
図11C】本実施形態に係るサーバ制御装置のAPLにFPGA接続が必須の場合のオフロードを説明する図である。
【
図11D】本実施形態に係るサーバ制御装置のAPLにFPGA接続が必須の場合のオフロードを説明する図である。
【
図12A】本実施形態に係るサーバ制御装置のAPLにFPGA接続が任意の場合のオフロードを説明する図である。
【
図12B】本実施形態に係るサーバ制御装置のAPLにFPGA接続が任意の場合のオフロードを説明する図である。
【
図12C】本実施形態に係るサーバ制御装置のAPLにFPGA接続が任意の場合のオフロードを説明する図である。
【
図12D】本実施形態に係るサーバ制御装置のAPLにFPGA接続が任意の場合のオフロードを説明する図である。
【
図13】本実施形態に係るサーバとサーバ制御装置を備えるネットワークシステムの制御シーケンス図である。
【
図14】本実施形態に係るサーバとサーバ制御装置を備えるネットワークシステムの制御シーケンス図である。
【
図15】本実施形態に係るサーバ制御装置のサーバ制御方法を示すフローチャートである。
【
図16】本実施形態に係るサーバ制御装置の機能を実現するコンピュータの一例を示すハードウェア構成図である。
【
図17】汎用的なコンピュータに特定の処理に特化した演算装置を追加した演算システムの概略構成図である。
【
図18A】APLにFPGA接続が必須の場合のオフロードを説明する図である。
【
図18B】APLにFPGA接続が必須の場合のオフロードを説明する図である。
【
図18C】APLにFPGA接続が必須の場合のオフロードを説明する図である。
【
図18D】APLにFPGA接続が必須の場合のオフロードを説明する図である。
【
図19A】APLにFPGA接続が任意の場合のオフロードを説明する図である。
【
図19B】APLにFPGA接続が任意の場合のオフロードを説明する図である。
【
図19C】APLにFPGA接続が任意の場合のオフロードを説明する図である。
【
図19D】APLにFPGA接続が任意の場合のオフロードを説明する図である。
【発明を実施するための形態】
【0015】
以下、図面を参照して本発明を実施するための形態(以下、「本実施形態」という)におけるネットワークシステム等について説明する。
(実施形態)
[ネットワークシステム1の構成]
図1は、本発明の実施形態に係るサーバ制御装置100を備えるネットワークシステムの構成例を示す図である。
図1に示すように、ネットワークシステム1は、複数の物理サーバ30と、物理サーバ30をイントラネット50に接続するスイッチ(SW)40と、物理サーバ30のアクセラレータ活用に関する制御を行うサーバ制御装置100と、を含む。SW40は、SW制御部41を備える。
【0016】
物理サーバ30は、APL制御部31と、APL32,33と、仮想パッチパネル(virtual patch panel)34と、アクセラレータ35と、を備える。
【0017】
ネットワークシステム1は、イントラネット50と物理サーバ30がSW40で接続されている。物理サーバ30内はアクセラレータ35とAPL32,33の間が仮想パッチパネル34を介して接続されている。仮想パッチパネル34に代えて、仮想スイッチを用いてもよい。
【0018】
ネットワークシステム1は、APL32,33とアクセラレータ35とが、仮想パッチパネル34や仮想スイッチ(図示省略)を介して接続されている。SFC(Service Function Chaining)のようにモジュール単位で柔軟につなぎ替える用途には、アプリケーションであるSPP(Soft Patch Panel)を用いる。SPPは、VM(Virtual Machine)間に共有メモリを用意し、各VMが同じメモリ空間を直接参照できる構成にすることで、仮想化層でのパケットコピーを省略する。また、物理NIC(Network Interface Card)と共有メモリ間のパケットのやり取りには、SPPは、各VMのメモリ交換の参照先を制御することで、パケットの入力先、出力先をソフトウェア的に変更することができる。こうすることで、SPPは、VM間やVMと物理NIC間の動的な接続切替を実現する。
【0019】
[サーバ制御装置100およびAPL制御部31の構成]
図2は、サーバ制御装置100およびAPL制御部31の構成を示す図である。
<サーバ制御装置100>
サーバ制御装置100は、ネットワークシステム1に配置され、各物理サーバ30(
図1参照)のAPL制御部31に対して構成変更の指示を出す。
図2に示すように、サーバ制御装置100は、統合制御部110と、リクエスト・構成収集部120(取得部)と、最適化演算部130と、構成決定部140(決定部)と、構成命令部150と、閾値テーブル111(閾値記憶部)と、ポリシテーブル112と、設定情報テーブル113と、全構成テーブル121と、全リクエストテーブル122と、を備える。
【0020】
統合制御部110は、周期的あるいはオペレータの指示により最適化演算部130に演算要求を発出する。
統合制御部110は、閾値テーブル111から閾値を取得し、最適化演算部130の演算結果が閾値テーブル111の閾値を超えている否かを判別する。
【0021】
リクエスト・構成収集部120は、アプリケーションの特定処理をアクセラレータにオフロードする物理サーバ30内のアプリケーションごとのリクエスト、およびサーバのアクセラレータとアプリケーションの構成を取得し、全リクエストテーブル122および全構成テーブル121に格納する。
【0022】
最適化演算部130は、取得した物理サーバ30のリクエストおよび構成の情報に基づいて、リクエストに対する処理性能の性能・リクエスト比(P/R)を求め、この性能・リクエスト比のアプリケーション間のばらつきが所定の閾値以下になるようにアクセラレータの割り当てを最適化する。
【0023】
最適化演算部130は、現在のアクセラレータの割り当てに関する性能・リクエスト比(P/R)を計算する。
最適化演算部130は、後記する式(2)または式(3)に従って性能・リクエスト比(P/R)を演算する。
最適化演算部130は、後記する式(4)および式(5)に示す容量条件の範囲で、アクセラレータの割り当てを最適化する。
最適化演算部130は、後記する式(6)に従って、性能・リクエスト比(P/R)の分散を最小化させる最適化演算を行う。
【0024】
最適化演算部130は、自身の処理能力あるいは外部計算機71(
図2参照)の処理能力を用いて、アクセラレータの割り当てに関する最適化演算を実行してもよい。最適化演算部130は、外部DB72に演算結果がある場合、外部DB72に格納された演算結果を参照してもよい。
【0025】
構成決定部140は、ポリシテーブル112からポリシを取得する。構成決定部140は、統合制御部110から受信した演算結果とポリシを用いて、物理サーバ30が取るべき構成案を決定する。
構成命令部150は、構成決定部140が決定した構成案を該当物理サーバ30に命令するインタフェースである。
【0026】
上記閾値テーブル111、ポリシテーブル112、設定情報テーブル113、全構成テーブル121、および全リクエストテーブル122の詳細については後記する。
【0027】
<APL制御部31>
APL制御部31は、APLの特定処理をアクセラレータにオフロードするAPL制御を実行する。
APL制御部31は、サーバ制御装置100の指示に従い、物理サーバ30内のAPL、アクセラレータの生成削除、仮想パッチパネル34(
図1参照)の構成を変更する。
図2に示すように、APL制御部31は、構成更新部311と、リクエスト更新部312と、APL生成削除部313と、接続切替部314と、アクセラレータ生成削除部315と、現構成テーブル316と、現リクエストテーブル317と、を備える。
【0028】
構成更新部311は、現構成テーブル316に保存された物理サーバ30のアクセラレータおよびAPLの構成を更新するとともに、更新したアクセラレータおよびAPLの構成をサーバ制御装置100のリクエスト・構成収集部120に送信する。
リクエスト更新部312は、現リクエストテーブル317に保存されたリクエストを更新するとともに、更新したリクエストをサーバ制御装置100のリクエスト・構成収集部120に送信する。
【0029】
APL生成削除部313は、サーバ制御装置100からの構成命令(構成案)指示に従い、APLを生成または削除する。
接続切替部314は、サーバ制御装置100からの構成命令(構成案)指示に従い、仮想パッチパネル34による接続を切り替える。
アクセラレータ生成削除部315は、サーバ制御装置100からの構成命令(構成案)指示に従い、アクセラレータを生成または削除する。
【0030】
サーバ制御装置100の構成命令部150とAPL制御部31は、直接接続してもよく、また
図2のように通信制御ソフトウェア60を実行することにより通信制御ソフトウェア60上で接続してもよい。
【0031】
[テーブル構成]
次に、サーバ制御装置100の閾値テーブル111、ポリシテーブル112、設定情報テーブル113、全構成テーブル121および全リクエストテーブル122について説明する。
上記閾値テーブル111、ポリシテーブル112および設定情報テーブル113は、物理サーバ30の基本動作パラメータを設定する。また、上記全構成テーブル121および全リクエストテーブル122は、各物理サーバ30のデータを集計したテーブルであり、APL制御部31の現構成テーブル316および現リクエストテーブル317と同様の構成(項目)を採る。
【0032】
<サーバ制御装置100のテーブル構成>
図3は、サーバ制御装置100の閾値テーブル111の一例を示す図である。
図3に示すように、閾値テーブル111は、性能・リクエスト比(P/R)を用いるパラメータの属性と、そのパラメータを適用する場合の閾値を保持する。上記属性は、P/R分散、P/R最小値、P/R最大値であり、その値はそれぞれ「0.5」、「0.5」、「2」である。
ここで、Pは性能、Rはリクエストを示し、P/Rは、性能・リクエスト比を示す。
P/Rの分散が値「0.5」を超えた場合、最適化演算(
図15のステップS16)を実行する。
P/Rの最小値が値「0.5」を下回った場合、最適化演算(
図15のステップS16)を実行する。
P/Rの最大値が値「2」を超えた場合、最適化演算(
図15のステップS16)を実行する。
なお、比の分散、比の最小値、比の最大値のうち少なくともいずれかを比のパラメータとして有するものであればよい。
【0033】
図4は、サーバ制御装置100のポリシテーブル112の一例を示す図である。
図4に示すように、ポリシテーブル112は、ポリシを示す属性と、その値からなる優先度を保持する。上記属性は、最適化ポリシ、APLマイグレーションポリシ、FPGA書き換えポリシであり、その値は順に、例えば「高優先」、「低優先」、「中優先」である。
最適化ポリシは、P/Rの最適化計算結果にどの程度厳密かを決める。
APLマイグレーションポリシは、APLマイグレーション数を抑制するかを決める。
FPGA書き換えポリシは、FPGA書き換え数を抑制するかを決める。
【0034】
図5は、サーバ制御装置100の設定情報テーブル113の一例を示す図である。
図5に示すように、設定情報テーブル113は、APL IDごとに、FPGAあり性能Pi、ソフト性能pi、FPGA要求容量Ci、ソフト要求容量ciの各項目の値を保持する。
例えば、APL#1は、FPGAあり性能Pi「80」、ソフト性能pi「40」、FPGA要求容量Ci「1(1が100%)」、ソフト要求容量ci「0.3(1が100%)」である。このAPL#1は、FPGAあり性能Piおよびソフト性能piが、他のAPLよりも高く、その分、ソフト要求容量ciは他のAPLよりも大きい。
【0035】
また、APL#2は、FPGAあり性能Pi「40」、ソフト性能pi「20」、FPGA要求容量Ci「1」、ソフト要求容量ci「0.1」であり、他のAPLよりもFPGAあり性能Pi、ソフト性能pi、およびソフト要求容量ciが小さい。
また、APL#3は、FPGAあり性能Pi「60」、ソフト性能pi「30」、FPGA要求容量Ci「1」、ソフト要求容量ci「0.2」であり、他のAPLに比べ中程度のFPGAあり性能Pi、ソフト性能pi、およびソフト要求容量ciである。
【0036】
上述したように、上記全構成テーブル121および全リクエストテーブル122は、各物理サーバ30のデータを集計したテーブルである。
【0037】
図6は、APL制御部31の現構成テーブル316を集約してサーバ制御装置100の全構成テーブル121を作成する例を説明する図である。
図6の下図に示すように、全構成テーブル121は、APL制御部31の現構成テーブル316と同一構成であり、サーバIDの列ごとに、FPGAと、クラスタ内のAPL種別数(ここではAPL1,APL2,APL3)とを保持する。
そして、全構成テーブル121は、サーバIDの行ごとに、集計されたクラスタ内のサーバ数を保持する。なお、APL制御部31の現構成テーブル316(
図6の上図参照)は、この行はない。
【0038】
ここで、
図6の下図に示す全構成テーブル121のFPGA列は、FPGAがどのAPLにより占有されているか示している。また、APL列の「FPGA」は、APLの高速化部分がFPGAにより実装されていることを示している。さらに、APL列の「ソフト」は、APLの高速化部分がソフトにより実装されていることを示している。「-」は、当該APLが載っていないことを示している。
【0039】
図7は、APL制御部31の現リクエストテーブル317を集約してサーバ制御装置100の全リクエストテーブル122を作成する例を説明する図である。
図7の下図に示すように、全リクエストテーブル122は、APL制御部31の現リクエストテーブル317と同一構成であり、APL IDごとに、集計したリクエスト数を保持する。例えば、APL#1について全サーバ集約したリクエスト数は、「700」、APL#2について全サーバ集約したリクエスト数は、「300」、APL#3について全サーバ集約したリクエスト数は、「100」であり、APL#1についてリクエスト数が最も大きい。この全リクエストテーブル122を参照することで、リクエスト数が大きいAPLを、FPGAにオフロードすることが有効であると考えられる。
【0040】
<APL制御部31のテーブル構成>
前記
図6の上図に示すように、APL制御部31の現構成テーブル316は、サーバIDごとに、FPGAと、クラスタ内のAPL種別数(APL1,APL2,APL3)とを保持する。
図6の上図の例では、サーバ#1は、FPGAがAPL1により占有されていること、クラスタ内のAPL種別数を示すAPL1はAPLの高速化部分が「FPGA」で実装されていること、APL2およびAPL3はAPLの高速化部分が「ソフト」で実装されていること、が示されている。
【0041】
図6の符号dに示すように、APL制御部31の現構成テーブル316は、リクエスト・構成収集部120(
図2参照)によって、全サーバで集約され、全構成テーブル121に保存される。
【0042】
また、
図7の上図に示すように、APL制御部31の現リクエストテーブル317は、APL IDごとに、リクエスト数を保持する。
図7の上図の例では、APL#1についてのリクエスト数は、「70」、APL#2についてのリクエスト数は、「20」、APL#3についてのリクエスト数は、「10」であり、APL#1についてリクエスト数が最も大きい。
【0043】
図7の符号eに示すように、APL制御部31の現リクエストテーブル317は、リクエスト・構成収集部120(
図2参照)によって、全サーバで集約され、全リクエストテーブル122に保存される。
【0044】
なお、ある物理サーバ30において、現リクエストテーブル317のAPLについてリクエスト数が大きいとしても、全サーバを集約した場合に、該当APLのリクエスト数が必ずしも大きくなるとは限らない。全サーバを集約した全リクエストテーブル122を参照することで、リクエスト数が大きいAPLを、FPGAにオフロードすることができる。
以上述べた、上記各テーブルの項目、値は、一例であり、限定されない。
【0045】
以下、上述のように構成されたサーバ制御装置100のサーバ制御方法について説明する。
[アクセラレータ割り当て]
図8は、サーバ制御装置100のサーバ制御方法を説明する図である。
図8に示すように、サーバ制御装置100が、APLの特定処理をアクセラレータにオフロードする物理サーバ30のサーバ数をNとする。物理サーバ数Nは、i(iは、APLの種類)へのアクセラレータ(FPGA)割り当てありの台数Niと、アクセラレータ割り当てなしの台数(N-Ni)とで表される。
また、アクセラレータ割り当て時のiの性能Pi、アクセラレータ割り当てなしのiの性能piとする。さらに、iへのリクエストRiとする。
【0046】
サーバ制御装置100は、APLごとのリクエストに対する性能比を計算し、当該性能比のAPL間のばらつきが小さくなるようなアクセラレータ割り当て最適解を計算する。
例えば、式(1)に従って、アクセラレータ割り当て最適解を計算する。
【0047】
(NiPi+(N-Ni)pi)/Ri …(1)
ただし、
N:物理サーバ数
Ni:iへのアクセラレータ割り当て数
Pi:アクセラレータ割り当て時のiの性能
pi:アクセラレータ割り当てなしのiの性能
Ri:iへのリクエスト
ここで、ΣNi=Nである。
【0048】
最適解計算方法は、ヒューリスティック、GA(Genetic Algorithm:遺伝的アルゴリズム)、ML(Machine Learning:機械学習)など何を用いてもよい。
【0049】
サーバ制御装置100は、アクセラレータ割り当て最適解が現状と異なっていれば、割り当てが多いAPLのアクセラレータの内容を割り当てが少ないAPLのアクセラレータの内容に書き換える。
例えば、APL1,APL2,APL3のアクセラレータ割り当て最適解(理想)が、APL1:APL2:APL3=1:1:1である場合において、現状が、APL1:APL2:APL3=5:3:2であるとする。この場合には、APL1が性能過多であるので、APL1のアクセラレータの内容をAPL3のアクセラレータの内容に書き換える。
【0050】
[アクセラレータ書き換え方法]
アクセラレータ書き換え方法は、物理サーバ30上に単一APLしかない場合(
図9参照)と、物理サーバ30上に複数APLが混在する場合(
図10参照)とに分けることができる。なお、物理サーバ30上に単一APLしかない場合は、上記した
図18A-
図18Dのケースに当てはまり、物理サーバ30上に複数APLが混在する場合は、上記した
図19A-
図19Dのケースに当てはまる。
【0051】
<物理サーバ30上に単一APLしかない場合>
図9は、物理サーバ30上に単一APLしかない場合のアクセラレータ書き換え方法を説明する図である。
図9の矢印は、APL(ソフトウェア)の一部をアクセラレータ(acc)にオフロードすることを表している。
図9の左図に示すように、物理サーバ30内において、1つのAPL(APL1)がアクセラレータ(acc1)を占有し、アクセラレータ(acc1)を使用する他APLは存在しない。
図9の左図の矢印に示すように、APL1の一部をアクセラレータ(acc1)にオフロードする。このとき、APL1(ソフトウェア)とアクセラレータ(acc1)は、セットで動作する。なお、APL(ソフトウェア)とアクセラレータ(acc)のセット動作については、後記
図9の右図のAPL2も同様である。
【0052】
図9の符号fに示すように、アクセラレータ書き換え指示(APL1→APL2)で次のように移行する。
図9の右図に示すように、サーバ制御装置100は、アクセラレータ(acc1)の内容をAPL2用のものであるアクセラレータ(acc2)に変更する。すなわち、物理サーバ30は、1つのAPLがアクセラレータ(acc)を占有することから、アクセラレータ(acc1)の内容をAPL2用のアクセラレータ(acc2)に変更しなければならない。
アクセラレータ(acc1)の内容をAPL2用のアクセラレータ(acc2)に変更する手順としては、下記(1)(2)を実行する。
(1)APL1を物理サーバ30から削除する。
(2)APL2を物理サーバ30に生成する。
【0053】
<物理サーバ30上に複数APLが混在する場合>
上記した
図1に示すように、サーバ制御装置100は、APL32,33とアクセラレータ35とが、仮想パッチパネル34や仮想スイッチ(図示省略)を介して接続されている。この接続には、例えば、SPPを用いる。
【0054】
図10は、物理サーバ30上に複数APLが混在する場合のアクセラレータ書き換え方法を説明する図である。
図1の左図の矢印gに示すように、APL1が仮想パッチパネル34を介してアクセラレータ35を占有し、
図10の左図の矢印hに示すように、APL2は高速化部分(acc2)をソフトウェアで実行する。この接続は、仮想パッチパネル34を介した接続でもよいし、直接の接続でもよい。または、高速化部分(acc2)がAPL2内に内包される構成でもよい。この場合、APL1(ソフトウェア)とacc1(FPGAまたはソフトウェア;高速化ソフト)はセットで動作する。APL2(ソフトウェア)とacc2(FPGAまたはソフトウェア;高速化ソフト)についても同様である。
【0055】
図10の符号iに示すように、アクセラレータ書き換え指示(APL1→APL2)で次のように移行する。
図10の右図に示すように、サーバ制御装置100は、アクセラレータ(acc1)の内容をAPL2用のものであるアクセラレータ(acc2)に変更する。
アクセラレータ(acc1)の内容をAPL2用のアクセラレータ(acc2)に変更する手順としては、下記(3)(4)(5)を実行する。
(3)APL1の高速化部分(acc1)を生成する(
図10の右図の矢印j参照)。
(4)APL2の高速化部分(acc2)を削除する。
(5)仮想パッチパネル34内の経路を切り替え、APL2にアクセラレータ(acc2)を占有させる(
図10右の矢印k参照)。
【0056】
[動作イメージ]
図11A~
図11Dは、サーバ制御装置100のAPLにFPGA接続が必須の場合のオフロードを説明する図である。なお、
図11A~
図11Dは、従来の前記
図18A~
図18Dに対応している。
図11A~
図11Dに示す物理サーバ30-1~30-4は、APLにFPGA接続が必須であり、FPGA内に特定APLをオフロードし他APLは乗らない。
サーバ制御装置100は、APL2に割り当てるFPGAが相対的に多いので、4台の物理サーバ30-1~30-4のうち、
図11Dに示す物理サーバ30-4にのみAPL2を適用し、残り3台の物理サーバ30-1~30-3(
図11A~
図11C参照)にはAPL1を適用する。
【0057】
従来の上記した
図18A~
図18Dと比較すると、従来は、
図18Aおよび
図18Bに示すサーバ20-1~20-2は、APL1にFPGA35接続が必須であり、
図18Cおよび
図18Dに示すサーバ20-3~20-4は、APL2にFPGA21接続が必須であった。これに対して、サーバ制御装置100は、APLにFPGA接続が必須であるものの、相対的にリクエストの多いAPLに対してアクセラレータを多めに割り当てる。これにより、アクセラレータを有効に活用し、クラスタ全体のスループットや可用性向上を達成することができる。
【0058】
【0059】
サーバ制御装置100は、APLにFPGA接続が任意であるので、FPGA内に特定APLをオフロードした上で他APLを乗せることができる。
サーバ制御装置100は、APL2に割り当てるFPGAが相対的に多いので、4台の物理サーバ30-1~30-4のうち、
図11Dに示す物理サーバ30-4のFPGA35のみAPL2と接続し、残りの3台の物理サーバ30-1~30-3(
図12A~
図12C参照)のFPGA35はAPL1と接続する。このように、物理サーバ30-1~30-3のFPGA35内にAPL1をオフロードするので、物理サーバ30-1~30-4は、APL1およびAPL2が全てAPL限界には到達しない。これにより、APLにFPGA接続が任意の場合、その機能を有効に利用して、相対的にリクエストの多いAPLに対してアクセラレータを多めに割り当てることで、クラスタ全体のスループットを向上させることができる。
【0060】
[制御シーケンス]
図13および
図14は、サーバ30とサーバ制御装置100を備えるネットワークシステム1の制御シーケンス図である。
図13は、主としてサーバ制御装置100の各部の制御シーケンスを示し、
図14は、
図13に続くAPL制御部31の各部の制御シーケンスを示す。
図13に示すように、統合制御部110(
図2参照)は、最適化演算部130(
図2参照)に現構成演算を要求する(ステップS101)。
最適化演算部130は、全リクエストテーブル122(
図7参照)に全リクエスト数を要求する(ステップS102)。
全リクエストテーブル122は、最適化演算部130に全リクエスト数を応答する(ステップS103)。
最適化演算部130は、全構成テーブル121(
図6参照)に全構成を要求する(ステップS104)。
全構成テーブル121は、最適化演算部130に全構成を応答する(ステップS105)。
最適化演算部130は、設定情報テーブル113(
図5参照)に設定情報を要求する(ステップS106)。
設定情報テーブル113は、最適化演算部130に設定情報を応答する(ステップS107)。
【0061】
最適化演算部130は、統合制御部110に現構成演算を応答する(ステップS108)。
統合制御部110は、閾値テーブル111(
図3参照)に閾値を要求する(ステップS109)。
閾値テーブル111は、統合制御部110に閾値を応答する(ステップS110)。
統合制御部110は、最適化演算部130に最適化演算を要求する(ステップS111)。
最適化演算部130は、統合制御部110に最適化演算を応答する(ステップS112)。
【0062】
統合制御部110は、構成決定部140に構成決定(演算結果)を要求する(ステップS113)。
構成決定部140は、ポリシテーブル112(
図4参照)にポリシを要求する(ステップS114)。
ポリシテーブル112は、構成決定部140にポリシを応答する(ステップS115)。
構成決定部140は、構成命令部150に構成を命令(構成案送信)する(ステップS116)。
構成命令部150は、構成決定部140に構成を応答する(ステップS117)。
構成決定部140は、統合制御部110に構成を応答する(ステップS118)。
以上で、サーバ制御装置100の制御シーケンスが終了する。
【0063】
図14に示すように、サーバ制御装置100(
図2参照)の構成命令部150は、構成決定部140から構成命令を受信すると(ステップS116)、APL制御部31(
図2参照)の接続切替部314に接続切替を要求する(ステップS201)。
接続切替部314は、構成命令部150に接続切替を応答する(ステップS202)。
構成命令部150は、アクセラレータ生成削除部315にアクセラレータ生成削除を要求する(ステップS203)。
アクセラレータ生成削除部315は、構成更新部311に構成更新を要求する(ステップS204)。
構成更新部311は、現構成テーブル316に構成更新を要求する(ステップS205)。
現構成テーブル316は、構成更新部311に構成更新を応答する(ステップS206)。
構成更新部311は、アクセラレータ生成削除部315に構成更新を応答する(ステップS207)。
アクセラレータ生成削除部315は、構成命令部150にアクセラレータ生成削除を応答する(ステップS208)。
【0064】
構成命令部150は、APL生成削除部313にAPL生成削除を要求する(ステップS209)。
APL生成削除部313は、構成更新部311に構成更新を要求する(ステップS210)。
構成更新部311は、現構成テーブル316に構成更新を要求する(ステップS211)。
現構成テーブル316は、構成更新部311に構成更新を応答する(ステップS212)。
構成更新部311は、APL生成削除部313に構成更新を応答する(ステップS213)。
APL生成削除部313は、構成命令部150にAPL生成削除を応答する(ステップS214)。
【0065】
構成命令部150は、接続切替部314に接続切替を要求する(ステップS215)。
接続切替部314は、構成命令部150に接続切替を応答する(ステップS216)。
構成命令部150は、SW40(
図2参照)のSW制御部41に接続切替を要求する(ステップS217)。
SW制御部41は、構成命令部150に接続切替を応答する(ステップS217)。
構成命令部150は、構成決定部140(
図13参照)に構成を応答する(ステップS117)。
【0066】
[フローチャート]
図15は、サーバ制御装置100のサーバ制御方法を示すフローチャートである。
ステップS11で統合制御部110(
図2参照)は、周期的あるいはオペレータの指示により現構成演算要求を各部に発出する。
ステップS12で最適化演算部130(
図2参照)は、全リクエストテーブル122から全リクエストを取得し、全構成テーブル121から全構成を取得し、設定情報テーブル113から設定情報をそれぞれ取得する。
ステップS13で最適化演算部130は、現在のアクセラレータの割り当てに関する性能・リクエスト比を計算する(「現構成演算処理」)。
【0067】
APLiの性能・リクエスト比について述べる。
最適化演算部130は、δ関数で表される式(2)に従って、現在のアクセラレータの割り当てに関する性能・リクエスト比を計算する。
【0068】
【0069】
全てのサーバ上にAPLiがFPGAを使用するか使用しないかのいずれかの状態で配置されている場合、上記式(2)は、式(3)に簡略化される。
【0070】
【0071】
サーバ上のFPGA容量条件およびサーバ上のソフト容量条件について述べる。
サーバj上のFPGA容量条件は、式(4)で示される。式(4)は、サーバj上のFPGA容量(Sj)をオーバーしない条件を表わしている。
【0072】
また、サーバj上のソフト容量条件は、式(5)で示される。式(5)は、サーバj上のソフト容量(sj)をオーバーしない条件を表わしている。
【0073】
【0074】
上記サーバj上のFPGA容量条件(式(4)参照)およびサーバj上のソフト容量条件(式(5)参照)は、上述したAPLiの性能・リクエスト比、および後記最適化条件より優先される条件である。
【0075】
図15のフローに戻って、ステップS14で統合制御部110は、閾値テーブル111から閾値を取得する。
ステップS15で統合制御部110は、上記ステップS13の演算結果が閾値テーブル111の閾値以上の乖離があるか(例えば、演算結果が閾値以上か)否かを判別する。
上記演算結果が閾値テーブル111の閾値以上の乖離がある場合(ステップS15:Yes)、ステップS16に進み、上記演算結果が閾値テーブル111の閾値以上の乖離がない場合(ステップS15:No)、ステップS23に進む。
【0076】
ステップS16で最適化演算部130は、自身の処理能力あるいは外部計算機71(
図2参照)の処理能力を用いて、アクセラレータの割り当てに関する最適化演算を実行する(「最適化演算処理」)。
【0077】
アクセラレータの割り当てに関する最適化条件について述べる。
アクセラレータの割り当てに関する最適化条件は、式(6)で示される。式(6)は、APLiの性能・リクエスト比の分散を最小化させる条件を表わしている。
【0078】
【0079】
また、外部DB72(
図2参照)に演算結果がある場合、最適化演算部130は、外部DB72の演算結果を参照してもよい。
【0080】
ステップS17で構成決定部140(
図2参照)は、ポリシテーブル112からポリシを取得する。
ステップS18で構成決定部140は、統合制御部110から受信した演算結果とポリシを用いて、次に取るべき構成案を決定する(「構成案作成処理」)。
【0081】
以下、
図15の破線で囲んだ部分は、物理サーバ30(
図2参照)の各APL制御部31ごとに実行されるステップである。
ステップS19で物理サーバ30の接続切替部314(
図2参照)は、サーバ制御装置100の構成命令部150からの要求に基づき、アクセラレータとAPL間の接続を解除する。
ステップS20でAPL制御部31のアクセラレータ生成削除部315(
図2参照)は、サーバ制御装置100の構成命令部150からの要求に基づき、アクセラレータの中身を書き換える。
【0082】
ステップS21でAPL制御部31のAPL生成削除部313(
図2参照)は、サーバ制御装置100の構成命令部150からの要求に基づき、APLの入れ替えを行う。その際、アクセラレータから分離され、かつ物理サーバ30に残るAPLでは、対応する高速化ソフト(
図10のacc1,acc2参照)の作成を行う。すでに物理サーバ30上に存在し新規にアクセラレータと接続するAPLでは、対応する高速化ソフトの削除を行う。
ステップS22でAPL制御部31の接続切替部314(
図2参照)は、サーバ制御装置100の構成命令部150からの要求に基づき、アクセラレータとAPL間を新規に接続する。
ステップS23でSW40のSW制御部41(
図1参照)は、サーバ制御装置100の構成命令部150からの要求に基づき、SW40の振り分け先を更新して本フローを終了する。
【0083】
[ハードウェア構成]
本実施形態に係るサーバ制御装置100は、例えば
図16に示すような構成のコンピュータ900によって実現される。以下、サーバ制御装置100を例に挙げて説明する。
図16は、サーバ制御装置100の機能を実現するコンピュータ900の一例を示すハードウェア構成図である。
コンピュータ900は、CPU910、RAM920、ROM930、HDD940、通信インターフェイス(I/F:Interface)950、入出力インターフェイス(I/F)960、およびメディアインターフェイス(I/F)970を有する。
【0084】
CPU910は、ROM930またはHDD940に格納されたプログラムに基づいて動作し、各部の制御を行う。ROM930は、コンピュータ900の起動時にCPU910によって実行されるブートプログラムや、コンピュータ900のハードウェアに依存するプログラム等を格納する。
【0085】
HDD940は、CPU910によって実行されるプログラム、および、かかるプログラムによって使用されるデータ等を格納する。HDD940は、例えば閾値テーブル111、ポリシテーブル112、および設定情報テーブル113(
図2参照)を格納するものであってもよい。通信インターフェイス950は、通信網80を介して他の機器からデータを受信してCPU910へ送り、CPU910が生成したデータを通信網80を介して他の機器へ送信する。
【0086】
CPU910は、入出力インターフェイス960を介して、ディスプレイやプリンタ等の出力装置、および、キーボードやマウス等の入力装置を制御する。CPU910は、入出力インターフェイス960を介して、入力装置からデータを取得する。また、CPU910は、生成したデータを入出力インターフェイス960を介して出力装置へ出力する。
【0087】
メディアインターフェイス970は、記録媒体980に格納されたプログラムまたはデータを読み取り、RAM920を介してCPU910に提供する。CPU910は、かかるプログラムを、メディアインターフェイス970を介して記録媒体980からRAM920上にロードし、ロードしたプログラムを実行する。記録媒体980は、例えばDVD(Digital Versatile Disc)、PD(Phasechangerewritable Disk)等の光学記録媒体、MO(Magneto Optical disk)等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等である。
【0088】
例えば、コンピュータ900が本実施形態に係るサーバ制御装置100として機能する場合、コンピュータ900のCPU910は、RAM920上にロードされたプログラムを実行することにより、サーバ制御装置100の各部の機能を実現する。また、HDD940には、サーバ制御装置100の各部内のデータが格納される。コンピュータ900のCPU910は、これらのプログラムを記録媒体980から読み取って実行するが、他の例として、他の装置から通信網80を介してこれらのプログラムを取得してもよい。
【0089】
[効果]
以上説明したように、サーバ制御装置100は、アプリケーションの特定処理をアクセラレータにオフロードするサーバ内のアプリケーションごとのリクエスト、およびサーバ30のアクセラレータとアプリケーションの構成を取得するリクエスト・構成収集部120と、取得した物理サーバ30のリクエストおよび構成の情報に基づいて、リクエストに対する処理性能の比を求め、比のアプリケーション間のばらつきが所定の閾値以下になるようにアクセラレータの割り当てを最適化する最適化演算部130と、最適化演算部130による演算結果と所定のポリシに基づいて、物理サーバ30が取るべき構成案を決定し、当該構成案を当該物理サーバ30に命令する構成決定部140と、を備える。
【0090】
このようにすることにより、アクセラレータを適用するサーバのスループットや可用性を向上させることができる。
【0091】
サーバ制御装置100は、比の分散、比の最小値、比の最大値のうち少なくともいずれかを比のパラメータとして有し、パラメータを適用するための閾値を保持する閾値テーブル111を備え、最適化演算部130は、パラメータの閾値をもとに、最適化演算を実行する。
【0092】
これにより、パラメータを組み合わせて用いることで、クラスタの状況に合わせてより適した最適化演算を選択実行することができる。
【0093】
サーバ制御装置100は、最適化演算部130が、比を上記式(2)に従って演算する。
【0094】
これにより、APLごとのリクエストに対する性能比を計算して、比のAPL間のばらつきが小さくなるようなアクセラレータ割り当て最適解を計算することができる。
【0095】
サーバ制御装置100は、最適化演算部130が、比を上記式(3)に従って演算する。
【0096】
これにより、全てのサーバ上にAPLiがアクセラレータを使用するか使用しないかのいずれかの状態で配置される場合に、より容易に、比のAPL間のばらつきが小さくなるようなアクセラレータ割り当て最適解を計算することができる。
【0097】
サーバ制御装置100は、最適化演算部130が、上記式(4),式(5)で示される容量条件の範囲で、アクセラレータの割り当てを最適化する。
【0098】
これにより、サーバ上のアクセラレータ容量またはソフト容量を超えることなく、比のAPL間のばらつきが小さくなるようなアクセラレータ割り当て最適解を計算することができる。
【0099】
サーバ制御装置100は、最適化演算部130が、比の分散を最小化させる最適化演算を行う。
【0100】
これにより、比の分散を最小化させる最適化演算を行うことで、比のAPL間のばらつきが少なくなるようアクセラレータの割り付けを最適化することができる。
【0101】
なお、本実施形態のサーバ制御装置100は、より詳細には、アプリケーションの特定処理をアクセラレータにオフロードする物理サーバ30内のアプリケーションごとのリクエスト、およびサーバのアクセラレータとアプリケーションの構成を取得するリクエスト・構成収集部120と、取得した物理サーバ30のリクエストおよび構成の情報に基づいて、リクエストに対する処理性能の性能・リクエスト比(P/R)を求め、この性能・リクエスト比(P/R)のアプリケーション間のばらつきが所定の閾値以下になるようにアクセラレータの割り当てを最適化する最適化演算部130と、受信した演算結果とポリシを用いて、物理サーバ30が取るべき構成案を決定する構成決定部140と、構成決定部140が決定した構成案を該当物理サーバ30に命令する構成命令部150と、を備える。
【0102】
このように、APLごとのリクエストに対する性能比を計算し、当該性能・リクエスト比のAPL間のばらつきが少なくなるようにアクセラレータの割り付けを最適化する。これにより、相対的にリクエストの多いAPLに対しアクセラレータを多く割り当てるようになるため、アクセラレータを有効活用し、クラスタ(物理サーバ)全体のスループットや可用性を向上させることができる。
【0103】
[その他]
上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上述文書中や図面中に示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【0104】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部または全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行するためのソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、IC(Integrated Circuit)カード、SD(Secure Digital)カード、光ディスク等の記録媒体に保持することができる。また、本明細書において、時系列的な処理を記述する処理ステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理(例えば、並列処理あるいはオブジェクトによる処理)をも含むものである。
【符号の説明】
【0105】
1 ネットワークシステム
30 物理サーバ
31 APL制御部
32,33 APL
34 仮想パッチパネル
35 アクセラレータ
40 スイッチ(SW)
41 SW制御部
50 イントラネット
100 サーバ制御装置
110 統合制御部
111 閾値テーブル(閾値記憶部)
112 ポリシテーブル
113 設定情報テーブル
121 全構成テーブル
122 全リクエストテーブル
120 リクエスト・構成収集部(取得部)
130 最適化演算部
140 構成決定部(決定部)
150 構成命令部
311 構成更新部
312 リクエスト更新部
313 APL生成削除部
314 接続切替部
315 アクセラレータ生成削除部
316 現構成テーブル
317 現リクエストテーブル