(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6408079
(24)【登録日】2018年9月28日
(45)【発行日】2018年10月17日
(54)【発明の名称】中央処理装置の割り当て方法およびそれを用いたサーバ
(51)【国際特許分類】
G06F 9/50 20060101AFI20181004BHJP
【FI】
G06F9/50 120A
【請求項の数】11
【全頁数】17
(21)【出願番号】特願2017-126171(P2017-126171)
(22)【出願日】2017年6月28日
(65)【公開番号】特開2018-106660(P2018-106660A)
(43)【公開日】2018年7月5日
【審査請求日】2017年6月28日
(31)【優先権主張番号】201611200418.2
(32)【優先日】2016年12月22日
(33)【優先権主張国】CN
(73)【特許権者】
【識別番号】390023582
【氏名又は名称】財團法人工業技術研究院
【氏名又は名称原語表記】INDUSTRIAL TECHNOLOGY RESEARCH INSTITUTE
(74)【代理人】
【識別番号】110000408
【氏名又は名称】特許業務法人高橋・林アンドパートナーズ
(72)【発明者】
【氏名】王 ▲翌▼ ▲乗▼
【審査官】
漆原 孝治
(56)【参考文献】
【文献】
特開2009−277022(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/50
(57)【特許請求の範囲】
【請求項1】
複数の中央処理装置を備える処理システムに適応される割り当て方法であって、
サーバの第1の効率をテストすること、および第1の種類のタスクを実行するように構成された少なくとも一つの第1の中央処理装置の第1の数と、第2の種類のタスクを実行するように構成された少なくとも一つの第2の中央処理装置の第2の数と、前記第1の効率とを記録することと、
前記少なくとも一つの第1の中央処理装置がビジー状態になっているか否かを判断することと、
前記少なくとも一つの第1の中央処理装置が前記ビジー状態になっている場合に、前記少なくとも一つの第1の中央処理装置の前記第1の数を増加させ、前記サーバの前記第1の効率をテストすることに戻ることと、
前記少なくとも一つの第1の中央処理装置がビジー状態ではない場合に、前記第1の種類のタスクによって占有されている帯域幅が最大帯域幅に達したか否かを判断することと、
前記第1の種類のタスクによって占有されている前記帯域幅が前記最大帯域幅に達していない場合に、前記少なくとも一つの第2の中央処理装置の前記第2の数を増加させ、前記サーバの前記第1の効率をテストすることに戻ることと、
前記第1の種類のタスクが前記最大帯域幅に達する場合に、前記割り当て方法を終了することと、
前記サーバの第1の作業効率に関する表を取得し、前記第1の作業効率に関する表に従って、前記少なくとも一つの第1の中央処理装置および前記少なくとも一つの第2の中央処理装置に対する割り当てを決定することと、
を含み、
前記第1の作業効率に関する表は、少なくとも前記第1の効率、前記第1の数および前記第2の数を含み、
前記少なくとも一つの第1の中央処理装置の前記第1の数と、前記少なくとも一つの第2の中央処理装置の前記第2の数がともに初期設定で1である、割り当て方法。
【請求項2】
前記少なくとも一つの第1の中央処理装置がビジー状態になっているか否かを判断することは、
前記少なくとも一つの第1の中央処理装置の占有リソースの量が閾値以上であるか否かを判断することを含み、
前記第1の中央処理装置の占有リソースの量が閾値以上である場合に、前記少なくとも一つの第1の中央処理装置がビジー状態になっていると判断し、および前記少なくとも一つの第1の中央処理装置の占有リソースの量が閾値よりも小さい場合には、前記少なくとも一つの第1の中央処理装置はビジー状態になっていないと判断する、請求項1に記載の割り当て方法。
【請求項3】
前記サーバの第2の効率をテストすることおよび第3の種類のタスクを実行するように構成された少なくとも一つの第3の中央処理装置の第3の数と、第4の種類のタスクを実行するように構成された少なくとも一つの第4の中央処理装置の第4の数と、前記第2の効率とを記録することと、
前記少なくとも一つの第3の中央処理装置の前記第3の数を1だけ減じることと、
前記少なくとも一つの第3の中央処理装置の前記第3の数がゼロに等しくない場合に、前記少なくとも一つの第3の中央処理装置の前記第3の数が、前記少なくとも一つの第4の中央処理装置の前記第4の数よりも大きくないか否かを判断すること、および前記第3の数が前記第4の数よりも大きくない場合に、前記第4の数を増加させること、および前記複数の中央処理装置の総数から、前記第1の数と、前記第2の数と、前記第4の数とを減じることによって、前記第3の数をリセットすることと、
をさらに含み、前記少なくとも一つの第4の中央処理装置の第4の数は、初期設定で1であり、また、前記少なくとも一つの第3の中央処理装置の前記第3の数は、前記複数の中央処理装置の総数から、前記第1の数と、前記第2の数と、前記第4の数とを減じることによって初期化される、請求項1に記載の割り当て方法。
【請求項4】
前記少なくとも一つの第3の中央処理装置の前記第3の数がゼロに等しい場合の前記サーバの第2の作業効率に関する表を得ることと、前記第2の作業効率に関する表に従って、前記少なくとも一つの第3の中央処理装置および前記少なくとも一つの第4の中央処理装置の割り当てを決定することと、をさらに含み、前記第2の作業効率に関する表は、少なくとも前記第2の効率と、前記第3の数と、前記第4の数とから成る、請求項3に記載の割り当て方法。
【請求項5】
少なくとも一つのネットワークパケットを受信するように構成された少なくとも一つのハードウェアキューと、
前記少なくとも一つのネットワークパケットを再割り当てするように構成された少なくとも一つのソフトウェアキューと、
少なくとも一つのプロセッサであって、各プロセッサが、少なくとも一つの第1の中央処理装置および少なくとも一つの第2の中央処理装置を備え、および前記少なくとも一つのネットワークパケットを処理するように構成されている、少なくとも一つのプロセッサと、
少なくとも一つの実行命令を格納するように構成された少なくとも一つの記憶装置であって、前記少なくとも一つのプロセッサは、その実行命令により、
サーバの第1の効率をテストするために、および第1の種類のタスクを実行するように構成された前記少なくとも一つの第1の中央処理装置の第1の数と、第2の種類のタスクを実行するように構成された前記少なくとも一つの第2の中央処理装置の第2の数と、前記第1の効率とを記録するために、
前記少なくとも一つの第1の中央処理装置がビジー状態になっているか否かを判断するために、
前記少なくとも一つの第1の中央処理装置が前記ビジー状態になっている場合に、前記少なくとも一つの第1の中央処理装置の前記第1の数を増加させ、前記サーバの前記第1の効率をテストすることに戻るために、
前記少なくとも一つの第1の中央処理装置がビジー状態ではない場合に、前記第1の種類のタスクによって占有されている帯域幅が最大帯域幅に達したか否かを判断するために、
前記第1の種類のタスクによって占有されている前記帯域幅が前記最大帯域幅に達していない場合に、前記少なくとも一つの第2の中央処理装置の前記第2の数を増加させ、前記サーバの前記第1の効率をテストすることに戻るために、
前記第1の種類のタスクが前記最大帯域幅に達する場合に、割り当て方法を終了するために、および、
前記サーバの第1の作業効率に関する表を取得し、前記第1の作業効率に関する表に従って、前記少なくとも一つの第1の中央処理装置および前記少なくとも一つの第2の中央処理装置に対する割り当てを決定するためにプログラムされる、少なくとも一つの記憶装置と、
を備えるサーバであって、
前記第1の作業効率に関する表は、少なくとも前記第1の効率、前記第1の数および前記第2の数を含み、
前記少なくとも一つの第1の中央処理装置の前記第1の数と、前記少なくとも一つの第2の中央処理装置の前記第2の数がともに初期設定で1である、サーバ。
【請求項6】
前記少なくとも一つのプロセッサは、前記少なくとも一つの第1の中央処理装置の占有リソースの量が閾値以上である場合に、前記少なくとも一つの第1の中央処理装置がビジー状態になっていると判断し、また、前記少なくとも一つのプロセッサは、前記少なくとも一つの第1の中央処理装置の占有リソースの量が閾値よりも少ない場合に、前記少なくとも一つの第1の中央処理装置がビジー状態になっていないと判断する、請求項5に記載のサーバ。
【請求項7】
前記少なくとも一つのプロセッサは、前記少なくとも一つのネットワークパケットを処理するように構成された少なくとも一つの第3の中央処理装置および少なくとも一つの第4の中央処理装置をさらに備え、前記少なくとも一つのプロセッサはさらに、
前記サーバの第2の効率をテストするために、および第3の種類のタスクを実行するように構成された前記少なくとも一つの第3の中央処理装置の第3の数と、第4の種類のタスクを実行するように構成された前記少なくとも一つの第4の中央処理装置の第4の数と、前記第2の効率とを記録するために、
前記少なくとも一つの第3の中央処理装置の前記第3の数を1だけ減じるために、および
前記少なくとも一つの第3の中央処理装置の前記第3の数がゼロに等しくない場合に、前記少なくとも一つの第3の中央処理装置の前記第3の数が、前記少なくとも一つの第4の中央処理装置の前記第4の数よりも大きくないか否かを判断するために、および前記第3の数が前記第4の数よりも大きくない場合に、前記第4の数を増加させ、および処理システム内の複数の中央処理装置の総数から、前記第1の数と、前記第2の数と、前記第4の数とを減じることによって、前記第3の数をリセットするために用いられ、
前記少なくとも一つの第4の中央処理装置の前記第4の数は、初期設定で1であり、また、前記少なくとも一つの第3の中央処理装置の前記第3の数は、前記複数の中央処理装置の総数から、前記第1の数と、前記第2の数と、前記第4の数とを減じることによって初期化される、請求項5に記載のサーバ。
【請求項8】
前記少なくとも一つのプロセッサは、前記少なくとも一つの第3の中央処理装置の前記第3の数がゼロに等しい場合の前記サーバの第2の作業効率に関する表を取得し、前記第2の作業効率に関する表に従って、前記少なくとも一つの第3の中央処理装置および前記少なくとも一つの第4の中央処理装置の割り当てを決定し、前記第2の作業効率に関する表は、少なくとも前記第2の効率と、前記第3の数と、前記第4の数とから成る、請求項7に記載のサーバ。
【請求項9】
複数の中央処理装置を備える処理システムに適応される割り当て方法であって、
サーバの第1の効率をテストすること、および第1の種類のタスクを実行するように構成された少なくとも一つの第1の中央処理装置の第1の数と、第2の種類のタスクを実行するように構成された少なくとも一つの第2の中央処理装置の第2の数と、前記第1の効率とを記録することと、
前記第1の中央処理装置の前記第1の数を1だけ減らすことと、
前記少なくとも一つの第1の中央処理装置の前記第1の数がゼロに等しくない場合に、前記第1の中央処理装置の前記第1の数が、前記少なくとも一つの第2の中央処理装置の前記第2の数よりも大きくないか否かを判断すること、前記第2の数を増加させること、および前記第1の数が前記第2の数よりも大きくない場合には、前記複数の中央処理装置の総数から前記第2の数を減じることにより、前記第1の数をリセットすることと、
前記サーバの第1の作業効率に関する表を取得し、前記第1の作業効率に関する表に従って、前記少なくとも一つの第1の中央処理装置および前記少なくとも一つの第2の中央処理装置に対する割り当てを決定することと、
を含み、
前記第1の作業効率に関する表は、少なくとも前記第1の効率、前記第1の数および前記第2の数を含み、
前記少なくとも一つの第2の中央処理装置の前記第2の数は、初期設定で1であり、前記少なくとも一つの第1の中央処理装置の前記第1の数は、前記複数の中央処理装置の前記総数から前記第2の数を減じることによって初期化される、割り当て方法。
【請求項10】
少なくとも一つのネットワークパケットを受信するように構成された少なくとも一つのハードウェアキューと、
前記少なくとも一つのネットワークパケットを再割り当てするように構成された少なくとも一つのソフトウェアキューと、
少なくとも一つの第1の中央処理装置および少なくとも一つの第2の中央処理装置を備え、および前記少なくとも一つのネットワークパケットを処理するように構成された少なくとも一つのプロセッサと、
少なくとも一つの実行命令を格納するように構成された少なくとも一つの記憶装置であって、前記少なくとも一つのプロセッサは、その実行命令により、
サーバの第1の効率をテストするために、および第1の種類のタスクを実行するように構成された前記少なくとも一つの第1の中央処理装置の第1の数と、第2の種類のタスクを実行するように構成された前記少なくとも一つの第2の中央処理装置の第2の数と、前記第1の効率とを記録するために、
前記少なくとも一つの第1の中央処理装置の前記第1の数を1だけ減らすために、
前記少なくとも一つの第1の中央処理装置の前記第1の数がゼロに等しくない場合に、前記少なくとも一つの第1の中央処理装置の前記第1の数が、前記少なくとも一つの第2の中央処理装置の前記第2の数よりも大きくないか否かを判断するために、前記第2の数を増加させるために、および前記第1の数が前記第2の数よりも大きくない場合には、処理システム内の複数の中央処理装置の総数から前記第2の数を減じることにより、前記第1の数をリセットするために、および、
前記サーバの第1の作業効率に関する表を取得し、前記第1の作業効率に関する表に従って、前記少なくとも一つの第1の中央処理装置および前記少なくとも一つの第2の中央処理装置に対する割り当てを決定するためにプログラムされる、少なくとも一つの記憶装置と、
を備えるサーバであって、
前記第1の作業効率に関する表は、少なくとも前記第1の効率、前記第1の数および前記第2の数を含み、
前記少なくとも一つの第2の中央処理装置の前記第2の数は、初期設定で1であり、前記少なくとも一つの第1の中央処理装置の前記第1の数は、前記複数の中央処理装置の前記総数から前記第2の数を減じることによって初期化される、サーバ。
【請求項11】
前記少なくとも一つのプロセッサは、前記少なくとも一つの第1の中央処理装置の前記第1の数がゼロに等しい場合の前記サーバの前記第1の作業効率に関する表を取得する、請求項10に記載のサーバ。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、中央処理装置の割り当て方法およびそれを用いたサーバに関する。
【背景技術】
【0002】
人々は、長い間、ストレージシステムの効率を高めるために、ストレージシステムのアクセス速度の向上を追い続けている。しかし、ストレージシステムの効率は、従来のハードディスクドライブ(HDD)のアクセス速度の限界のため、大幅に向上させることができない可能性がある。そのため、多くの人は、従来のハードディスクドライブ(HDD)の代わりにソリッドステートディスク(SSD)を用いることを提案している。オールフラッシュアレイ(AFA)から成る構造の下では、ネットワークカードを備えたクライアントとサーバとの間の高アクセス効率は、高速および低遅延伝送という特徴を有するInfiniBand(登録商標)規格を用いることによって実現することができる。しかし、InfiniBand規格は、費用がかかり、イーサネット(登録商標)と互換性がない。したがって、人々は、イーサネットの環境で、高アクセス効率を実現できることを期待している。しかし、ネットワークパケットを受信する低位層のネットワークカードの遅延および上位層のネットワークの遅延のため、クライアントとサーバの間で高いアクセス効率を実現できない可能性がある。
【発明の概要】
【発明が解決しようとする課題】
【0003】
本開示においては、中央処理装置の割り当て方法およびそれを用いたサーバが開示されている。その割り当て方法およびそのサーバにおいて、その中央処理装置は、異なる種類の処理タスクの負荷に従って自動的に割り当てられ、その結果、サーバの全体効率が向上される。
【0004】
本開示の例示的な実施形態に従って、複数の中央処理装置を備えている処理システムに適応される割り当て方法が開示されている。その方法は、サーバの第1の効率をテストするステップおよび第1の種類のタスクを実行するように構成された少なくとも一つの第1の中央処理装置の第1の数と、第2の種類のタスクを実行するように構成された少なくとも一つの第2の中央処理装置の第2の数と、第1の効率とを記録するステップと、少なくとも一つの第1の中央処理装置がビジー状態になっているか否かを判断するステップと、少なくとも一つの第1の中央処理装置がビジー状態になっている場合に、少なくとも一つの第1の中央処理装置の前記第1の数を増加させるステップと、少なくとも一つの第1の中央処理装置がビジー状態ではない場合に、第1の種類のタスクによって占有されている帯域幅が最大帯域幅に達したか否かを判断するステップと、第1の種類のタスクによって占有されている前記帯域幅が最大帯域幅に達していない場合に、少なくとも一つの第2の中央処理装置の第2の数を増加させるステップと、サーバの第1の効率をテストするステップ、少なくとも一つの第1の中央処理装置がビジー状態になっているか否かを判断するステップおよび第1の種類のタスクによって占有されている帯域幅が最大帯域幅に達しているか否かを判断するステップを、第1の種類のタスクによって占有されている帯域幅が最大帯域幅に達するまで継続的に実行するステップとを含む。少なくとも一つの第1の中央処理装置の第1の数と、少なくとも一つの第2の中央処理装置の第2の数はともに初期設定で1である。
【0005】
本開示の例示的な実施形態によるサーバが開示されている。そのサーバは、少なくとも一つのハードウェアキューと、少なくとも一つのソフトウェアキューと、少なくとも一つのプロセッサと、少なくとも一つの記憶装置とを含む。少なくとも一つのハードウェアキューは、少なくとも一つのネットワークパケットを受信するように構成されている。少なくとも一つのソフトウェアキューは、少なくとも一つのネットワークパケットを再割り当てするように構成されている。少なくとも一つのプロセッサは、第1の中央処理装置および第2の中央処理装置を含み、および少なくとも一つのネットワークパケットを処理するように構成されている。少なくとも一つの記憶装置は、少なくとも一つの実行命令を格納するように構成されている。少なくとも一つの実行命令により、少なくとも一つのプロセッサは、サーバの第1の効率をテストするようにおよび第1の種類のタスクを実行するように構成された少なくとも一つの第1の中央処理装置の第1の数と、第2の種類のタスクを実行するように構成された少なくとも一つの第2の中央処理装置の第2の数と、第1の効率とを記録するようにプログラムされ、少なくとも一つの第1の中央処理装置がビジー状態になっているか否かを判断するようにプログラムされ、少なくとも一つの第1の中央処理装置がビジー状態になっている場合に、少なくとも一つの第1の中央処理装置の第1の数を増加させるようにプログラムされ、少なくとも一つの第1の中央処理装置がビジー状態でない場合には、第1の種類のタスクによって占有されている帯域幅が最大帯域幅に達したか否かを判断するようにプログラムされ、第1の種類のタスクによって占有されている帯域幅が最大帯域幅に達していない場合には、少なくとも一つの第2の中央処理装置の第2の数を増加させるようにプログラムされ、サーバの第1の効率をテストするステップと、記少なくとも一つの第1の中央処理装置がビジー状態になっているか否かを判断するステップと、第1の種類のタスクによって占有されている帯域幅が最大帯域幅に達しているか否かを判断するステップとを、第1の種類のタスクによって占有されている帯域幅が最大帯域幅に達するまで継続的に実行するようにプログラムされている。少なくとも一つの第1の中央処理装置の第1の数と、少なくとも一つの第2の中央処理装置の第2の数はともに初期設定で1である。
【0006】
本開示の一つの実施形態による、複数の中央処理装置を備える処理システムに適応される割り当て方法が開示されている。その方法は、サーバの第1の効率をテストするステップおよび第1の種類のタスクを実行するように構成された少なくとも一つの第1の中央処理装置の第1の数と、第2の種類のタスクを実行するように構成された少なくとも一つの第2の中央処理装置の第2の数と、前記第1の効率とを記録するステップと、少なくとも一つの第1の中央処理装置の第1の数を1だけ減らすステップと、少なくとも一つの第1の中央処理装置の第1の数がゼロに等しくない場合に、少なくとも一つの第1の中央処理装置の第1の数が、少なくとも一つの第2の中央処理装置の第2の数よりも大きくないか否かを判断するステップと、第1の数が第2の数よりも大きくない場合に、第2の数を増加させるステップおよび複数の中央処理装置の総数から第2の数を減じることにより、第1の数をリセットするステップとを含む。少なくとも一つの第2の中央処理装置の第2の数は、初期設定で1であり、および少なくとも一つの第1の中央処理装置の第1の数は、複数の中央処理装置の総数から第2の数を減じることによって初期化される。
【0007】
本開示の一つの実施形態によるサーバが開示されている。そのサーバは、少なくとも一つのハードウェアキューと、少なくとも一つのソフトウェアキューと、少なくとも一つのプロセッサと、少なくとも一つの記憶装置とを含む。少なくとも一つのハードウェアキューは、少なくとも一つのネットワークパケットを受信するように構成されている。少なくとも一つのソフトウェアキューは、少なくとも一つのネットワークパケットを再割り当てするように構成されている。少なくとも一つのプロセッサは、第1の中央処理装置および第2の中央処理装置を含み、および少なくとも一つのネットワークパケットを処理するように構成されている。少なくとも一つの記憶装置は、少なくとも一つの実行命令を格納するように構成されている。少なくとも一つの実行命令により、少なくとも一つのプロセッサは、サーバの第1の効率をテストするようにおよび第1の種類のタスクを実行するように構成された少なくとも一つの第1の中央処理装置の第1の数と、第2の種類のタスクを実行するように構成された少なくとも一つの第2の中央処理装置の第2の数と、第1の効率とを記録するようにプログラムされ、少なくとも一つの第1の中央処理装置の第1の数を1だけ減らすようにプログラムされ、少なくとも一つの第1の中央処理装置の第1の数がゼロに等しくない場合に、少なくとも一つの第1の中央処理装置の第1の数が、少なくとも一つの第2の中央処理装置の第2の数よりも大きくないか否かを判断するようにプログラムされ、第1の数が第2の数よりも大きくない場合には、第2の数を増加させ、および複数の中央処理装置の総数から第2の数を減じることにより、第1の数をリセットするようにプログラムされている。少なくとも一つの第2の中央処理装置の第2の数は、初期設定で1であり、少なくとも一つの第1の中央処理装置の第1の数は、複数の中央処理装置の総数から第2の数を減じることによって初期化される。
【0008】
上記の説明に基づいて、本開示の割り当て方法およびサーバにおいては、第1の中央処理装置の数は、第1の中央処理装置の負荷を判断することによって選択的に増加され、また、第2の中央処理装置の数は、第1の種類のタスクの帯域幅を判断することによって、選択的に増加される。上述したステップは、繰り返し実行される。したがって、サーバの効率を向上させるための、中央処理装置の理想的な割り当てが行われる。
【図面の簡単な説明】
【0009】
本開示は、本明細書において以下に示す詳細な説明と、単に例示として示され、そのため本開示を制限するものではない添付図面とから、より十分に理解されることになるであろう。
【0010】
【
図1】本開示の一つの実施形態によるサーバの構造概念図である。
【
図2】本開示の一つの実施形態による中央処理装置の割り当て方法に関するフローチャートである。
【
図3】本開示の別の実施形態による中央処理装置の割り当て方法に関するフローチャートである。
【
図4】本開示の別の実施形態による中央処理装置の割り当て方法に関するフローチャートである。
【
図5】本開示の別の実施形態による中央処理装置の割り当て方法に関するフローチャートである。
【発明を実施するための形態】
【0011】
以下の詳細な説明においては、説明目的のため、開示した実施形態の完全な理解を与えるために、多くの具体的な詳細が記載されている。しかし、それらの具体的な詳細を要することなく、一つ以上の実施形態を実施できることは明らかであろう。他の例では、図を簡略化するために、周知の構造および装置が模式的に図示されている。
【0012】
本開示の一つの実施形態によるサーバの構造概念図である
図1を参照して下さい。
図1に図示されているように、サーバ1は、ネットワークインタフェースコントローラ(NIC)10およびコア12を含む。ネットワークインタフェースコントローラ10は、クライアント2によって送信されたネットワークパケットPKTを受信するように構成された複数のハードウェアキュー102〜106を有している。実際には、受信側スケーリング(Receive Side Scaling:RSS)が無効になっている場合、ネットワークインタフェースコントローラ10は、一つのハードウェアキューを有しているにすぎない。対照的に、受信側スケーリング(RSS)が可能になっている場合には、ネットワークインタフェースコントローラ10は、複数のハードウェアキュー(例えば、ハードウェアキュー102〜106)を有している。受信側スケーリング(RSS)は、ネットワークインタフェースコントローラ10が、インターネット処理負荷をマルチコアコンピュータ内の少なくとも一つのプロセッサのマルチコア処理ユニットに配分できるようにするのに用いられ、その結果、サーバは、高いネットワークフローを処理することが可能になる。複数のハードウェアキューは、それぞれ一つずつ複数の中央処理装置に対応している。
図1の実施形態に示すように、複数のハードウェアキュー102〜106は、それぞれ、プロセッサ14内の中央処理装置C1〜C3に対応しているため(図では、例示のためだけに図示されており、そのため本開示を制限するものではない)、ネットワークパケットPKTを処理のために、プロセッサ14内の複数の中央処理装置C1〜C3に配分することができる。この実施形態において言及している中央処理装置C1〜C3は、説明のために用いられているにすぎない。実際には、プロセッサ14は、中央処理装置C1〜C3以外にも、より多くの中央処理装置を含んでいる。この実施形態において、コア12内の複数のソフトウェアキュー122〜126は、同じ中央処理装置に対応している。そのため、ハードウェアキュー102〜106の負荷が不均衡である場合、複数のソフトウェアキュー122〜126は、中央処理装置C1〜C3の負荷が均衡するように、ネットワークパケットPKTを再割り当てするのに用いることができるであろう。
【0013】
一つの実施形態において、プロセッサ14内の複数の第1の中央処理装置(例えば、中央処理装置C1〜C3)は、第1の種類のタスクを実行し、その結果、ネットワークインタフェースコントローラ10は、クライアント2からネットワークパケットPKTを受信する。一つの実施形態において、記憶装置16(図では、単に説明のために、一つの記憶装置だけが図示され、そのため、本開示を制限するものではない)は、少なくとも一つの実行命令を格納する。プロセッサ14は、サーバ1の第1の効率をテストし、少なくとも一つの実行命令に従って、第1の種類のタスクを実行するように構成された第1の中央処理装置の第1の数を記録する。
図1および
図2を参照して下さい。
図2は、本開示の一つの実施形態による中央処理装置の割り当て方法に関するフローチャートである。
図2の実施形態において、プロセッサ14は、第1の中央処理装置の第1の数を1になるように初期化する。ステップS201において、プロセッサ14は、サーバ1の第1の効率をテストして記録する。第1の効率は、IOPS(Input/Output Operations per Second)の測定によって得られる。次のステップS203において、プロセッサ14は、第1の種類のタスクによって占有されている帯域幅が最大帯域幅に達しているか否かを判断する。第1の種類のタスクによって占有されている帯域幅が前記最大帯域幅に達していない場合には、ステップS205において、第1の中央処理装置の第1の数を増加させて、サーバ1の第1の効率を記録する。
【0014】
この実施形態において、ネットワークインタフェースコントローラ10が、クライアント2からネットワークパケットPKTを受信すると、第1の種類のタスクを実行するために、プロセッサ14によって、複数の中央処理装置の中の一つの第1の中央処理装置が割り当てられる。上述したプロセスは、ネットワークインタフェースコントローラ10のハードウェアインタラプトと呼ばれている。プロセッサ14は、テストすることにより、第1の種類のタスクによって占有されている帯域幅が、ネットワークインタフェースコントローラ10の最大帯域幅に達しているか否かを判断する。第1の種類のタスクによって占有されている帯域幅が、ネットワークインタフェースコントローラ10の最大帯域幅に達していない場合には、プロセッサ14は、第1の中央処理装置の第1の数を1から2にさらに増加させて、サーバ1の第1の効率を記録する。この実施形態において、プロセッサ14は、第1の種類のタスクによって占有されている帯域幅が、ネットワークインタフェースコントローラ10の最大帯域幅に達するまで、上述したステップを継続的に実行することにより、第1の中央処理装置の第1の数を徐々に増加させる。プロセッサ14によって記録された第1の中央処理装置の第1の数は、最大帯域幅に達した場合に、ネットワークインタフェースコントローラ10によって要求される第1の中央処理装置の最小数である。最大帯域幅に達した状態では、プロセッサ14は、他の第1の中央処理装置をネットワークインタフェースコントローラ10に割り当てる必要はない。その代わり、プロセッサ14は、残りの中央処理装置を、サーバ1の他の装置に割り当てるため、中央処理装置のリソースの無駄使いが避けられる。
【0015】
上述した実施形態では、第1の中央処理装置によって実行される第1の種類のタスクのみが考慮されている。別の実施形態ではさらに、プロセッサ14内の複数の第2の中央処理装置によって実行される第2の種類のタスクが考慮される。第2の種類のタスクは、iSCSI(internet small computer system interface)ターゲットがネットワークパケットPKTを受信して処理するように実行される。実際には、iSCSIは、サーバ1とクライアント2との間で情報がやりとりされるように、TCP/IPに基づいて、サーバ1をクライアント2に接続するように構成されている。iSCSIターゲットは、それぞれ、ネットワークパケットを処理するように構成された中央処理装置に割り当てられているネットワークスレッドおよびワーカースレッドを有している。
図1および
図3を参照して下さい。
図3は、本開示の一つの実施形態による中央処理装置の割り当て方法に関するフローチャートである。
図3の実施形態において、プロセッサ14は、第1の種類のタスクを実行するために、1になるように第1の中央処理装置の第1の数を初期化し、および第2の種類のタスクを実行するために、1になるように第2の中央処理装置の第2の数を初期化する。ステップS301において、プロセッサ14は、一つ以上の実行命令に従って、サーバ1の第1の効率をテストして、第1の種類のタスクを実行するように構成された第1の中央処理装置の第1の数と、第2の種類のタスクを実行するように構成された第2の中央処理装置の第2の数と、第1の効率とを記録する。次のステップS303では、プロセッサ14は、第1の中央処理装置がビジー状態になっているか否かを判断する。第1の中央処理装置がビジー状態になっている場合、プロセッサ14は、ステップS307において、第1の中央処理装置の第1の数を増加させる。第1の中央処理装置がビジー状態になっていない場合には、プロセッサ14は、ステップS305において、第1の種類のタスクによって占有されている帯域幅が最大帯域幅に達しているか否かを判断する。第1の種類のタスクによって占有されている帯域幅が最大帯域幅に達していない場合、ステップS309において、第2の中央処理装置の第2の数を増加させる。サーバ1の第1の効率をテストするステップを継続的に実行して、サーバ1の第1の中央処理装置がビジー状態になっているか否かを判断し、および、第1の種類のタスクによって占有されている帯域幅が最大帯域幅に達しているか否かを判断する。
【0016】
一つの実施形態において、ステップS303では、プロセッサ14は、第1の中央処理装置がビジー状態になっているか否かを判断し、以下のステップを含む。プロセッサ14は、第1の中央処理装置の占有リソースの量が閾値以上であるか否かを判断する。第1の中央処理装置の占有リソースの量が閾値以上である場合、プロセッサ14は、第1の中央処理装置がビジー状態になっていると判断する。第1の中央処理装置の占有リソースの量が閾値未満である場合には、プロセッサ14は、第1の中央処理装置がビジー状態になっていないと判断する。一つの実施形態において、占有リソースは、第1の中央処理装置の使用量とみなされる。その使用量が閾値よりも大きい(例えば、80%)場合、プロセッサ14は、第1の中央処理装置がビジー状態になっていると判断する。対照的に、使用量が閾値未満である場合、プロセッサ14は、第1の中央処理装置がビジー状態になっていないと判断する。別の実施形態では、占有リソースは、複数の第1の中央処理装置の平均使用量とみなされる。例えば、それぞれ、85%、90%および80%の使用量を有する3つの第1の中央処理装置がある。3つの第1の中央処理装置の平均使用量は、80%である閾値よりも大きい85%であることが分かっているため、プロセッサ14は、3つの第1の中央処理装置がビジー状態になっていると判断する。
【0017】
実施形態において、第1の種類のタスクによって占有されている帯域幅が最大帯域幅に達している場合、サーバ1の作業効率に関する表が得られる。作業効率に関する表は、少なくとも第1の効率と、第1の数と、第2の数とを含む。本開示の一つの実施形態による作業効率に関する表1を参照して下さい。表1に示されているように、プロセッサ14が、少なくとも一つの実行命令に従って、上述したステップを実行した後、プロセッサ14は、第1の種類のタスクによって占有されている帯域幅が最大帯域幅に達したときに、サーバの作業効率に関する表を得る。
【0019】
表1に示されているように、第1の種類のタスクを実行するように構成された第1の中央処理装置の第1の数および第2の種類のタスクを実行するように構成された第2の中央処理装置の第2の数に対する割り当てが変化した場合、得られる第1の効率が相対的に変化する。換言すると、中央処理装置の数が制限されている状態において、中央処理装置に対する理想的な割り当ては、表1において、上述した割り当て方法によって得ることができる。表1を実施例として採用すると、第1の中央処理装置の第1の数と、第2の中央処理装置の第2の数の合計が10である状況では、それぞれ、第1の中央処理装置の第1の数が4になるように設定し、および第2の中央処理装置の第2の数が6になるように設定することによって得られた第1の効率は、それぞれ、第1の中央処理装置の第1の数が3になるように設定し、および第2の中央処理装置の第2の数が7になるように設定することによって得られた第1の効率よりも良いであろう。表1からは、第2の中央処理装置の第2の数が11である状況では、第1の中央処理装置の第1の数を3になるように設定することによって得られる第1の効率は、第1の中央処理装置の第1の数が4になるように設定することによって得られる第1の効率よりも良くなることが分かる。表1からは、それぞれ、第1の中央処理装置の第1の数が3になるように設定し、および第2の中央処理装置の第2の数が6になるように設定することによって得られる第1の効率は、第1の中央処理装置の第1の数が4になるように設定し、および第2の中央処理装置の第2の数が7になるように設定することによって得られる第1の効率よりも良くなることが分かる。上述した実施形態からは、第1の中央処理装置の第1の数と、第2の中央処理装置の第2の数の合計が大きい状況での効率は、必ずしも、第1の中央処理装置の第1の数と、第2の中央処理装置の第2の数の合計が小さい状況での効率よりも良くないことが分かる。さらに、表1からは、第1の中央処理装置の第1の数および第2の中央処理装置の第2の数に対する異なる割り当て方法が、第1の中央処理装置の第1の数と、第2の中央処理装置の第2の数の合計が一貫している状況で、異なる効率を生じさせることも分かる。中央処理装置のリソースが限定されている状況では、最良の効率を得るための割り当て方法は、本開示の割り当て方法によって、中央処理装置に対する各割り当てに対応する効率を繰り返しテストして記録することによって、見いだすことができるであろう。
【0020】
図1および
図4を参照して下さい。
図4は、本開示の別の実施形態による中央処理装置の割り当て方法に関するフローチャートである。この実施形態において、プロセッサ14は、第3の中央処理装置および第4の中央処理装置をさらに含む。記憶装置16に格納されている少なくとも一つの実行命令に従って、プロセッサ14は、ステップS401において、サーバ1の第2の効率をテストして、第3の種類のタスクを実行するように構成された第3の中央処理装置の第3の数と、第4の種類のタスクを実行するように構成された第4の中央処理装置の第4の数と、第2の効率とを記録する。実施形態において、第3の種類のタスクおよび第4の種類のタスクは、SOFA(Software Orchestrated Flash Array)でのフロントエンドにおける入力/出力要求に関する処理手順およびバックエンドにおける読出し/書込みに関する処理手順にそれぞれ対応している。この実施形態において、第1の中央処理装置の第1の数と、第2の中央処理装置の第2の数と、第3の中央処理装置の第3の数と、第4の中央処理装置の第4の数の合計は、サーバ1内の中央処理装置の総数である。一つの実施例において、サーバ1内の中央処理装置の総数が24であり、および割り当てられた第1の中央処理装置の第1の数と、割り当てられた第2の中央処理装置の第2の数の合計が13であると仮定する。この実施例では、プロセッサ14によって設定される、第3の中央処理装置の第3の数と、第4の中央処理装置の第4の数の合計は11である。
【0021】
別の実施形態において、第1の中央処理装置の第1の数と、第2の中央処理装置の第2の数と、第3の中央処理装置の第3の数と、第4の中央処理装置の第4の数の合計は、サーバ1内の中央処理装置の総数よりも低い。例えば、サーバ1内の中央処理装置の総数が24であり、割り当てられた第1の中央処理装置の第1の数と、割り当てられた第2の中央処理装置の第2の数の合計が11であり、割り当てられた第3の中央処理装置の第3の数と、割り当てられた第4の中央処理装置の第4の数の合計が10であると仮定する。換言すると、この実施形態では、残りの3つの中央処理装置を、他のタスクまたは残りのアイドルを処理するのに用いることができるであろう。
【0022】
ステップS402では、第3の中央処理装置の第3の数が1だけ減じられ、次のステップS402’では、プロセッサ14は、第3の中央処理装置の第3の数がゼロに等しいか否かを判断する。第3の中央処理装置の第3の数がゼロに等しくない場合には、ステップS403において、プロセッサ14は、第3の中央処理装置の第3の数が、第4の中央処理装置の第4の数よりも高くないか否かを判断する。ステップS405では、第3の中央処理装置の第3の数が、第4の中央処理装置の第4の数よりも高くない場合、プロセッサ14は、第4の中央処理装置の第4の数を増加させ、および中央処理装置(第1の中央処理装置、第2の中央処理装置、第3の中央処理装置および第4の中央処理装置)の総数から、第1の中央処理装置の第1の数と、第2の中央処理装置の第2の数と、第4の中央処理装置の第4の数とを減じることにより、第3の中央処理装置の第3の数をリセットする。
【0023】
一つの実施形態において、サーバ1内の中央処理装置の総数が30であり、また、割り当てられた第1の中央処理装置の第1の数と、割り当てられた第2の中央処理装置の第2の数の合計が13である場合には、プロセッサ14によって割り当てられた第3の中央処理装置の第3の数および第4の中央処理装置の第4の数が11になると仮定する。この実施形態では、プロセッサ14は、1になるように第4の中央処理装置の第4の数を初期化する。この時点で、第3の中央処理装置の第3の数は10である。ステップS401では、第3の中央処理装置の第3の数および第4の中央処理装置の第4の数が、それぞれ10および1である場合、プロセッサ14は、サーバ1の第2の効率をテストして記録し、および次のステップS402において、第3の中央処理装置の第3の数を1だけ減ずる。さらに、ステップS402’では、プロセッサ14は、第3の数がゼロであるか否かを判断する。第3の数がゼロでない場合には、ステップS403において、プロセッサ14は、第3の中央処理装置の第3の数が、第4の中央処理装置の第4の数よりも大きくないと判断する。この実施形態では、既に第4の中央処理装置の第4の数よりも大きくなっている、第3の中央処理装置の第3の数が10から9に減じられているため、プロセッサ14は、ステップS401において、第2の効率をテストする。上述したステップを繰り返した後、第4の中央処理装置の第4の数は、徐々に10から1へ低下する。この時点で、第3の中央処理装置の第3の数は、第4の中央処理装置の第4の数に等しく(ともに1に等しい)、また、プロセッサ14は、ステップS405において、第4の中央処理装置の第4の数を1から2に増加させ、および中央処理装置(第1の中央処理装置、第2の中央処理装置、第3の中央処理装置および第4の中央処理装置)の総数から、第1の中央処理装置の第1の数と、第2の中央処理装置の第2の数と、第4の中央処理装置の第4の数とを減じることによって、第3の中央処理装置の第3の数をリセットし、この場合、第3の数は9になる。
【0024】
この時点で、ステップS401において、第3の中央処理装置の第3の数および第4の中央処理装置の第4の数が、それぞれ9および2である場合、プロセッサ14は、第2の効率をテストし、および上述したステップを繰り返す。第3の中央処理装置の数がゼロになった場合、少なくとも第2の効率と、第3の中央処理装置の数と、第4の中央処理装置の数とを含むサーバ1の作業効率に関する表を得ることができる。表1および表2を参照して下さい。表2は、本開示の一つの実施形態による作業効率に関する表である。作業効率に関する表は、少なくとも第2の効率と、第3の数と、第4の数とを含む。表2に示すように、サーバ1の第2の効率は、第3の中央処理装置の第3の数および第4の中央処理装置の第4の数に対する割り当てが変化した場合に、相対的に変化する。表2からは、第3の中央処理装置の第3の数が7である場合、2になるように第4の中央処理装置の第4の数を設定することによって得られる第2の効率が、3になるように第4の中央処理装置の第4の数を設定することによって得られる第2の効率よりも良くなることが分かる。換言すれば、第3の中央処理装置の第3の数と、第4の中央処理装置の第4の数の合計が小さい状態での第2の効率は、第3の中央処理装置の第3の数と、第4の中央処理装置の第4の数の合計が大きい状態での第2の効率よりも良くなる可能性がある。換言すると、上述した中央処理装置の割り当て方法を繰り返し実行することによって得られる、作業効率に関する表を介して、プロセッサ14は、中央処理装置のリソースが限定されている状態で、中央処理装置の改善された割り当てを得ることができ、その結果、リソースの無駄遣いを避けることができ、およびサーバ1の効率を上げることができる。
【0026】
一つの実施形態において、サーバ1が24個の中央処理装置を有し、およびそれら24個の中央処理装置が、上述した4つのタスクを実行するために割り当てられる場合、24個の中央処理装置を割り当てる組合せの数は1771になる。しかし、本開示の割り当て方法によって、サーバの作業効率に関する表で生成される、24個の中央処理装置を割り当てる組合せの数は、1771よりも小さくなる。例えば、13個の中央処理装置が、第1の種類のタスクおよび第2の種類のタスクを実行するために割り当てられ、および残りの11個の中央処理装置が、第3の種類のタスクおよび第4の種類のタスクを実行するために割り当てられる場合、24個の中央処理装置を割り当てる組合せの数は、本開示の割り当て方法を用いることにより、約100となる。そのため、テスト処理手順および中央処理装置を割り当てるための時間が節約される。
【0027】
上述した実施形態では、SOFAに関連する第3の種類のタスクおよび第4の種類のタスク、ならびに第1の種類のタスクおよび第2の種類のタスクのための割り当て方法が開示されている。しかし、別の実施形態では、その割り当て方法は、第3の種類のタスクおよび第4の種類のタスクだけのためのものである。本開示の別の実施形態による中央処理装置の割り当て方法に関するフローチャートである
図5を参照して下さい。
図5に示すステップは、
図4に示すステップと同様であるため、ここでは繰り返さない。
図5と
図4の唯一の違いは、
図5のステップS405’では、第3の中央処理装置の第3の数が、中央処理装置(第3の中央処理装置および第4の中央処理装置)の総数から、第4の中央処理装置の第4の数を減じることによって得られるということである。換言すると、この実施形態では、第1の中央処理装置の第1の数および第2の中央処理装置の第2の数は、考慮されていない。
【0028】
上記の説明に基づいて、中央処理装置の割り当て方法およびサーバの動作において、第1の中央処理装置の数は、第1の中央処理装置の負荷を判断することによって選択的に増加される。さらに、第2の中央処理装置の第2の数は、第1の種類のタスクによって占有されている帯域幅が最大帯域幅に達しているか否かを判断することによって、選択的に増加される。上述したステップが繰り返し実行される。そのため、中央処理装置の理想的な割り当て方法が得られ、その結果、サーバの全体効率が向上する。
【0029】
本発明を上述した実施形態に関連して説明してきたが、それらは、本発明を限定することを意図されていない。本発明の趣旨および範囲から逸脱することなく実行されるさまざまな変形および変更は、本発明がクレームする範囲内にある。したがって、本発明の保護の範囲は、添付クレームによって定義される。