JP2011529210A - 複数のオペレーティングシステムを実行するマルチプロセッササーバのプロセッサリソースを管理する技術 - Google Patents
複数のオペレーティングシステムを実行するマルチプロセッササーバのプロセッサリソースを管理する技術 Download PDFInfo
- Publication number
- JP2011529210A JP2011529210A JP2011503277A JP2011503277A JP2011529210A JP 2011529210 A JP2011529210 A JP 2011529210A JP 2011503277 A JP2011503277 A JP 2011503277A JP 2011503277 A JP2011503277 A JP 2011503277A JP 2011529210 A JP2011529210 A JP 2011529210A
- Authority
- JP
- Japan
- Prior art keywords
- operating system
- processor
- processors
- load
- multiprocessor
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
- Hardware Redundancy (AREA)
Abstract
マルチプロセッササーバシステムは、各々が複数のストレージアダプタおよび複数のネットワークアダプタを用いる複数のマルチプロセッサまたはシングルプロセッサオペレーティングシステムを実行する。各オペレーティングシステムは、自身のプロセッサの全てに関する負荷情報を保持し、当該情報を他のオペレーティングシステムと共有する。オペレーティングシステムのプロセッサ負荷に変化が生じた場合、再割当て対象であるオペレーティングシステムのストレージアダプタおよびネットワークアダプタの最大負荷に既に達していなければ、性能を向上させるべくオペレーティングシステム間でプロセッサが動的に再割当てされる。プロセッサの再割当ては、シングルプロセッサオペレーティングシステムにより使用されているプロセッサの再割当てを許すべくオペレーティングシステムの停止および動的な再起動を含んでいる。更に、マルチプロセッサオペレーティングシステムのプロセススケジューラは、負荷が重いオペレーティングシステムへのプロセッサの即時再割当てを許すべく、いくつかのプロセッサを軽いプロセッサ負荷状態でアイドルに維持する。
Description
本発明は、一般に、複数のオペレーティングシステムを実行するマルチプロセッササーバに関する。
最新のオペレーティングシステム(OS)の大多数は、対称型マルチプロセッシング(SMP)、すなわち使用可能なプロセッサ間でプロセスの実行を自動的に分散させて、時分割技術を用いてプロセスを実行することによりアプリケーションに使用可能なプロセッサの個数を隠蔽する技術をサポートしている。その種のオペレーティングシステムを用いることにより、いくつかの中央演算処理装置(CPU)またはマルチコアCPUを用いてアプリケーションプロセスの実行に使用可能なプロセッサの個数を増やすだけでサーバシステムの性能を向上させることができる。
しかし、いくつかの場合において、マルチプロセッササーバシステム上でSMP対応オペレーティングシステムの単一のインスタンス例を実行することが必ずしも高性能サーバシステムを実装する最も有効な方法ではない。実際、多くのオペレーティングシステムが特定の種類の仕事量を対象とすることなく汎用的に設計されている。そのような設計方針の結果、高性能な処理は、サーバシステムで生じ得る仕事量のごく一部に対して実現できるに過ぎない。典型的な例は、サーバに備えられた記憶システムに保存されたファイルへのリモートアクセスを実装するファイルサーバである。汎用オペレーティングシステムを用いるマルチプロセッササーバは、小さいファイルへのベストエフォート型アクセスの場合に受容可能な性能が発揮される可能性が高いが、ビデオファイル等の大きなファイルへのリアルタイムアクセスに負荷が変化した場合に性能が低下する恐れがある。
この問題に対する効率的な解決策は、サーバシステム上で数種類のオペレーティングシステムを実行してサーバに対する各種の負荷を効率的に扱うことである。各オペレーティングシステムには、それらの仕事量を処理すべく使用可能なプロセッサの一部が割当てられる。米国特許第6647508B2号明細書のような方法がこれまで開示されており、単一のマルチプロセッササーバシステム上で複数のオペレーティングシステムを実行する方法が提案されている。米国特許第6931640B2号明細書や米国特許出願公開第2002/0087611A1号明細書等の他の方法もまた、サーバの各オペレーティングシステム上で実行されるアプリケーションにより実現可能な最大性能を調整すべく、オペレーティングシステムに物理リソース、例えばメモリおよびCPUを動的に再割当てする方法を紹介している。
しかし、上述した方法は、主として再割当ての決定をサーバシステムの各オペレーティングシステムに見られるCPUおよびメモリの使用(または論理分割)だけに基づいて行なっている。ファイルサーバの場合、実現される性能は受信または転送されるファイルデータの量(スループット)に関して測定されるため、そのような尺度は効率的なリソース再割当て決定の実装に適していない。また、SMP対応オペレーティングシステムを使用することで、別のオペレーティングシステムへのCPU再割当て動作が困難になる。アプリケーションプロセスの実行が当初から使用可能なプロセッサ間で均一に分散されるため、常に全てのプロセッサがプロセス実行のためビジー状態であり得る。負荷が軽いオペレーティングシステムが自身のプロセッサの1個を別のオペレーティングシステムに解放できるようにする方法は、オペレーティングシステムのプロセススケジューラの変更を要する。また、プロセッサの再割当てにより性能が向上するか否かを推定する新たな方法が必要とされている。
本明細書に開示する本発明の主な特徴は以下の通りである。すなわち、複数のプロセッサ、記憶システムに接続された複数の記憶システムアダプタ、ネットワークに接続された複数のネットワークアダプタ、および各々が複数のプロセッサの一部を用いて実行される複数のオペレーティングシステムを格納するメモリを含むマルチプロセッサコンピュータシステムである。複数のプロセッサ、記憶システムアダプタ、およびネットワークアダプタの各々は、複数のオペレーティングシステムの1個に割当てられ、オペレーティングシステムは、低負荷状態にあるオペレーティングシステムに割当てられた複数のプロセッサの少なくとも1個を指定し、指定されたプロセッサをアイドルに維持する。
本発明は、異なるオペレーティングシステムにより処理される異なる種類のクライアント要求をより多く処理するファイルサーバの能力を向上させることができる。高負荷状態のオペレーティングシステムにアイドルプロセッサを動的に再割当てすることにより、当該オペレーティングシステムが自身のネットワークアダプタおよび記憶システムアダプタの両方を最大性能で使用できる能力が向上する。すなわち、当該オペレーティングシステムにより処理される種類のクライアント要求に対するファイルサーバのスループットを最大化する。
100 サーバ
120 メモリ
200 オペレーティングシステム
201 オペレーティングシステム
230 負荷モニタ
120 メモリ
200 オペレーティングシステム
201 オペレーティングシステム
230 負荷モニタ
ウェブサーバまたはNFSサーバ等のファイルサーバシステムは、マルチメディアコンテンツアクセスまたは配信等の先進機能をサポートすべく進化している。そのような特徴を従来のサーバシステムで提供する結果、様々な仕事量が混在してしまう。すなわち、ウェブページの実装に典型的に用いられるテキストまたは画像ベースのコンテンツファイルがベストエフォート(極力高速)でアクセスおよび配信されるのに対し、ビデオや音声ファイルのマルチメディアコンテンツはクライアント側で滑らかに再生できるようにすべくリアルタイムデータのアクセスおよび配信を必要とする。汎用オペレーティングシステムは往々にしてマルチメディアコンテンツを効率的に扱うために必要なリアルタイム性能を欠いている結果、汎用オペレーティングシステム上に構築された単一のサーバシステムにより両方の仕事量がサービスを受けたならばサービスの品質が低下してしまう。
また、汎用オペレーティングシステムは、一般に、オペレーティングシステムが制御するメモリ内へのファイルデータのキャッシングの利用を通じて小さいファイルへのアクセスを高速化すべく設計されている。一方、マルチメディアファイルは平均的にサイズがより大きく、それらへの逐次アクセスの特性に起因してデータキャッシングが非効率となるため、従来の汎用オペレーティングシステムによる処理が非効率的になってしまう。
マルチプロセッササーバ上でいくつかの異なるオペレーティングシステムを実行することにより、リアルタイムアクセスのサービス品質を大幅に向上させることができる。例えばビデオファイル配信用に最適化された専用オペレーティングシステムを、ベストエフォート型ファイルデータの取り扱いに用いる従来のオペレーティングシステムと同時に実行できるため、結果的に全体的なサーバ性能の維持および向上も可能になる。本方法はまた、物理的に異なるサーバシステムを使用する従来方式と比較して、専ら単一サーバだけを使用する結果、保守、収納、および電力消費コストが下がる点でより好ましいであろう。
単一サーバの異なるプロセッサ上で複数のオペレーティングシステムを実行することは新規な方法でない。しかし、各種の負荷に専用のオペレーティングシステムを用いて様々な仕事量が混在しているファイルサーバにこれを効率的に実装するには、全体的なシステム効率を最大化するためにプロセッサの動的な再割当て方式が必要とされる。実際、リアルタイムファイル処理に対するベストエフォート型ファイル処理の負荷比率がクライアント要求に応じて変化するにつれて、実行されるオペレーティングシステム間でのプロセッサの再割当ては、プロセッサの静的割当てが必ずしも全ての種類の仕事量の効率的な処理につながらないのに比べて、全体的な性能を向上させることができる。
オペレーティングシステムへのプロセッサの動的な再割当てはいくつかの課題に直面する。第一に、従来のオペレーティングシステムのプロセススケジューラは、一般に、各プロセスに割当て可能なプロセッサ時間を増やすべくオペレーティングシステムにより制御されるプロセッサ間でプロセスを均一に分散するため、プロセスの完了に要する処理時間が短縮される。この方法では、オペレーティングシステムのプロセッサがアイドルに入らない、すなわちCPU負荷がゼロにならないようにプロセッサが頻繁に使用される。複数のオペレーティングシステム間で動的にプロセッサの再割当てを行なう場合、アイドルプロセッサが存在しなければ効率的な再割当ての決定が妨げられる恐れがある。
次に、ファイルサーバにより実現可能な最大性能は、自身のプロセッサ負荷だけに依存する訳ではない。すなわち、記憶装置へのアクセススループットおよびネットワークへのアクセススループットが既に最大であるならば、プロセッサの数を増やしてもファイルサーバのオペレーティングシステムにより実現される性能は向上しない。オペレーティングシステムのプロセッサ負荷だけに基づいて決定すれば、結果的にプロセッサの非効率的な分散が生じる恐れがある。
最後に、ベストエフォートとリアルタイムの間の仕事量比率は両極端な2通りの可能性のいずれかに偏る恐れがある。すなわち、一種類の仕事量が存在して、システムはオペレーティングシステムを完全に停止させて、仕事量比率が変化した際に再起動することにより、全てのプロセッサを1種類のオペレーティングシステムだけに完全に割当てることができる筈である。
本発明のいくつかの実施形態は、プロセッサの動的割当て管理への異なるアプローチを用いることにより性能問題を解決する。本発明の特定の実施形態は、各オペレーティングシステムにおけるプロセスのスケジューリングを強化して、異なるオペレーティングシステムにプロセッサを再割当てすることが可能ならばアイドルに保つことにより、プロセッサの再割当ての待ち時間が減少する。
以下により詳しく述べるように、一実施形態において、本システムは複数の通信ポートからアクセス可能なデータ記憶装置、複数のネットワークアダプタ、およびサーバの1個以上のプロセッサに実行される少なくとも2個の異なるオペレーティングシステムを含んでいる。各オペレーティングシステムは、どのプロセッサでプロセスを実行すべきかを決定するプロセススケジューラを含んでいる。スケジューラの決定は、使用されるプロセッサの現在負荷、使用する記憶装置ポートの現在のスループット、および使用するネットワークアダプタに基づいている。これらのパラメータは、各オペレーティングシステムにより測定され、サーバ上で実行される全てのオペレーティングシステム間で共有されていて、各オペレーティングシステムが、アイドルプロセッサを別のオペレーティングシステムに再割当てすべく要求できるようにする。
各オペレーティングシステムのプロセススケジューラは、現在使用されているプロセッサの負荷が、プロセッサの過負荷の危険性を示すプログラム可能な閾値を超えるまで、プロセスを実行するためのアイドルプロセッサの選択を保留する。閾値を超えたならば、プロセススケジューラは1個以上のプロセスを実行すべくアイドルプロセッサを選択することができる。アイドルプロセッサが利用できない場合、オペレーティングシステムは、記憶装置へのアクセスに使用されているポートの現在のスループットまたはそのネットワークアダプタの現在のスループットが最大値に達しない限り、別のオペレーティングシステムのアイドルプロセッサの再割当てを要求することができる。
本明細書に開示する本発明をベストエフォートおよびリアルタイムのファイルアクセスの仕事量が混在する状態にあるファイルサーバについて記述しているが、本発明はアプリケーションサーバ等、他の種類のシステムおよび他の種類のサービスに適用可能であって、依然として本発明の趣旨および範囲に含まれる。
図1は、本発明の技術を実装可能な典型的SMPアーキテクチャサーバシステムの一例を示すブロック図である。図1に示すサーバ100は、メモリバス121を介して共通の共有メモリ120にアクセスする4個のプロセッサ110、111、112、および113を含んでいる。メモリバスに接続されたブリッジ122を用いて、全てのプロセッサもまた入出力バス123に接続された装置にアクセスすることができる。サーバ100は、スイッチ133を介してネットワーク134にアクセスする3個のネットワークアダプタ130、131、および132を備えている。当該サーバは、ファイバーチャネルスイッチ143に接続された3個のファイバーチャネルアダプタ140、141、および142を用いて記憶システム144にアクセスすることができる。サーバ100共通メモリ120は、少なくとも2種類のオペレーティングシステムを格納している。共通メモリ120は全てのプロセッサから等しく物理的にアクセス可能であるが、サーバ上で実行されるオペレーティングシステムのメモリ管理および保護は、単一のオペレーティングシステムだけにアクセスできるメモリ領域を実装すべく使用可能なメモリを分割する場合がある。同様に、全てのオペレーティングシステムにより共有されるメモリ領域もまた実装可能である。本発明は、プロセッサ、ネットワークアダプタ、および本システムに存在するファイバーチャネルアダプタの最大数により制約されない。通常、プロセッサ、ネットワークアダプタ、およびサーバシステムで見つかるファイバーチャネルアダプタの最大数は、使用可能なプロセッサスロット(コネクタ)および入出力バス123上のコネクタの数により制約される。クライアント150は、ネットワーク134を介してサーバ100により提供されるサービスを利用することができる。提供されるサービスは、ビデオリアルタイム配信(ストリーミング)またはサーバの記憶システム144に保存されたファイルへの直接アクセスをサービスする(ウェブサーバ機能)ウェブページを含んでいてよい。
図2は、2種類の異なるオペレーティングシステムを使用する場合のサーバ100の論理構成を示すブロック図である。例えば、あるオペレーティングシステム200は記憶システム144に保存されたファイルへのクライアントによる直接アクセスの効率的な処理およびウェブページのサービス提供のために最適化されている一方、他のオペレーティングシステム201はビデオファイルのリアルタイムストリーミングのために最適化されていてよい。SMP対応オペレーティングシステム200、201の各々が2個の異なるプロセッサを用いて実行される。オペレーティングシステム200は、プロセッサ210、211を使用する一方、オペレーティングシステム201はプロセッサ212、213を使用する。オペレーティングシステム200、201の両方が、アプリケーションの実行およびシステムレベルのプロセスおよびタスクの制御に用いるプロセススケジューラ(各々220および221)を含んでいる。負荷モニタ230は、オペレーティングシステム200、201の両方が共有するメモリ領域であって、各オペレーティングシステムの負荷情報を保存すべく用いられる。負荷モニタを用いて保存された負荷情報データを全てのオペレーティングシステムが用いて、プロセッサの再割当てが必要且つ可能か否かを判定する。各オペレーティングシステムは、例えばシステム管理者により決定されるサーバ構成に従いサーバ100に含まれる入出力装置のいくつかを排他的に使用する権限が与えられる。図2の例において、オペレーティングシステム200はネットワークアダプタ240およびファイバーチャネルアダプタ250の排他的使用権限を有する。同様に、オペレーティングシステム201はネットワークアダプタ241、242およびファイバーチャネルアダプタ251、252への排他的アクセス権限を有する。全てのネットワークアダプタはスイッチ243を介してネットワーク244に接続されている。全てのファイバーチャネルアダプタは、ファイバーチャネルスイッチ253を介して記憶システム254へのアクセスを実装する。
各オペレーティングシステム200、201のプロセススケジューラは、負荷モニタ230に保存されている負荷データ情報を周期的に更新する。
図3は、負荷モニタを用いて保存される情報データを示す。負荷モニタデータは、3個のテーブルの組として編成されている。第1のテーブルは、システム内の各プロセッサおよび当該プロセッサが割当てられているオペレーティングシステムの現在の平均負荷を示すCPU負荷テーブル300である。図2のシステムの場合、CPU負荷テーブルは各々が図2のプロセッサ210、211、212、および213に対応している4個のエントリ301、302、303、および304を有している。第2のテーブル310を用いて、システムの各ネットワークアダプタおよび各装置を用いるオペレーティングシステムの現在の平均負荷を示す。このテーブルは、各々が図2のネットワークアダプタ240、241、および242の状態に対応している3個のエントリ311、312、および313を有する。ここに示す例では、ネットワークアダプタの現在負荷は単に最大性能の百分率、すなわち実現可能な最大スループットの百分率として保存される。例えば、最大1000Mbps対応アダプタに対して最大毎秒100メガビット(Mbps)の負荷は、テーブル310において値10という結果を与える。最後に、負荷モニタの第3のテーブル320を用いて、サーバの全てのファイバーチャネルアダプタの負荷平均および所有者オペレーティングシステムを示す。3個のエントリ321、322、および323は各々図2のファイバーチャネルアダプタ250、251、および252に対応している。ネットワークアダプタ負荷テーブル310に関して、テーブル320内のファイバーチャネルアダプタの現在負荷は、アダプタの最大性能の百分率として表すことができる。
本発明の好適な実施形態によれば、サーバで実行される各オペレーティングシステムは負荷モニタに保存された自身のプロセッサ、ネットワークアダプタ、およびファイバーチャネルアダプタの負荷情報を周期的に更新する。低負荷状態において、オペレーティングシステムの不必要なプロセッサはプロセススケジューラによりアイドル(プロセッサ上でプロセスまたはタスクが一切実行されていない)に維持される。更新後、負荷モニタの負荷情報を解析し、オペレーティングシステム負荷の増大を検出してプロセッサの再割当てが必要か否かを判断する。図3に、オペレーティングシステム200、201が極めて低いCPU負荷の下で動作している状況を示す。オペレーティングシステム0(200)の場合、CPU負荷テーブル300のエントリ301は、CPU0に対する25%のCPU負荷を示し、エントリ302はCPU1が未使用(アイドル)であることを示す。オペレーティングシステム1(201)の場合、エントリ303はCPU2に対する50%のCPU負荷を示し、エントリ304はCPU3が未使用(アイドル)であることを示す。
図4に、両方のオペレーティングシステムによる更新後の負荷情報の新たな状態を示す。CPU2のCPU負荷が最大値(テーブル400のエントリ403)付近まで増大したため、例えばCPU3がオペレーティングシステムプロセススケジューラにより活性化され、CPU3の負荷が非ゼロ(テーブル400のエントリ404)になる。一方、オペレーティングシステム0のCPU0のCPU負荷が顕著に変化しなかった(テーブル400のエントリ401)ため、オペレーティングシステム0の第2のプロセッサは活性化されず、アイドル(テーブル400のエントリ402)に保たれる。オペレーティングシステム1のアイドルプロセッサの活性化は、自身のネットワークおよびファイバーチャネルアダプタの負荷が最大値(テーブル410のエントリ412、413、およびテーブル420のエントリ422、423)であるという条件の下、すなわち追加的プロセッサを使用することによりネットワークおよびファイバーチャネルアダプタスループット(それらの負荷)が向上し、そのためオペレーティングシステム1の性能が向上しそうな場合に実行された。
オペレーティングシステム1の負荷が更に増大する、すなわち自身の第2プロセッサ(CPU3)のCPU負荷が増大する場合を考慮すれば、プロセッサの再割当てが生じる可能性がある。この状況を図5に示す。ネットワークおよびファイバーチャネルアダプタの負荷が依然として許容される最大値(テーブル510のエントリ512、513、およびテーブル520のエントリ522、523)未満であるが、CPU3の負荷が最大値(テーブル500のエントリ504)に近づいたため、プロセッサの再割当てが開始された結果、オペレーティングシステム0のアイドルなCPU1がオペレーティングシステム1(テーブル500のエントリ502)に再割当てされる。
各オペレーティングシステムにより実行される、プロセッサの再割当てが必要且つ可能か否かを判定する完全なアルゴリズムを図6に示す。
第1のステップ600において、オペレーティングシステムのタスクは、負荷モニタの負荷情報の更新(ステップ610)を実行すべくタイマーの満了を待つ。負荷情報の更新完了後、ステップ620においてオペレーティングシステムが活性化プロセッサの全体的なCPU負荷を調べて、高閾値(例えば75%)を超えるか否かを検出する。オペレーティングシステムに割当てられた全ての活性化プロセッサの全体的なCPU負荷は、式(1)に示す負荷モニタのCPU負荷テーブルの情報を用いて簡単に計算することができる。
全ての活性化プロセッサの全体的な負荷が所定の高閾値未満である場合、ステップ621においてオペレーティングシステムは次に、活性化CPUをアイドルにしようと試みる。これに対して、活性化CPUの全体的な負荷が所定の高閾値を超えた場合、オペレーティングシステムは次に、ネットワークおよびファイバーチャネルアダプタの負荷が最大値未満であることを確認(ステップ630)することにより、追加CPUを活性化すれば性能が向上するか否かを調べる。これらのアダプタの負荷が最大値である場合、オペレーティングシステムにプロセッサを再割当てしてもデータのスループットは向上せず、従ってサーバの性能は向上しない。そのような場合、アルゴリズムはステップ631においてプロセッサの再割当てを一切実行せずに終了する。この状況が生じるのは、サーバに過度に負荷が掛かった結果、より高い性能、例えば、より高い記憶およびネットワークスループットの可能性無しにCPUの負荷増大を回避するために、オペレーティングシステムが提供するサービスが一時的に新規のクライアント要求を拒否する場合だけである。ステップ630においてネットワークおよびストレージアダプタの負荷が最大ではないと判定されたならば、オペレーティングシステムは最初にステップ640において、自身に割当てられたプロセッサのうち1個がアイドルであるか否か、すなわち1個のプロセッサの現在負荷がゼロであるか否かを調べることにより追加プロセッサの活性化を試みる。アイドルプロセッサが見つかったならば、ステップ670において当該プロセッサを活性化する。これに対して、全てのオペレーティングシステムのプロセッサが既に活性化されている場合、オペレーティングシステムは負荷モニタCPU負荷テーブルを走査して他のオペレーティングシステムから入手可能なアイドルプロセッサを調べる(ステップ650)。使用可能なものがあれば、オペレーティングシステムはステップ660において負荷モニタCPU負荷テーブルを更新するとともに、ステップ670において新たに割当てられた(依然としてアイドル状態にある)プロセッサを活性化することにより、アイドルプロセッサの自身への再割当てを実行する。アイドルプロセッサの活性化はプロセッサの種類に依存するが、通常は、を動作スケジューラ内のプロセスの実行に使用可能なプロセッサのリストに当該プロセッサを追加して、当該プロセッサにリスタート信号を送信して当該プロセッサの状態(割り込みハンドラ、仮想記憶設定等)を再初期化するステップが含まれる。別のオペレーティングシステムからのアイドルプロセッサが使用可能でない場合、アルゴリズムはステップ631で終了し、過負荷状態に陥る。
プロセッサ再割当ての対称動作は、全体的な負荷が増加している他のオペレーティングシステムによりアイドルプロセッサが使用できるように、低負荷状態で活性化プロセッサをアイドルにさせようと試みている。この動作は、自身の活性化プロセッサの全体的な負荷が高閾値未満である場合、負荷モニタ情報が更新された時点でオペレーティングシステムにより試みられる(図6のステップ621)。
図7は、活性化プロセッサをアイドルにしようと試みる各オペレーティングシステムにより実行されるステップを示すフロー図である。図6のステップ621に対応するステップ700から始めて、オペレーティングシステムは最初にステップ710において自身の活性化プロセッサの全体的な負荷が低閾値(例えば25%)未満であるか否かを調べる。当該閾値未満ならば、オペレーティングシステムは、あるプロセッサをアイドル状態に戻すことができると仮定して、アイドルにする候補として負荷が最も低いプロセッサを選択する(ステップ720)。オペレーティングシステムの活性化プロセッサの全体的な負荷が低閾値を超えていればオペレーティングシステムプロセッサの状態は不変のまま処理終了する。別途極めて低い負荷状態で使われる筈であったプロセッサをアイドルにすることにより、あるオペレーティングシステムが、より高い負荷状態で動作している別のオペレーティングシステムへのプロセッサの再割当てを可能にする。この結果、当該プロセッサをアイドルにしたオペレーティングシステムの性能を低下させることなく、当該プロセッサが再割当てされるオペレーティングシステムの潜在的性能が向上する。
SMP対応オペレーティングシステムは、使用可能なプロセッサが複数あるため、プロセッサの活性化/アイドル化動作を実装することができる。しかし、非SMPオペレーティングシステムの場合、オペレーティングシステムが最初に停止されるかまたは実行が保留されない限り、アイドル状態にして別のSMPオペレーティングシステムに再割当てることができないシングルプロセッサしか有していない。
本発明の別の好適な実施形態において、SMP対応オペレーティングシステムは、サーバ100のシングルプロセッサ上で実行される一組の非SMPオペレーティングシステムの(以下UPオペレーティングシステムと呼ぶ)と組み合わせて用いることができる。この構成を図8に示す。
図8は、SMPオペレーティングシステム800を複数のシングルプロセッサ(UP)オペレーティングシステム(801、802)と組み合わせて用いる場合のサーバの論理構成を示すブロック図である。オペレーティングシステム800はCPU0、1(810、811)使用し、且つネットワークアダプタ840、841およびファイバーチャネルアダプタ850、851の排他的使用権限が与えられている。オペレーティングシステム801はCPU2を使用し、且つネットワークアダプタ842およびファイバーチャネルアダプタ852の使用が許可されている。最後に、オペレーティングシステム802はCPU3を使用し、且つネットワークアダプタ843およびファイバーチャネルアダプタ853の使用が許可されている。全てのネットワークアダプタがスイッチ843を介してネットワーク844に接続されていて、記憶システム854はスイッチ853を用いて全てのファイバーチャネルアダプタにアクセス可能である。全てのオペレーティングシステムは、プロセススケジューラ820、821、および822によりデータが更新された共有負荷モニタ830へのアクセス権限を有する。
UPオペレーティングシステム801または802の一方のCPU負荷が増大した場合、CPU再割当てが生じない。これに対して、プロセッサ812または813の一方のオペレーティングシステム800への再割当てを許すことにより、本明細書に開示する方法を用いてSMPオペレーティングシステムの性能を向上させることができる。この動作は図9に示すように実行される。対象とするアイドルCPUがUPオペレーティングシステムに割当てられる場合、図9の処理は図6のステップ660に対応する。この場合、オペレーティングシステムが一切クライアント要求を処理していない、すなわち一切のファイルデータをクライアントに配信していなければ、UPオペレーティングシステムのプロセッサはアイドルであると考えられる。
第1のステップ900において、再割当てされる予定のプロセッサ上で実行されているオペレーティングシステムが停止される。オペレーティングシステムの停止は、実行されているオペレーティングシステムに依存し、修正されたキャッシュデータがあれば記憶装置にフラッシュし、実行中のサービス(ウェブサーバ等)を停止して、全てのオペレーティングシステムコードの実行を止めるステップが含まれていてよい。次に、ステップ910において、プロセッサの再割当てを反映させるべく負荷モニタCPU負荷テーブルを修正する。最後に、ステップ920において、UPオペレーティングシステムが使用するネットワークおよびファイバーチャネルでアダプタもまた当該プロセッサと同一のオペレーティングシステムに再割当てされる。
図7で記述したようにSMPオペレーティングシステム上のプロセッサをアイドルにする対称動作もまた、SMPおよびUPオペレーティングシステムの組合せをサポートすべく調整することができる。実際、ステップ720を「CPU負荷が最も低いCPUを選択し、その上でUPオペレーティングシステムを再起動する」ように変更して、プロセッサがSMPオペレーティングシステムに再割当てされた際に停止されたUPオペレーティングシステムを再起動してクライアント要求を処理させることができる。
本発明の例示的な実施形態に関する上の記述は、図解および説明目的で提示するものであって、網羅的であることまたは本発明の範囲を開示した実施形態に限定することは意図していない。本発明において自由な修正、各種変更、および代替を想定している。いくつかの例では、上述の他の特徴を相応に使用しなくても本発明の特徴を採用できる。
Claims (15)
- 複数のプロセッサと、
記憶システムに接続された複数の記憶システムアダプタと、
ネットワークに接続された複数のネットワークアダプタと、
各々が複数のプロセッサの一部を用いて実行される複数のオペレーティングシステムを保存するメモリと
を含むマルチプロセッサコンピュータシステムであって、
前記複数のプロセッサ、記憶システムアダプタ、およびネットワークアダプタの各々が前記複数のオペレーティングシステムの1個に割当てられ、
前記オペレーティングシステムが、低負荷状態にある前記オペレーティングシステムに割当てられた前記複数のプロセッサの少なくとも1個を指定し、前記指定されたプロセッサをアイドルに維持する
マルチプロセッサコンピュータシステム。 - 前記複数のオペレーティングシステムが、前記複数のプロセッサ、前記複数の記憶システムアダプタ、および前記複数のネットワークアダプタの各々の現在負荷の情報を共有する、
請求項1に記載のマルチプロセッサコンピュータシステム。 - 前記オペレーティングシステムが、自身の活性化プロセッサの平均負荷が増大した場合に自身のアイドルプロセッサの1個を活性化する、
請求項2に記載のマルチプロセッサコンピュータシステム。 - 前記オペレーティングシステムが、自身のプロセッサの平均負荷が所定の閾値を超えた場合に自身のアイドルプロセッサの1個を活性化する、
請求項3に記載のマルチプロセッサコンピュータシステム。 - 前記オペレーティングシステムが、自身のストレージアダプタの負荷および自身のネットワークアダプタの負荷がそれらの最大値を超えない場合に、自身のアイドルプロセッサの1個を活性化する、
請求項4に記載のマルチプロセッサコンピュータシステム。 - 前記複数のオペレーティングシステムの1個が、前記オペレーティングシステムに割当てられたプロセッサの負荷が増大した場合に、別のオペレーティングシステムに割当てられていてアイドルにある前記複数のプロセッサの1個を自身に再割当てする、
請求項5に記載のマルチプロセッサコンピュータシステム。 - 前記オペレーティングシステムが、自身のプロセッサの平均負荷が所定の閾値を超えた場合に、プロセッサの再割当てを実行する、
請求項6に記載のマルチプロセッサコンピュータシステム。 - 前記オペレーティングシステムが、自身のストレージアダプタの負荷および自身のネットワークアダプタの負荷がそれらの最大値を超えない場合に、プロセッサの再割当てを実行する、
請求項7に記載のマルチプロセッサコンピュータシステム。 - 前記オペレーティングシステムが、自身のストレージアダプタの負荷および自身のネットワークアダプタの負荷がそれらの最大値を超えた場合に、前記ネットワークを介したクライアント要求を拒否する、
請求項8に記載のマルチプロセッサコンピュータシステム。 - 前記オペレーティングシステムが、前記複数のプロセッサ、前記複数の記憶システムアダプタ、および前記複数のネットワークアダプタの各々の現在負荷情報を定期的に更新する、
請求項2に記載のマルチプロセッサコンピュータシステム。 - 複数のプロセッサと、
記憶システムに接続された複数の記憶システムアダプタと、
ネットワークに接続された複数のネットワークアダプタと、
前記複数のオペレーティングシステムの一部を用いて実行される少なくとも一個のマルチプロセッサオペレーティングシステム、および前記複数のプロセッサの1個を用いて実行される少なくとも一個のシングルプロセッサオペレーティングシステムを保存するメモリと
を含むマルチプロセッサコンピュータシステムであって、
前記複数のプロセッサ、記憶システムアダプタ、およびネットワークアダプタの各々が前記マルチプロセッサオペレーティングシステムまたは前記シングルプロセッサオペレーティングシステムの1個に割当てられ、
前記マルチプロセッサオペレーティングシステムが、低負荷状態にある前記マルチプロセッサオペレーティングシステムに割当てられた前記複数のプロセッサの少なくとも1個を指定し、前記指定されたプロセッサをアイドルに維持する
マルチプロセッサコンピュータシステム。 - 前記マルチプロセッサオペレーティングシステムおよび前記シングルプロセッサオペレーティングシステムが、前記複数のプロセッサ、前記複数の記憶システムアダプタ、および前記複数のネットワークアダプタの各々の現在負荷の情報を共有する、
請求項11に記載のマルチプロセッサコンピュータシステム。 - 前記マルチプロセッサオペレーティングシステムが、自身のプロセッサ負荷が閾値を超えて増大した場合に、アイドルであるシングルプロセッサオペレーティングシステムの実行を停止し、前記停止されたシングルプロセッサオペレーティングシステムに割当てられた前記プロセッサ、ストレージアダプタ、およびネットワークアダプタを自身に再割当てする、
請求項12に記載のマルチプロセッサコンピュータシステム。 - 前記マルチプロセッサオペレーティングシステムが、自身のストレージアダプタおよびネットワークアダプタの負荷がそれらの最大値を超えない場合に、アイドルであるシングルプロセッサオペレーティングシステムの前記プロセッサ、ストレージアダプタ、およびネットワークアダプタを自身に再割当てする、
請求項13に記載のマルチプロセッサコンピュータシステム。 - 前記マルチプロセッサオペレーティングシステムが、自身の活性化プロセッサの負荷が低閾値未満に低下した場合に、自身のプロセッサの1個をアイドルにし、前記アイドルにされたプロセッサを用いて、停止されたシングルプロセッサオペレーティングを再起動する、
請求項13に記載のマルチプロセッサコンピュータシステム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2008/003577 WO2010064277A1 (en) | 2008-12-03 | 2008-12-03 | Techniques for managing processor resource for a multi-processor server executing multiple operating systems |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2011529210A true JP2011529210A (ja) | 2011-12-01 |
Family
ID=40810632
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011503277A Pending JP2011529210A (ja) | 2008-12-03 | 2008-12-03 | 複数のオペレーティングシステムを実行するマルチプロセッササーバのプロセッサリソースを管理する技術 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8195859B2 (ja) |
JP (1) | JP2011529210A (ja) |
WO (1) | WO2010064277A1 (ja) |
Families Citing this family (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9378062B2 (en) * | 2009-06-18 | 2016-06-28 | Microsoft Technology Licensing, Llc | Interface between a resource manager and a scheduler in a process |
US8719831B2 (en) * | 2009-06-18 | 2014-05-06 | Microsoft Corporation | Dynamically change allocation of resources to schedulers based on feedback and policies from the schedulers and availability of the resources |
JP5336331B2 (ja) * | 2009-11-24 | 2013-11-06 | 株式会社デンソー | 車載装置 |
US8972702B2 (en) * | 2009-11-30 | 2015-03-03 | Intenational Business Machines Corporation | Systems and methods for power management in a high performance computing (HPC) cluster |
US8869160B2 (en) * | 2009-12-24 | 2014-10-21 | International Business Machines Corporation | Goal oriented performance management of workload utilizing accelerators |
US8629867B2 (en) | 2010-06-04 | 2014-01-14 | International Business Machines Corporation | Performing vector multiplication |
US8692825B2 (en) | 2010-06-24 | 2014-04-08 | International Business Machines Corporation | Parallelized streaming accelerated data structure generation |
US8522254B2 (en) * | 2010-06-25 | 2013-08-27 | International Business Machines Corporation | Programmable integrated processor blocks |
US9086883B2 (en) | 2011-06-10 | 2015-07-21 | Qualcomm Incorporated | System and apparatus for consolidated dynamic frequency/voltage control |
KR101733117B1 (ko) * | 2012-01-31 | 2017-05-25 | 한국전자통신연구원 | 멀티코어 시스템의 태스크 분배 방법 및 장치 |
US8918799B2 (en) | 2012-03-30 | 2014-12-23 | International Business Machines Corporation | Method to utilize cores in different operating system partitions |
US8789046B2 (en) | 2012-03-30 | 2014-07-22 | International Business Machines Corporation | Method to embed a light-weight kernel in a full-weight kernel to provide a heterogeneous execution environment |
US20150039873A1 (en) * | 2012-04-30 | 2015-02-05 | Gregg B. Lesartre | Processor providing multiple system images |
US8650538B2 (en) | 2012-05-01 | 2014-02-11 | Concurix Corporation | Meta garbage collection for functional code |
US8726255B2 (en) | 2012-05-01 | 2014-05-13 | Concurix Corporation | Recompiling with generic to specific replacement |
CN103543987B (zh) * | 2012-07-11 | 2016-09-28 | Sap欧洲公司 | 用于高效并行运行的反馈驱动调节 |
US8793669B2 (en) | 2012-07-17 | 2014-07-29 | Concurix Corporation | Pattern extraction from executable code in message passing environments |
US9575813B2 (en) | 2012-07-17 | 2017-02-21 | Microsoft Technology Licensing, Llc | Pattern matching process scheduler with upstream optimization |
US10187452B2 (en) | 2012-08-23 | 2019-01-22 | TidalScale, Inc. | Hierarchical dynamic scheduling |
KR20140080058A (ko) * | 2012-12-20 | 2014-06-30 | 삼성전자주식회사 | 멀티코어를 위한 로드 밸런싱 방법 및 휴대 단말 |
US20140351315A1 (en) * | 2013-05-22 | 2014-11-27 | Nvidia Corporation | Idle processing resource allocation in a computing system across a network to boost processing capability of a data processing device thereof |
US10296067B2 (en) * | 2016-04-08 | 2019-05-21 | Qualcomm Incorporated | Enhanced dynamic clock and voltage scaling (DCVS) scheme |
US10353736B2 (en) | 2016-08-29 | 2019-07-16 | TidalScale, Inc. | Associating working sets and threads |
CN108228337B (zh) | 2016-12-22 | 2021-08-27 | 财团法人工业技术研究院 | 中央处理单元的配置方法及适用此方法的服务器 |
US10606663B2 (en) | 2017-01-17 | 2020-03-31 | International Business Machines Corporation | Processor mode switching |
US11023135B2 (en) | 2017-06-27 | 2021-06-01 | TidalScale, Inc. | Handling frequently accessed pages |
US10817347B2 (en) | 2017-08-31 | 2020-10-27 | TidalScale, Inc. | Entanglement of pages and guest threads |
US10678480B1 (en) | 2019-01-31 | 2020-06-09 | EMC IP Holding Company LLC | Dynamic adjustment of a process scheduler in a data storage system based on loading of the data storage system during a preceding sampling time period |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002215408A (ja) * | 2001-01-24 | 2002-08-02 | Hitachi Ltd | 計算機およびその入出力手段 |
JP2004288183A (ja) * | 2003-03-21 | 2004-10-14 | Hewlett-Packard Development Co Lp | コンピューティングリソースを自動的に割り振る方法 |
JP2006164281A (ja) * | 2004-12-07 | 2006-06-22 | Internatl Business Mach Corp <Ibm> | 自動リソース管理のための利用率ゾーン |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6647508B2 (en) | 1997-11-04 | 2003-11-11 | Hewlett-Packard Development Company, L.P. | Multiprocessor computer architecture with multiple operating system instances and software controlled resource allocation |
US6260068B1 (en) * | 1998-06-10 | 2001-07-10 | Compaq Computer Corporation | Method and apparatus for migrating resources in a multi-processor computer system |
US7140020B2 (en) * | 2000-01-28 | 2006-11-21 | Hewlett-Packard Development Company, L.P. | Dynamic management of virtual partition computer workloads through service level optimization |
JP2001331333A (ja) | 2000-05-18 | 2001-11-30 | Hitachi Ltd | 計算機システム及び計算機システムの制御方法 |
JP2002202959A (ja) | 2000-12-28 | 2002-07-19 | Hitachi Ltd | 動的な資源分配をする仮想計算機システム |
US7870551B2 (en) * | 2006-05-18 | 2011-01-11 | International Business Machines Corporation | Optimization of thread wake up for shared processor partitions |
US8365182B2 (en) * | 2006-10-02 | 2013-01-29 | International Business Machines Corporation | Method and system for provisioning of resources |
-
2008
- 2008-12-03 US US12/308,658 patent/US8195859B2/en active Active
- 2008-12-03 JP JP2011503277A patent/JP2011529210A/ja active Pending
- 2008-12-03 WO PCT/JP2008/003577 patent/WO2010064277A1/en active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002215408A (ja) * | 2001-01-24 | 2002-08-02 | Hitachi Ltd | 計算機およびその入出力手段 |
JP2004288183A (ja) * | 2003-03-21 | 2004-10-14 | Hewlett-Packard Development Co Lp | コンピューティングリソースを自動的に割り振る方法 |
JP2006164281A (ja) * | 2004-12-07 | 2006-06-22 | Internatl Business Mach Corp <Ibm> | 自動リソース管理のための利用率ゾーン |
Also Published As
Publication number | Publication date |
---|---|
US20110191783A1 (en) | 2011-08-04 |
WO2010064277A1 (en) | 2010-06-10 |
US8195859B2 (en) | 2012-06-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2011529210A (ja) | 複数のオペレーティングシステムを実行するマルチプロセッササーバのプロセッサリソースを管理する技術 | |
US11593152B1 (en) | Application hosting in a distributed application execution system | |
US10884799B2 (en) | Multi-core processor in storage system executing dynamic thread for increased core availability | |
EP3522500B1 (en) | Method and system for multi-tenant resource distribution | |
JP5256744B2 (ja) | 資源割当てシステム、資源割当て方法及びプログラム | |
US10248175B2 (en) | Off-line affinity-aware parallel zeroing of memory in non-uniform memory access (NUMA) servers | |
KR101680109B1 (ko) | 복수 코어 장치 및 그의 로드 조정 방법 | |
US7877482B1 (en) | Efficient application hosting in a distributed application execution system | |
US20060143617A1 (en) | Method, apparatus and system for dynamic allocation of virtual platform resources | |
CN109564528B (zh) | 分布式计算中计算资源分配的系统和方法 | |
EP2725862A1 (en) | Resource allocation method and resource management platform | |
US20190253305A1 (en) | Distributed Scheduler | |
EP2618257A2 (en) | Scalable sockets | |
US20220195434A1 (en) | Oversubscription scheduling | |
US20140115601A1 (en) | Data processing method and data processing system | |
US10360150B2 (en) | Techniques for managing memory in a multiprocessor architecture | |
CN112882827A (zh) | 用于负载均衡的方法、电子设备和计算机程序产品 | |
Zheng et al. | CLIBE: Precise Cluster-Level I/O Bandwidth Enforcement in Distributed File System | |
CN115390983A (zh) | 面向虚拟机的硬件资源分配方法、装置、设备及存储介质 | |
JPH0528120A (ja) | マルチプロセツサ処理方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20121016 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20121023 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20121214 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20130402 |