JP4121525B2 - リソース利用率を制御する方法およびコンピュータシステム - Google Patents

リソース利用率を制御する方法およびコンピュータシステム Download PDF

Info

Publication number
JP4121525B2
JP4121525B2 JP2006001432A JP2006001432A JP4121525B2 JP 4121525 B2 JP4121525 B2 JP 4121525B2 JP 2006001432 A JP2006001432 A JP 2006001432A JP 2006001432 A JP2006001432 A JP 2006001432A JP 4121525 B2 JP4121525 B2 JP 4121525B2
Authority
JP
Japan
Prior art keywords
group
limit
utilization
zero
processor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2006001432A
Other languages
English (en)
Other versions
JP2006195985A (ja
Inventor
スコット・エー・リーン
ヒューン・ジェー・キム
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
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 Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of JP2006195985A publication Critical patent/JP2006195985A/ja
Application granted granted Critical
Publication of JP4121525B2 publication Critical patent/JP4121525B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/504Resource capping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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)
  • Stored Programmes (AREA)

Description

本出願は、一般にコンピュータシステムにおけるリソース利用率の制御に関する。
コンピュータ実行可能ファイルを別個のグループにしたいことがよくある。グループは、ユーザログイン識別子、ユーザクラス(例えば、学生、教師、管理者など)、アプリケーション名などによって定義されることがある。さらに、複数の実行可能ファイルを実行する共有コンピューティング環境では、コンピュータ管理者が、実行可能ファイルのグループ分けに基づき実行可能ファイルによるリソース利用率の制限を設けることが有利なことが多い。この制限は、グループ間の分離を維持し、容量を管理し、またはユーザが与えられたサービスレベルだけを受け取ることを確実にするために、プログラム予測精度のために使用することができる。既知のコンピューティングシステムにおいて、そのような制限は、「シェア」(有限なリソースの最大占有率)としてしばしばコード化され(encoded)、「キャップ(cap)」と呼ばれることもある。
シェア割り当て機構を強化するためいくつかの技術が実施されてきた。しかしながら、既知の技術は大きいオーバヘッドを課し、それによりアプリケーションのパフォーマンスが低下する。さらに、既知の技術は、それぞれのグループ内のアプリケーションの特定の組み合わせによりパフォーマンスをさらに低下させる。例えば、既知のキャッピング技術を使用することにより、グループの1つの実行可能ファイルが、同じグループの別の実行可能ファイルがリソースにアクセスする機会を有する前に、グループに割り当てられたすべてのリソース(例えば、プロセッササイクル)を消費してしまうことがある。その場合、同じグループの他の実行可能ファイルが、しばらくの間プロセッサリソースを獲得する機会がなくなる。
本発明は、コンピュータシステムにおけるリソース利用率の制御に関する方法及びシステムを提供する。
一実施形態において、方法は、(i)コンピュータシステムのリソースを使用している実行可能ファイルと関連したグループを識別するステップと、(ii)グループ利用率制限がゼロより大きいときにリソースのグループ利用率制限を減少させるステップと、(iii)リソースのグループ利用率制限がゼロのときにグループの利用率予備量(utilization reserve)を減少させるステップとを含み、操作(i)〜(iii)が、システム割り込みに応じてソフトウェアルーチンによって実行され、(iv)リソースを使用する別の実行可能ファイルをスケジューリングするステップとを含み、スケジューリングするステップが、(a)別の実行可能ファイルが、リソースの非ゼログループ利用率を有するグループに属するか、(b)別の実行可能ファイルが非ゼロ利用率予備量を有するグループに属するかを検証する。
別の実施形態において、コンピュータ可読媒体が、(i)複数のプロセッサのそれぞれと複数のグループのそれぞれのプロセッサ利用率制限を決定し、(ii)複数のグループのそれぞれの利用率予備量を決定する第1のソフトウェアルーチンと、(i)複数のプロセッサを使用している実行可能ファイルのグループを識別し、(ii)プロセッサ利用率制限がゼロより大きいときに識別されたグループのそれぞれのプロセッサ利用率制限を減少させ、(iii)識別されたグループのプロセッサ利用率制限がゼロのときに識別されたグループの利用予備量パラメータを減少させる、システム割り込みに応じて呼び出される第2のソフトウェアルーチンと、複数のプロセッサで実行される実行可能ファイルをスケジューリングする第3のソフトウェアルーチンとを含み、第3のソフトウェアルーチンは、プロセッサの実行可能ファイルが選択されたときに、(i)選択された実行可能ファイルが、ゼロより大きいプロセッサのプロセッサ利用率制限を有するグループに属するか、(ii)実行可能ファイルが、ゼロより大きい利用率予備量を有するグループに属するかを検証する。
別の実施形態において、コンピュータシステムは、コンピュータシステムのプロセッサを使用する実行可能ファイルと関連したグループを識別する手段と、グループ利用率制限がゼロより大きいときにプロセッサのグループ利用率制限を減少させる手段と、プロセッサのグループ利用率制限がゼロのときにグループの利用率予備量を減少させる手段とを含み、識別する手段、減少させる手段、減少させる手段が、システム割り込みに応じて動作可能であり、プロセッサを使用する別の実行可能ファイルをスケジューリングする手段であって、(a)別の実行可能ファイルがプロセッサのゼロでないグループ利用率制限を有するグループに属するか、(b)別の実行可能ファイルが、ゼロでない利用率予備量を有するグループに属するかを検証するスケジューリングする手段とを含む。
いくつかの代表的な実施形態は、シェアまたはキャップを利用する方式によってリソース利用率を制限するシステムおよび方法を対象とする。具体的には、プロセスがグループに編成され、各グループにリソースのシェアが提供される。リソースには、プロセッサ時間、共有チャネルのディスク帯域幅、共有ポート上のネットワーク帯域幅、または単位時間当たりのシェアで表わすことができる任意の他のリソースがある。この考察のために、プロセッサリソースだけを考察する。しかしながら、代表的な実施形態はそのように限定されない。
あらかじめ定義された間隔(例えば、1秒に1回)で、アロケータソフトウェアモジュールが実行されて、グループ基準ごととプロセッサレベルごとにグループへのリソースのどの割り当てが「適正」であるが決定される。各グループの利用できるクロック「チック」の総数が、利用可能なプロセッサの総数と各グループのシェアを使用して計算される。チックは、システム割り込みとシステム割り込みの間の時間と関連付けられた既知の期間であり、多くのシステムではシステム割り込みは一定間隔で起こる。例えば、最新のLinuxシステムにおいて、システム割り込みは、毎秒1000回起こる。しかしながら、ここでの説明のためだけに、システム割り込みが毎秒100回起こると仮定する。各グループのチックの総数の一部分が、各グループに割り当てられたプロセッサ間で分割される。この場合、各グループは、割り当てられたプロセッサに関して計算されたチックの数(グループプロセッサ制限)が許可される。さらに、各グループのチックの総数の一部分は、新しくインスタンス化された実行可能ファイルあるいは以前の1組の割り当て規則に従ってインスタンス化された昔の実行可能ファイルの「慈善(charity)」予備量に割り当てられる。この慈善予備量によって、別のときには(otherwise)プロセッサへのアクセスを受け入れない選択されたプロセスが、ある程度進行できるようになる。
それぞれの割り込み時に、評価ソフトウェアモジュール(accountant software module)が実行される。それぞれのグループを使用して、評価ソフトウェアモジュールは、各プロセッサのチックにより動作する。所定のプロセッサ上でグループがグループプロセッサ制限に達したとき、評価ソフトウェアモジュールは、グループの慈善予備量にチックが残っているかどうかを判定する。残っている場合は、グループの慈善予備量を減少させる。プロセッサ制限に達し慈善予備量が使い尽くされた場合、実行可能ファイルはプロセッサから切り替えられる。また、一実施形態において、スケジューラソフトウェアモジュールが、第2段階のシェア強化を実行する。スケジューラソフトウェアモジュールは、プロセッサ上で次に実行される実行可能ファイルを決定するために使用される。スケジューラソフトウェアモジュールは、グループの慈善予備量が使い尽くされたときにグループプロセッサ制限に達したグループに関連した実行可能ファイルを選択することを許可しない。
次に図面を参照すると、図1は、代表的な一実施形態によりプロセッサリソースを割り当てるシステム100を示す。具体的には、システム100は、CPU101−1〜101−Nで実行される複数の実行可能ファイル(アプリケーション102−1〜102Mとして示した)を含む。システム100は、オペレーティングシステムカーネル内に、どのアプリケーション102をどのCPU101で実行するかを決定するソフトウェアルーチンを含むオペレーティングシステム110を含む。
図1に示したように、オペレーティングシステム110は、アロケータソフトウェアモジュール111を含む。アロケータソフトウェアモジュール111は、処理リソースをそれぞれの所定の期間内でどのように割り当てるかを決定するために使用される。一実施形態において、アロケータソフトウェアモジュール111は、1秒に1回呼び出され、システムクロックによって測定される次の秒にプロセッサリソースの割り当てを決定する。アロケータソフトウェアモジュール111は、グループごとにプロセッサリソースを割り当てる。1つの実施形態において、グループと、各グループに関連付けられたリソースのシェアを定義するために、適切なデータ構造120が維持される。データ構造120は、また、特定のグループに属する実行可能ファイルを実行するためにどのCPU101が割り当てられるかを示す情報を含むことができる。実行可能ファイルが作成されるとき(例えば、「fork」コマンドや他の適切なコマンドによって)、実行可能ファイルの特性(例えば、ユーザログインID、ユーザのクラス、実行可能ファイルのファイル名など)が解析される。この解析によって、プロセスと関連したデータ構造(図示せず)が、適切なグループを反映するように更新される。
アロケータソフトウェアモジュール111は、アロケータソフトウェアモジュール111が呼び出されるたびに、データ構造120に記憶されたシェア情報を使用して次の割り当て期間に各グループが利用可能なプロセッサリソースの総量を計算する。どのグループをどのCPU101に割り当てるかによって、所定のCPU101に割り当てられたグループが、合計100を超えるチックを有することが可能になる。したがって、アロケータソフトウェアモジュール111は、CPUごとにチックを正規化することができる。さらに、アロケータソフトウェアモジュール111は、また、プロセッササイクルの一部分を各グループの慈善予備量に割り当てる。一実施形態において、慈善予備量は、CPU101の全体にわたって適用される。慈善予備量は、割り当て期間が始まった後で作成された新しい実行可能ファイルがプロセッサリソースを得ることを可能にする。また、慈善予備量は、システム割り当て特性が変化する前にインスタンス化された昔の実行可能ファイルがプロセッサリソースを得ることを可能にする。したがって、そのような実行可能ファイルは、「リソース不足(starving)」が防止され、何らかの前進を行うことが可能になる。割り当てデータは、適切なデータ構造(図1の構造130として示した)に記憶されてもよい。
代表的な一実施形態による割り当てデータの生成を示すために、システム100が4つのCPU101を含むと仮定する。また、「学生」グループにシステムプロセッサリソースの51%のキャップが割り当てられると仮定する。グループチックキャップを生成する式「グループ制限=キャップ×プロセッサ数×100」を使用して、学生グループには204のクロックチックが割り当てられる。1つの実施形態において、1クロックチックとグループ制限の1%の大きい方が、慈善予備量に「寄付」される。学生グループの場合、2つのクロックチックが学生慈善予備量に割り当てられる。次に、残りのクロックチックが、CPU101に割り当てられる。学生グループが、3つのCPU(101−1〜101−3)だけで実行するように割り当てられた場合、学生グループのCPUのそれぞれに67のチックが提供される。丸めにより除かれた追加のクロックチックは、学生慈善予備量に寄付される。
さらに、「管理者」グループが、10%のキャップを受け取り、CPU101−1上だけで実行するように割り当てられたと仮定する。その場合、管理者グループは、40(すなわち4×100×0.10)のクロックチックを受け取る。それらのクロックチックのうちの1つが、管理者慈善予備量に寄付される。前述のように、CPU101−1上の67のクロックチックは既に割り当てられている。具体的には、1秒当たりに実行される総数106(すなわち39+67)の時間チックが、CPU101−1に利用可能なたった100のチックと共にCPU101−1に割り当てられている。したがって、1つのCPU101にクロックチックが100だけ割り当てられるように正規化が行われることが好ましい。正規化演算によって生成される丸めの超過分が、慈善予備量に再分配される。
また、「その他」グループが、25%のキャップ(100チック)を受け取り、CPU101−4に割り当てられ、1クロックチックがその他慈善予備量に寄付されると仮定する。
以下の表は、様々なグループと慈善予備量に関して計算されたチックをまとめたものである。
Figure 0004121525
図1のシステム100でチックごとにシステム割り込みが起こり、クロックチック制限を強化するために評価ソフトウェアモジュール112が呼び出される。評価ソフトウェアモジュール112は、それぞれのCPU101上にどの実行可能ファイルがあるかを決定し、実行可能ファイルがどのグループに属するかを決定する。各CPU101に対して、評価ソフトウェアモジュール112は、前に計算されたグループチックを減少させる。特定のグループとCPU101のグループチックカウントがゼロになったとき、評価ソフトウェアモジュール112は、グループごとの慈善予備量内にチックがあるか否かを判定する。慈善予備量内にチックがある場合は、現行の実行可能ファイルが継続され、慈善予備量が減分される。それぞれのCPU101とグループのグループチックカウントがゼロになり、慈善予備量もゼロになったとき、そのグループに属する実行可能ファイルは、それぞれのCPU101から切り替えられる。
スケジューラソフトウェアモジュール113は、実行可能ファイルがCPU101から切り替えられたとき、実行可能ファイルがその動作を完了したとき、実行可能ファイルがスリープ状態になったときなどに、次の実行可能ファイルを決定する。スケジューラソフトウェアモジュール113は、スケジューリングの決定を行うために各CPU101ごとに実行待ち行列(114−1〜114−Nで示した)を保持することがある。スケジューラモジュール113は、既知のスケジューラアルゴリズムを使用して実施し、それ以外に、スケジューラモジュール113は、実行可能ファイルが、それぞれのCPUに残っているチックを有するグループに属するか、または慈善予備量内にチックが残っていることを検証することができる。また、それぞれのCPU101に所定のグループのジョブが残っていない場合は、グループの残りのチックが慈善予備量に提供される。
図2は、代表的な一実施形態により、実行可能ファイルを複数のグループに割り当てるためにクロックチックで測定されたCPUリソースの量を決定するフローチャートを示す。図2に示した操作は、アロケータソフトウェアモジュール111内の適切なコードまたはソフトウェア命令を使用して実施することができる。コードまたはソフトウェア命令は、任意の適切なコンピュータ可読媒体に記憶することができる。1つの実施形態において、図2に示した操作は、1秒に1回実行される。
ステップ201で、適切なデータ構造からグループキャップ情報を取り出す。ステップ202で、次の割り当て期間のグループチックの総数を、CPU全体の可用性(availability)とグループキャップ情報を使用して計算する。グループチック全体のうちのある割合を、それぞれのグループごとの慈善予備量に割り当てる(ステップ203)。ステップ204で、グループチック全体を、各グループの個々に割り当てられたCPUに分割する。ステップ205で、それぞれ個々のCPUのグループチック全体がそれぞれのCPUのチックの可用性を超えないようにグループチックを正規化する。以上の計算で生じた丸め誤差は、慈善予備量に寄付されることがある。
図3は、代表的な一実施形態によりCPU利用率を評価するフローチャートを示す。図3に示した操作は、評価ソフトウェアモジュール112内の適切なコードまたはソフトウェア命令を使用して実施することができる。コードまたはソフトウェア命令は、任意の適切なコンピュータ可読媒体に記憶することができる。1つの実施形態において、図3に示した操作は、各システム割り込み時に実行される。
ステップ301で、検査するCPUを選択する。ステップ302で、CPU上にジョブのないグループに割り当てがあるかどうかを判定する論理比較を行なう。割り当てがある場合は、プロセスフローはステップ303に進み、そこでグループごとの割り当てをそれぞれの慈善予備量に送る。割り当てがない場合、プロセスフローはステップ304に進む。
ステップ304で、現在CPUを使用している実行可能ファイルのグループを決定する。ステップ305で、CPUのグループのチックカウントがゼロより大きいかどうかを判定する論理比較を行う。ゼロより大きい場合は、プロセスフローはステップ306に進み、グループのチックカウントが減分される。そうでない場合、プロセスフローはステップ307に進み、グループの慈善予備量がゼロかどうか判定する別の論理比較を行う。慈善予備量がゼロでない場合、慈善予備量を減少させる(ステップ308)。そうでない場合、実行可能ファイルをCPUから切り替える(ステップ310)。
プロセスフローは、ステップ306と308のそれぞれからステップ309に移る。ステップ309で、CPUを使用するために別のグループが待っているかどうか判定する論理比較を行う。CPUを使用するために別のグループが待っている場合は、現行の実行可能ファイルをCPUから切り替え(ステップ310)、スケジューリングアルゴリズムに従って別のグループの実行可能ファイルがCPUにアクセスすることを許可する。そうでない場合、プロセスフローはステップ311に進む。ステップ311で、検査する別のCPUがあるかどうかを判定する論理比較を行う。調査する別のCPUがある場合、プロセスフローはステップ301に戻る。そうでない場合、プロセスフローは終了する(ステップ312)。
図4は、代表的な一実施形態によりCPUに配置される(placed)実行可能ファイルを選択するフローチャートを示す。図4に示した操作は、スケジューラソフトウェアモジュール113内の適切なコードまたはソフトウェア命令を使用して実施することができる。コードまたはソフトウェア命令は、任意の適切なコンピュータ可読媒体に記憶することができる。図4に示した操作は、実行可能ファイルが終了したとき、実行可能ファイルがスリープ状態になったとき、実行可能ファイルがCPUから切り替えられたとき(図3のステップ310を参照)などに実行されることがある。
ステップ401で、既知または今後開発されるスケジューリングアルゴリズムに従ってそれぞれのCPUの実行待ち行列から実行可能ファイルを選択する。ステップ402で、実行可能ファイルが各CPUのゼロでないチックを有するグループに属しているかどうかを判定する論理比較を行う。そのグループに属する場合は、実行可能ファイルをCPUに入れる(ステップ404)。そうでない場合は、ステップ403で別の論理比較を行う。ステップ403で、実行可能ファイルがゼロでない慈善予備量を有するグループに属しているかどうかを判定する論理比較を行う。そのようなグループに属している場合は、実行可能ファイルをCPUに配置する(ステップ404)。そうでない場合、フロープロセスフローはステップ401に戻り、別の実行可能ファイルを選択する。
いくつかの代表的な実施形態には多数の長所がある。例えば、いくつかの代表的な実施形態は、割り当て操作と評価操作に比較的高い精度がある。さらに、いくつかの代表的な実施形態は、利用操作を管理するシステムリソースにかかるオーバヘッドが比較的低い。アプリケーション性能は、ほとんど妨げられない。また、オーバヘッドが低いため、大きいマルチプロセッサスケーリングを効率的に行うことができる。既知の作業負荷管理(WLM)キャッピング技術と違って、いくつかの代表的な実施形態は、1秒以上の間約0.5パーセントの精度の範囲内で実行可能ファイルを適正に割り当てる。したがって、いくつかの代表的な実施形態は、UNIX(登録商標)プロセスの約95パーセントが1秒未満で完了する場合にかなり改善された性能を示す。さらに、いくつかの代表的な実施形態によれば、任意の事前定義されたスケジューリングスロットに強制的に入れられる代わりに、必要とされるときにグループがリソースを要求することができるので、入出力の頻繁な作業負荷は、きわめて改善された性能を示す。
代表的な一実施形態によるリソースを割り当てるシステムを示す図である。 代表的な一実施形態により複数の実行可能ファイルに割り当てるためにクロックチックで測定されたCPUリソースの量を決定するフローチャートである。 代表的な一実施形態によるリソース利用率を評価するフローチャートである。 代表的な一実施形態によりCPUに配置する実行可能ファイルを選択するフローチャートである。
符号の説明
100・・・システム
101−1〜M・・・CPU
102−1〜M・・・アプリケーション
110・・・オペレーティングシステム
111・・・アロケータソフトウェアモジュール
112・・・評価ソフトウェアモジュール
113・・・スケジューラソフトウェアモジュール
114−1〜M・・・実行待ち行列
120・・・グループ定義/シェア
130・・・CPUごとのグループチックとグループごとの慈善予備量

Claims (9)

  1. (i)コンピュータシステムのリソースを使用している実行可能ファイルに関連したグループを識別するステップ(304)と、
    (ii)前記リソースのグループ利用率制限を、前記グループ利用率制限がゼロより大きいときに減少させるステップ(306)と、
    (iii)前記リソースの前記グループ利用率制限がゼロのときに前記グループの利用率予備量を減少させるステップ(308)であって、操作(i)〜(iii)をシステム割り込みに応じるソフトウェアルーチンによって実行するステップと、
    (iv)前記リソースを使用する別の実行可能ファイルをスケジューリングするステップであって、(a)前記別の実行可能ファイルが、前記リソースのゼロでないグループ利用率制限を有するグループに属しているか、(b)前記別の実行可能ファイルが、ゼロでない利用率予備量を有するグループに属しているかを検証するスケジューリングするステップと
    (v)前記コンピュータシステムで使用可能なリソースの数を決定するステップと、
    (vi)前記グループに関連付けられたシェア制限に前記数を掛けてグループ全体の制限を生成するステップ(202)と、
    (vii)前記グループに割り当てられたリソース間で前記グループ全体の制限を分割して、割り当て期間の前記グループ利用率制限を生成するステップ(204)と
    を含む方法。
  2. 前記利用率予備量に割り当てる前記グループ全体の制限の一部を減少させるステップをさらに含み、前記減少させるステップが、前記分割するステップの前に実行される(203)請求項1に記載の方法。
  3. 前記グループ利用率制限と前記リソースの他のグループのグループ利用率制限が、前記リソースに使用可能な利用率合計を超えたときに、前記リソースの前記グループ利用率制限を正規化するステップ(205)をさらに含む請求項1に記載の方法。
  4. (v)〜(vii)が、1つの割り当て期間に1回呼び出される別のソフトウェアルーチンによって実行される請求項1に記載の方法。
  5. 前記割り当て期間が1秒である請求項4に記載の方法。
  6. 前記グループ利用率制限と前記コード化された利用率が、前記グループの実行可能ファイルによって使用される前記コンピュータシステムのチックを表す請求項4に記載の方法。
  7. 前記コンピュータシステムのプロセッサ(101)を使用する実行可能ファイル(102)に関連したグループを識別する手段と、
    前記グループ利用率制限がゼロより大きいとき前記プロセッサのグループ利用率制限(130)を減少させる手段と、
    前記プロセッサの前記グループ利用率制限がゼロのときに前記グループの利用率予備量を減少させる手段であって、前記識別する手段、デクリメントする手段、および減少させる手段が、システム割り込みに応じて動作可能である手段と、
    前記プロセッサを使用する別の実行可能ファイルをスケジューリングする手段(114)であって、(a)前記別の実行可能ファイルが、ゼロでないグループ利用率制限を有するグループに属しているか、(b)前記別の実行可能ファイルが、ゼロでない利用率予備量を有するグループに属しているかを検証するスケジューリングする手段と、
    前記コンピュータシステムで使用可能なプロセッサの数を決定する手段と、
    前記グループに関連付けられたシェア制限に前記数を掛けてグループ全体の制限を生成する手段と、
    前記グループに割り当てられたプロセッサ間で前記グループ全体の制限を分割して、割り当て期間の前記グループ利用率制限を生成する手段と
    を含むコンピュータシステム。
  8. 前記グループ利用率制限が、前記グループによって使用されるシステムチックの数をコード化する請求項7に記載のコンピュータシステム。
  9. 前記実行可能ファイルが、ゼロである前記プロセッサのグループ利用率制限と、ゼロである利用率予備量とを有するグループに属しているときに、前記プロセッサから実行可能ファイルを取り除く手段をさらに含む請求項7に記載のコンピュータシステム。
JP2006001432A 2005-01-13 2006-01-06 リソース利用率を制御する方法およびコンピュータシステム Active JP4121525B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/034,685 US8108871B2 (en) 2005-01-13 2005-01-13 Controlling computer resource utilization

Publications (2)

Publication Number Publication Date
JP2006195985A JP2006195985A (ja) 2006-07-27
JP4121525B2 true JP4121525B2 (ja) 2008-07-23

Family

ID=35997979

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006001432A Active JP4121525B2 (ja) 2005-01-13 2006-01-06 リソース利用率を制御する方法およびコンピュータシステム

Country Status (3)

Country Link
US (1) US8108871B2 (ja)
JP (1) JP4121525B2 (ja)
GB (1) GB2422225B (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7921425B2 (en) * 2005-03-14 2011-04-05 Cisco Technology, Inc. Techniques for allocating computing resources to applications in an embedded system
US8046766B2 (en) 2007-04-26 2011-10-25 Hewlett-Packard Development Company, L.P. Process assignment to physical processors using minimum and maximum processor shares
US20090077550A1 (en) * 2007-09-13 2009-03-19 Scott Rhine Virtual machine schedular with memory access control
GB201322317D0 (en) 2013-12-17 2014-01-29 Ibm Computer system processes
US11144290B2 (en) * 2019-09-13 2021-10-12 Huawei Technologies Co., Ltd. Method and apparatus for enabling autonomous acceleration of dataflow AI applications

Family Cites Families (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4216528A (en) * 1972-08-03 1980-08-05 Westinghouse Electric Corp. Digital computer implementation of a logic director or sequencer
US4080649A (en) * 1976-12-16 1978-03-21 Honeywell Information Systems Inc. Balancing the utilization of I/O system processors
JPS62175832A (ja) 1986-01-29 1987-08-01 Nec Corp 電子計算機システムの資源管理方式
US5537542A (en) * 1994-04-04 1996-07-16 International Business Machines Corporation Apparatus and method for managing a server workload according to client performance goals in a client/server data processing system
JP3658420B2 (ja) * 1994-04-14 2005-06-08 株式会社日立製作所 分散処理システム
US5675739A (en) * 1995-02-03 1997-10-07 International Business Machines Corporation Apparatus and method for managing a distributed data processing system workload according to a plurality of distinct processing goal types
EP0725340A3 (en) * 1995-02-03 1996-10-02 Ibm Apparatus and method for managing the workload of a distributed data processing system by limiting the consumption of processing capacity
US5748468A (en) * 1995-05-04 1998-05-05 Microsoft Corporation Prioritized co-processor resource manager and method
US6105053A (en) * 1995-06-23 2000-08-15 Emc Corporation Operating system for a non-uniform memory access multiprocessor system
US5790770A (en) * 1995-07-19 1998-08-04 Fujitsu Network Communications, Inc. Method and apparatus for reducing information loss in a communications network
JPH09167141A (ja) * 1995-12-18 1997-06-24 Hitachi Ltd 負荷分散制御方法
US6400819B1 (en) * 1996-03-28 2002-06-04 Hitachi, Ltd. Method and apparatus for executing communication in real-time and data structure for real-time data communication
US6385639B1 (en) * 1996-07-01 2002-05-07 Fujitsu Limited Device and method of controlling intergroup resource utilization
US6067557A (en) * 1996-09-06 2000-05-23 Cabletron Systems, Inc. Method and system for allocating CPU bandwidth by prioritizing competing processes
US6393455B1 (en) * 1997-03-28 2002-05-21 International Business Machines Corp. Workload management method to enhance shared resource access in a multisystem environment
US5925102A (en) * 1997-03-28 1999-07-20 International Business Machines Corporation Managing processor resources in a multisystem environment in order to provide smooth real-time data streams, while enabling other types of applications to be processed concurrently
US6243838B1 (en) * 1997-05-13 2001-06-05 Micron Electronics, Inc. Method for automatically reporting a system failure in a server
US6263359B1 (en) * 1997-05-22 2001-07-17 International Business Machines Corporation Computer resource proportional utilization and response time scheduling
US6119143A (en) * 1997-05-22 2000-09-12 International Business Machines Corporation Computer system and method for load balancing with selective control
US6418459B1 (en) * 1998-06-09 2002-07-09 Advanced Micro Devices, Inc. Isochronous task scheduling structure for a non-real-time operating system
US6477561B1 (en) * 1998-06-11 2002-11-05 Microsoft Corporation Thread optimization
US20020194251A1 (en) * 2000-03-03 2002-12-19 Richter Roger K. Systems and methods for resource usage accounting in information management environments
US6782410B1 (en) * 2000-08-28 2004-08-24 Ncr Corporation Method for managing user and server applications in a multiprocessor computer system
US6859926B1 (en) * 2000-09-14 2005-02-22 International Business Machines Corporation Apparatus and method for workload management using class shares and tiers
GB2383853A (en) * 2001-01-26 2003-07-09 Xmg Ltd A method system and apparatus for networking devices over an asynchronous network such as the internet
US6957435B2 (en) * 2001-04-19 2005-10-18 International Business Machines Corporation Method and apparatus for allocating processor resources in a logically partitioned computer system
US7036123B2 (en) * 2001-04-25 2006-04-25 Sun Microsystems, Inc. System using fair-share scheduling technique to schedule processes within each processor set based on the number of shares assigned to each process group
US20030055863A1 (en) * 2001-07-24 2003-03-20 Spiegel Michael G. Method and apparatus for managing system resources in an information handling system
GB0119145D0 (en) * 2001-08-06 2001-09-26 Nokia Corp Controlling processing networks
US6795928B2 (en) * 2002-03-18 2004-09-21 International Business Machines Corporation Method for managing power consumption of multiple computer servers
US7103745B2 (en) * 2002-10-17 2006-09-05 Wind River Systems, Inc. Two-level operating system architecture
US7243352B2 (en) * 2002-11-27 2007-07-10 Sun Microsystems, Inc. Distributed process runner
JP3835410B2 (ja) 2003-02-13 2006-10-18 日本電気株式会社 計算機システム及びメモリ割り当て量保証値動的変更方法並びにプログラム
US7290260B2 (en) * 2003-02-20 2007-10-30 International Business Machines Corporation Dynamic processor redistribution between partitions in a computing system
US7627506B2 (en) * 2003-07-10 2009-12-01 International Business Machines Corporation Method of providing metered capacity of temporary computer resources
US20040226016A1 (en) * 2003-05-08 2004-11-11 Samsung Electronics Co., Ltd. Apparatus and method for sharing resources in a real-time processing system
US7500241B1 (en) * 2003-10-10 2009-03-03 Avaya Inc. Method and apparatus for scheduling tasks
US7584475B1 (en) * 2003-11-20 2009-09-01 Nvidia Corporation Managing a video encoder to facilitate loading and executing another program
WO2005060575A2 (en) * 2003-12-10 2005-07-07 X1 Technologies, Inc. Performing operations in response to detecting a computer idle condition
US7665090B1 (en) * 2004-03-08 2010-02-16 Swsoft Holdings, Ltd. System, method, and computer program product for group scheduling of computer resources
US8145872B2 (en) * 2004-11-08 2012-03-27 International Business Machines Corporation Autonomic self-tuning of database management system in dynamic logical partitioning environment

Also Published As

Publication number Publication date
GB0600660D0 (en) 2006-02-22
GB2422225A (en) 2006-07-19
US20060156309A1 (en) 2006-07-13
US8108871B2 (en) 2012-01-31
GB2422225B (en) 2009-05-20
JP2006195985A (ja) 2006-07-27

Similar Documents

Publication Publication Date Title
EP3254196B1 (en) Method and system for multi-tenant resource distribution
Grandl et al. Multi-resource packing for cluster schedulers
US8694644B2 (en) Network-aware coordination of virtual machine migrations in enterprise data centers and clouds
US9069610B2 (en) Compute cluster with balanced resources
EP3553657A1 (en) Method and device for allocating distributed system task
JP4185103B2 (ja) 実行可能プログラムをスケジューリングするためのシステム及び方法
Yeung et al. Horus: Interference-aware and prediction-based scheduling in deep learning systems
CA2780231C (en) Goal oriented performance management of workload utilizing accelerators
KR101651871B1 (ko) 멀티코어 시스템 상에서 단위 작업을 할당하는 방법 및 그 장치
KR101553649B1 (ko) 멀티 코어 장치 및 멀티 코어 장치의 작업 스케줄링 방법
WO2016078178A1 (zh) 一种虚拟cpu调度方法
KR20130088513A (ko) 멀티코어 시스템의 태스크 분배 방법 및 장치
Pollard et al. Evaluation of an interference-free node allocation policy on fat-tree clusters
KR101695013B1 (ko) 적응형 자원 할당 및 관리 방법
JP4121525B2 (ja) リソース利用率を制御する方法およびコンピュータシステム
JP2022539955A (ja) タスクスケジューリング方法及び装置
CN111338785A (zh) 资源调度方法及装置、电子设备、存储介质
Hu et al. Job scheduling without prior information in big data processing systems
KR102045125B1 (ko) 분산환경에서의 cda 프로토콜을 활용한 자원할당방법 및 이를 적용한 기록매체 및 분산처리장치
CN114546606A (zh) 非易失性存储器存储模块及其操作方法
Zhao et al. Insight and reduction of MapReduce stragglers in heterogeneous environment
CN104731662B (zh) 一种可变并行作业的资源分配方法
US8245229B2 (en) Temporal batching of I/O jobs
Kambatla et al. UBIS: Utilization-aware cluster scheduling
KR101639947B1 (ko) 하둡 선점 데드라인 제약 스케줄링 방법 및 그 방법을 수행하는 컴퓨터프로그램과, 그 프로그램이 기록된 매체

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070502

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070801

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080402

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080428

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110509

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4121525

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110509

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120509

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120509

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130509

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130509

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250