JP2007529079A - 自己調節スレッド化モデルによるアプリケーションサーバのためのシステム及び方法 - Google Patents

自己調節スレッド化モデルによるアプリケーションサーバのためのシステム及び方法 Download PDF

Info

Publication number
JP2007529079A
JP2007529079A JP2007503125A JP2007503125A JP2007529079A JP 2007529079 A JP2007529079 A JP 2007529079A JP 2007503125 A JP2007503125 A JP 2007503125A JP 2007503125 A JP2007503125 A JP 2007503125A JP 2007529079 A JP2007529079 A JP 2007529079A
Authority
JP
Japan
Prior art keywords
thread
server
threads
requests
queue
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2007503125A
Other languages
English (en)
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.)
BEA Systems Inc
Original Assignee
BEA Systems Inc
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 BEA Systems Inc filed Critical BEA Systems Inc
Publication of JP2007529079A publication Critical patent/JP2007529079A/ja
Pending legal-status Critical Current

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
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • 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
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5011Pool
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5018Thread allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5021Priority
    • 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
    • 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)
  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】自己調節スレッド化モデルによるアプリケーションサーバのためのシステム及び方法を提供する。
【解決手段】自己調節スレッド化モデルによるアプリケーションサーバのためのシステム及び方法。サーバ待ち行列は、優先順位スキームとして用いられ、受信した要求に関連するいくつかのエントリをそこに含み、これによってエントリは、単にスレッドの数だけよりも明示的な優先順位又はシェア値を有することができる。必要と考えられる場合はいつでもスレッドを生の数値データで表すか又は利用可能にされるスレッドの数に対する制約を表すための柔軟性が保持される。
【選択図】図2

Description

著作権の通知
この特許文書の開示の一部分は、著作権の保護を受ける内容を含んでいる。著作権所有者は、特許商標事務局の特許ファイル又は記録にあるような特許文書又は特許開示のファクシミリ複製を誰が行っても異論はないが、それ以外はあらゆる著作権を保持するものである。
優先権の請求
アンノ・ランゲン及びナレシュ・レバヌルにより2004年5月20日出願で本明細書において引用により組み込まれている「自己調節スレッド化モデルによるアプリケーションサーバのためのシステム及び方法」という名称の米国特許仮出願第60/572,938号(代理人整理番号:BEAS−01560US0)。
アンノ・ランゲン及びナレシュ・レバヌルにより2005年5月19日出願で本明細書において引用により組み込まれている「自己調節スレッド化モデルによるアプリケーションサーバのためのシステム及び方法」という名称の米国特許出願第_____号(代理人整理番号:BEAS−01560US1)。
本発明は、一般的にはアプリケーションサーバ及びメッセージングシステムに関し、具体的には、自己調節スレッド化モデルによるアプリケーションサーバのためのシステム及び方法に関する。
典型的なアプリケーションサーバ又はウェブサーバ環境においては、恐らく何百又は何千の同時ユーザ(クライアント)が存在し、これらのクライアントの各々がサーバに要求を送信する可能性がある。図1は、このような環境の例を示している。最新サーバ100は、多くのプロセッサ及びこれらのプロセッサに情報を提供する多くのスレッド102を有することができる。スレッドは、クライアント104、106、108から要求110、112、114を取り出し、それらを待ち行列のような方式でプロセッサに付加する。用いられるスレッドの実際の数は、サーバの性能、及び多数のユーザに対処するその機能に大きな影響を及ぼす。しかし、最適な数のスレッドを計算することは複雑な処理である。
この問題に対する1つの手法は、スレッドの数がプロセッサの数を大きく超えるように更に多くのスレッドを追加することであった。これによって要求がほぼ直ちにスレッドの中に送られることが保証されるが、これらの要求がプロセッサによって迅速に取り上げられることは保証されない。より最新の代替法は、変動する数のスレッドが内部で作動するスレッドプールを作成することである。スレッドの実際の数は、次に管理者によって微調整され、特定のランタイム環境に対して最良の性能をもたらすことができる。しかし、この処理は、管理者の技術に大きく依存し、それが非常に環境依存的かつ静的であるために、最も役に立つのは、テスト・ベンチング及びマーケティング目的のみである。現実の状況では、環境は非常に変化するので、この静的手法は満足できるものではない。
従って、必要とされるものは、サーバが作業負荷の客観的予測に基づき同時スレッドの最適数を自動的に判断して実施することを可能にするための手段である。アプリケーションサーバが位置する場所(オペレーティングシステムよりも上位)の制限のために、このスレッド制御は、オペレーティングシステム内に組み込むことはできないが、より高いレベルに存在することができるべきである。従って、アプリケーションサーバ内のスレッドの数及びこれらを送る待ち行列を制御するための手段があるべきである。
本発明の実施形態により、自己調節スレッド化モデルによるアプリケーションサーバのためのシステム及び方法が提供される。実施形態によると、サーバ待ち行列は、優先順位スキームとして用いられ、受信した要求に関連するいくつかのエントリをそこに含み、これによってエントリは、単にスレッドの数だけよりもビジネスユーザに自然で身近な明示的な優先順位を有することができる。必要と考えられる場合に生の数値データでスレッドを表し(例えば、特定数のスレッドが利用可能にされなければデッドロックすると考えられる既知の呼び出しシーケンスがある場合)、又はシステムを通じて又は作業負荷ベースで利用可能とされるスレッドの数に対する制約を表す柔軟性は、依然として保持される。
実施形態により、優先順位は、「シェア」つまり要求を受信することになるエンティティ間の比例優先順位を反映する抽象的表現として特定することができる。その総数は任意であり、恐らく100シェアよりも多い場合があるので、シェアは、百分率のスレッド使用と同一ではないが、それらは類似している。シェアは、各エンティティに割り当てられたスレッド使用(スレッド数による)を判断するものである。システム(又は、その上で作動するアルゴリズム)は、次に、長期間にわたってスレッドの使用(スレッドタイムによる)がこれらのシェアによって分配されることになることを保証する。例えば、エンティティに割り当てられた2倍の時間又はスレッド分を使用するいかなるエンティティも、次に、相対使用割合を均衡状態に戻すようにペナルティを科せられることになる。
実施形態により、ランタイム中にアルゴリズムもまた用いられて、スレッドプールの大きさを定め、次に、スレッドをプール内に割り当てることができる。
実施形態により、優先待ち行列が維持される。各要求しているエンティティ、例えばクライアントは、待ち行列の中に入って相対シェアに従って離間した要求を出すことができる。従って、例えば、エンティティがその割り当てを超えていなければ、割り当てを使い果たしたか又はより低い時間ベースの割り当て又はシェアを有する別のエンティティに比較して、その要求は、待ち行列の比較的高位置に配置することができ、スレッドの獲得を直ちに開始することになる。
実施形態により、最大スレッド制約に対して、システムは、優先待ち行列内及び最大スレッド制約待ち行列内にも要求を保持するために別々の待ち行列を維持することができる。最大スレッド制約待ち行列が消去されると、優先待ち行列内のあらゆる同様の項目(すなわち、同じ制約に関する何か)を実行することが許されることになる。
実施形態により、スレッドプールのサイズ設定は、既存プールの1つによる増分又は減分にまで導くことができる。これは、定期的に、例えば1秒又は2秒毎に実施される。
自己調節スレッド化モデルの全体的結果は、すぐに使える性能におけるサーバの劇的改善である。スレッド特性は、特定の必要性に適するように更に調整することができる。この特徴はまた、サーバ顧客が彼らのシステムの設定により柔軟性を有することを可能にし、彼らに特定のビジネス論理又は顧客必要性の組などに対して彼らのスレッド化モデルに優先順位を付ける方法を提供する。
現在、アプリケーションサーバ顧客は、デッドロックを回避して差異化サービスをもたらすための新たなスレッドプールを定めてその大きさを設定する。これは、かなり困難な処理である。有能なソフトウエア管理者チームが、最適な性能のための設定の解明に数日を費やす場合がある。
本発明の実施形態により、自己調節サーバは、スレッドの数を動的に調整してデッドロックを回避し、並行制約による最適な処理量を達成する。これはまた、差異化サービスの目的も満たすものである。これらの目的は、応答時間ゴール、シェア、及び優先順位で表される。
実施形態により、システムは、作業負荷管理に関する要件、実行待ち行列の一掃、スレッドカウント調節、及び過負荷保護に対処する。サーバ内の多くの実行待ち行列が崩壊して、単一の優先順位ベース待ち行列になることができる。システムは、優先順位が高い作業が待ち行列でより少ない時間を費やす優先順位ベースの作業スケジューリング方式を実施する。スケジューリングは、リソース制約を考慮する。主に着目する点は、拡張可能なスケジューリングモデルを作り、管理者が作業負荷管理規則を指定することを可能にすることである。
本発明の実施形態により、自己調節スレッド化モデルによるアプリケーションサーバのためのシステム及び方法が提供される。実施形態によると、サーバ待ち行列は、優先順位スキームとして用いられ、受信した要求に関連するいくつかのエントリをそこに含み、これによってエントリは、単にスレッドの数だけよりもビジネスユーザに自然で身近な明示的な優先順位を有することができる。必要な場合に生の数値データでスレッドを表し(例えば、特定数のスレッドが利用可能にされなければデッドロックすると考えられる既知の呼び出しシーケンスがある場合)、又はシステムを通じて又は作業負荷ベースで利用可能とされるスレッドの数に対する制約を表す柔軟性は、依然として保持される。
実施形態により、優先順位は、「シェア」つまり要求を受信することになるエンティティ間の比例優先順位を反映する抽象的表現として特定することができる。その総数は任意であり、恐らく100シェアよりも多い場合があるので、シェアは、百分率のスレッド使用と同一ではないが、それらは類似している。シェアは、各エンティティに割り当てられたスレッド使用(スレッド数による)を判断するものである。システム(又は、その上で作動するアルゴリズム)は、次に、長期間にわたってスレッドの使用(スレッドタイムによる)がこれらのシェアによって分配されることになることを保証する。例えば、エンティティに割り当てられた2倍の時間又はスレッド分を使用するいかなるエンティティも、次に、相対使用割合を均衡状態に戻すようにペナルティを科せられることになる。
実施形態により、ランタイム中にアルゴリズムもまた用いられて、スレッドプールの大きさを定め、次に、スレッドをプール内に割り当てることができる。
実施形態により、優先待ち行列が維持される。各要求しているエンティティ、例えばクライアントは、待ち行列の中に入って相対シェアに従って離間した要求を出すことができる。従って、例えば、エンティティがその割り当てを超えていなければ、割り当てを使い果たしたか又はより低い時間ベースの割り当て又はシェアを有する別のエンティティに比較して、その要求は、待ち行列の比較的高位置に配置することができ、スレッドの獲得を直ちに開始することになる。
実施形態により、最大スレッド制約に対して、システムは、優先待ち行列内及び最大スレッド制約待ち行列内にも要求を保持するために別々の待ち行列を維持することができる。最大スレッド制約待ち行列が消去されると、優先待ち行列内のあらゆる同様の項目(すなわち、同じ制約に関する何か)を実行することが許されることになる。
実施形態により、スレッドプールのサイズ設定は、既存プールの1つによる増分又は減分にまで導くことができる。これは、定期的に、例えば1秒又は2秒毎に実施される。
自己調節スレッド化モデルの全体的結果は、すぐに使える性能におけるサーバの劇的改善である。スレッド特性は、特定の必要性に適するように更に調整することができる。この特徴はまた、サーバ顧客が彼らのシステムの設定により柔軟性を有することを可能にし、彼らに特定のビジネス論理又は顧客必要性の組などに対して彼らのスレッド化モデルに優先順位を付ける方法を提供する。
図2は、本発明の実施形態により、複数のクライアントがスレッド及び優先待ち行列を用いてサーバにアクセスする環境の図を示している。図2に示すように、サーバ120は、多くのプロセッサ及びこれらのプロセッサに情報を提供する多くのスレッド122を有することができる。優先待ち行列124は、クライアント104、106、108から要求110、112、114を取り出し、エントリを待ち行列に入れ、エントリをその後プロセッサに付加するスレッドにエントリを送信する(126)前に、予め設定されたあらゆるシェア値又は制約によってエントリに優先順位を付ける。
図3は、本発明の実施形態によってスレッドを用いてサーバにアクセスする処理の流れ図を示している。図3に示すように、段階130において、サーバは、シェア値に従ってエンティティ間でスレッドリソースを共有するように設定される。これは、管理者がシェア値を数値的に入力するコンソール入力を通して又は何らかの他のタイプの装置を通して行うことができる。段階132において、サーバは、クライアントから要求を受信する。段階134において、要求は、シェア値によって及び各エンティティがスレッドタイムを既にどれくらい使用したかに基づいて優先待ち行列に入れられる。段階136において、要求が優先待ち行列から取り出され、プロセッサによって処理するためにスレッドに呈示される。
実施の詳細
作業技術者及びアプリケーション管理者は、これらの特徴の主要なユーザである。管理者は、公平なシェア及び応答時間ゴールのようなアプリケーションのスケジューリング目的を表明する。この節の関連で用いられる場合、以下の定義が用いられる。
制約作業セット−作業は、共有するリソースに基づき分類することができる。このセットにおける全ての作業の性能は、共有リソースの容量によって制約される。
エントリポイント−例には、RMI方式記述子、HTTP、URI、MDB、及び「JCA 1.5 WorkManager」インスタンスが含まれる。
フェアシェア(fair share)−スレッドを使用する権利。サービスクラスがスレッドを求めて競合すると、それらは、そのそれぞれのシェアに比例してスレッドを割り当てられることになる。この比率は、サービスクラスが競合する間の十分に長い期間の平均としてのみ実現されるものである。他にアクティブなものがなければ、全てのスレッドは、ある一定のサービスクラスに割り当てることができる。
自己調節−自動的に低レベルカーネルパラメータを設定するサーバの機能。管理者は、管理者が理解するアプリケーション要件、例えば応答時間ゴールを定義することができ、サーバは、相応にその低レベルパラメータを調節することになる。
応答時間ゴール−サーバ内のエントリポイントに到達する要求と送信されている応答との間に経過する可能性があるミリ秒の最大数に対するゴール。
サービスクラス−サービスクラスは、サーバ内の作業を分類するものである。目的は、個々の要求ではなくサービスクラスに対して表されて追跡される。システムは、それが待機状態になる前に要求のサービスクラスを判断することができるべきである。一部の有用なサービスクラスは、エントリポイント、J2EEモジュール、トランザクション名、現行ユーザ、又は何らかの指定作業域に従って分類することで発生する。
スケジューリングポリシー−要求の待機継続期間をそのサービスクラス及び競合サービスクラスからの要求に基づき判断する。
作業負荷の管理
この特徴は、サーバがサービスクラス、制約、及びサーバ内で観察された負荷状況を用いて作業をスケジュールに入れる方法を説明する。サーバは、優先待ち行列で待機状態になった作業の様々なクラスに対して異なるスケジューリングポリシーを許すものである。これは、サービスクラスを提出した作業によって特定することによって可能である。この特徴は、システムに対して、優先順位が高い作業が後で到着する時でさえも、重要でない作業の前に優先順位の高い作業をスケジュールに入れさせる。競合期間中、所定のサービスクラスに情報提供するスレッドの数は、その表明した目的に依存する。制約は、デッドロック及び過負荷条件中にカーネルが作業を処理すべき方法を定める。
自動スレッドカウント調節
サーバは、最大処理量を得るためにかつ最小並行性保証を実施するためにそのスレッドカウントを自動的に調節する。「threadsIncrease」又は「threadsMaximum」のようなパラメータは、もはや必要ない。
起動時に作成される実行待ち行列の低減
従来の実施では、サブシステムは、デッドロック防止、最小スレッド保証などのような様々な理由でそれ自身の実行待ち行列を作成する。自己調節は、複数の実行待ち行列を作成してサービスクラス及び制約を用いてこれらの要件を満たす必要性を取り除くものである。
過負荷保護
過負荷保護は、重負荷の下でのサービスの低下からサーバを保護するものである。過負荷条件において、サーバは、設定可能な方法で要求を拒絶する。管理者は、後でサーバが要求を拒絶する場合がある閾値待ち行列長さを指定することができる。優先順位の低い要求のバーストは、拒絶される可能性が最も高い。彼らはまた、個々のサービスクラスに対してより具体的な閾値を指定することができる。
JCA 1.5 WorkManager
「JCA 1.5 WorkManager」APIは、サーバの作業をスケジュールに入れるアダプタに対する方法を提供する。このAPIは、スレッドスケジューリング機能性を公開するものである。アプリケーションは、「WorkManager」APIを用いて非同期的に作業を実行し、実行状態に関する通知を受信することができる。
作業負荷管理の機能説明
管理者は、以下の例に示すように、特別の目的を表明するためにスケジューリングポリシーを定めることができ、かつ制約を表すことができる。
Figure 2007529079
配備記述子及びRMI記述子は、次に、「ContextShopping」及び「minThreadsForPluginMaxProcesses」のような名称を参照し、これらをエントリポイントに付加することができる。
フェアシェアは、複数のサービスクラスが競合する限り、各々によって用いられるスレッドの平均数がそのフェアシェアに比例するように、スケジューリング論理に反映される。例えば、2つのサービスクラスA及びBのみがあり、それぞれ80及び20のフェアシェアを有する状況を考える。両方のサービスクラスが十分に要求される、つまりゼロ思考時間かつスレッドよりもクライアントが多い期間中に、A又はBを代表してスレッドが作業することになる確率は、それぞれ80%又は20%になる傾向があることになる。スケジューリング論理は、AがBよりも遙かに長くスレッドを用いる傾向がある時でさえもこれを保証する。
応答時間ゴールは、サービスクラスを差異化することができる。システムは、個々の要求に対して応答時間ゴールを満たそうとしない。むしろそれは、観察された平均スレッド使用時間を差し引くことによってサービスクラスに対する許容待機時間を計算する。次に、それは、各サービスクラスに対する平均待機がその許容待機時間に比例するように要求をスケジュールに入れることができる。例えば、2つのサービスクラスA及びBのみがあり、それぞれ応答時間ゴールが2000ms及び5000msであり、かつ個々の要求がスレッドを用いる時間がこれよりも遙かに短い状況を考える。両方のサービスクラスが十分に要求される、つまりゼロ思考時間かつスレッドよりもクライアントが多い期間中では、システムは、平均応答時間を2:5の比率に保つようにスケジュールに入れ、それによってそれが、表明したゴールの常分数又は公倍数になるようにすることができる。
スケジューリング実行の理解は、スケジューリングポリシーの理解に役立つものである。各サービスクラスは増分を有し、その間隔で離間した仮想時間スタンプでイベント待ち行列に要求を入力することができる。優先順位の高いものは、小さな増分によって実行される。スケジューリングポリシーは、以下のように説明することができる。
応答時間
属性「goal−ms」をミリ秒で表すと、増分は、以下のようになる。
((goal−T)Cr)/R
ここで、Tは、平均スレッド使用時間、Rは到着率、Crは、フェアシェアに対して応答時間ゴールに優先順位を付ける係数である。
フェアシェア
属性をデフォルトシェアの百分率で表す。従って、デフォルトは100である。増分は、以下のようになる。
Cf/(PRT)
ここで、Pは百分率、Rは到着率、Tは、平均スレッド使用時間、Cfは、応答時間ゴールよりも低くフェアシェアの優先順位を付けるフェアシェアに対する係数である。
コンテキスト
現行ユーザ又はその役割、クッキー、又は作業域フィールドのようなコンテキスト情報を指名サービスクラスにマップする複数の場合がある。
SubordinateStepResponseTime
「PrimaryStepResponseTime」を指名する属性「primary」を有する。
PrimaryStepResponseTime
属性「goal−ms」をミリ秒で表すと、増分は、応答時間ゴールと同様に計算される。主要段階に対する下位段階の比率を用い、許容待機を得るために下位段階のその多くの平均スレッド使用を差し引く。主要段階に下位段階を加えた全ての段階に対する到着率で許容待機を割算し、応答時間係数で乗算する。
固定増分
属性「increment」を有する。
フェアシェア係数は、到着率及び平均スレッド使用時間の最大積の約1000倍になるように選択される。応答時間係数は、応答時間ポリシーの平均増分がフェアシェアポリシーの平均増分の10分の1でしかないように選択される。
制約
制約を定義してエントリポイントのセットに適用することができ、これは、本明細書で制約作業セットと呼ぶ。
max−threads
制約作業セットからの要求を実行する並行スレッドの数を制限する。デフォルトは無制限である。例えば、10の最大スレッドで定められ、3つのエントリポイントによって共有された制約を考える。スケジューリング論理は、10を超えないスレッドが3つのエントリポイントを組合せたものからの要求を実行していることを保証する。
min−threads
デッドロックを回避するためにサーバが制約作業セットの要求に割り当てることになるスレッドの数を保証する。デフォルトはゼロである。「min−threads」値の1は、例えば、ピアから同期的に呼び出される複製更新要求に有用である。
容量
サーバは、その容量に達した時のみに要求を拒絶し始める。デフォルトはゼロである。容量は、待ち行列に入れられているか又は実行されている制約作業セットからの全ての要求を含むことに注意されたい。この制約は、主としてそれ自身のフロー制御を行うJMSのようなサブシステムを意図したものである。この制約は、全体的な待ち行列閾値から独立している。
異なるスケジューリングポリシー及び制約は、以下のように相互作用する。
上記では、スケジューリングポリシーは、スケジューリングを同じポリシーを用いる他の作業に関連付けることによってフェアシェア及び応答時間に基づくことができると説明した。フェアシェア及び応答時間ポリシーの混合は、応答時間スケジューリングに好ましい顕著なバイアスでスケジュールに入れられる。
最小スレッド制約は、フェアシェアを増加させない。それは、ほぼデッドロックされたサーバに対してのみ問題になる。しかし、次に、それは、システムがそのサービスクラスが最近そのフェアシェアよりも多く得ている時でさえも最小スレッド制約作業セットからの要求をスケジュールに入れるという意味で、切り札を出すことになる。
最大スレッド制約は、必ずというわけではないが、サービスクラスがそのフェアシェアを取り出すこと又はその応答時間ゴールを満たすことを防ぐ場合があると考えられる。最大スレッド制約に達した状態で、サーバは、並行実行の数が限度よりも低くなるまでこの制約タイプの要求をスケジュールに入れないことになる。サーバは、その後にフェアシェア又は応答時間ゴールに基づき作業をスケジュールに入れることになる。
「admin_rmi」及び「admin_html」待ち行列要件は、最小スレッド制約及びデフォルトフェアシェアによって対処することができる。システム待ち行列要件もまた、最小スレッド制約によって満足される。マルチキャスト待ち行列要件は、最大スレッドも最小スレッドも1に等しく設定することによって満足される。これは、マルチキャスト要求を処理している、従って、順序付けを保証している唯一のスレッドが存在することを保証するものである。
機能要件
ディスパッチポリシー及び制約は、3レベル、すなわち、「config.xml」で全体的に、「weblogic−application.xml」でアプリケーション毎に、又は「weblogic」配備記述子の「weblogic−ejb−jar.xml」及び「weblogic.xml」で特定の「J2EE」モジュールに対して定義することができる。これらの名称は、対応するタグの「dispatch−policy」、「max−threads」、及び「min−threads」から用いることができる。「max−threads」及び「min−threads」タグは、それぞれ「max−threads−constraint」又は「min−threads−constraint」の名称、又はある一定の番号のいずれかである値をとる。「weblogic−application.xml」においては、これらのタグは、アプリケーションを通じたデフォルトを指定する。「weblogic.xml」及び「weblogic−ejb−jar.xml」においては、それらは、構成要素を通じたデフォルトを最上位レベルで指定する。「weblogic.xml」においては、マッピングは、指名「dispatch−policy」、「max−threads」、又は「min−threads」が「uri−patterns」又はサーブレット名に対してマップされる「web.xml」のフィルタマッピングとの類似が許される。「max−threads−mapping」及び「min−threads−mapping」もまた数値を許容する。「weblogic−ejb−jar.xml」においては、「weblogic−enterprise−bean」の下での既存の「dispatch−policy」タグの値は、指名された「dispatch−policy」とすることができる。下位互換性に対して、それはまた、「ExecuteQueue」を指名することができる。更に、システムはまた、「dispatch−policy」、「max−threads」、及び「min−threads」が、現在の「isolation−level」タグと同様に方法のリストに対して指名された(又は、制約に対する数値を用いて無指名の)ポリシー及び制約を指定することを可能にすることができる。
以下は、「weblogic−application.xml」からの例である。
Figure 2007529079
以下は、サービスクラスを構成要素レベルで定義するRMI記述子からの例である。
Figure 2007529079
「max−threads」値は、番号、指名「max−threads−constraint」、又は指名接続プール(JDBC又はJCA)とすることができる。リソースの大きさが動的であれば、関連する最小又は最大スレッド制約もまた動的であることになり、リソースの大きさが変わると変化する。
自動スレッドカウント調節の機能説明
優先待ち行列に情報提供するスレッドプールは、処理量を最大にするように自動的にその大きさを変化させる。管理者は、もはや「threadsIncrease」及び「threadsMaximum」のような「ExecuteQueueMBean」属性を指定する必要はない。優先待ち行列は、2秒毎に処理量をモニタし、収集されたデータを用いてスレッドカウントを変える必要があるかを判断する。例えば、過去にスレッドが多いほど処理量がよかったならば、サーバは、スレッドカウントを増加させることになる。同様に、過去に少ない数のスレッドが同じ処理量をもたらした場合は、サーバは、スレッドカウントを低減することになる。
機能要件
ユーザ入力は必要ではない。サーバは、処理量履歴及び待ち行列の大きさに全体的に基づいてスレッドカウントを判断する。
開始機能説明上に作成された実行待ち行列の低減
異なる実行待ち行列を崩壊させて単一優先待ち行列にする。過去においては、デッドロックを防ぎ(admin_rmi、非ブロッキング)、作業に優先順位を付け(システム)、順序付けを達成する(マルチキャスト)ために異なる実行待ち行列を作成することが必要であった。これらの要件は、サービスクラスを待機状態の作業に関連付けることによって満足される。全ての作業は、優先待ち行列に提出することができ、スレッド使用時間は、待ち行列に存在するサービスクラスのタイプに基づいている。
機能要件
以下の表は、既存の実行待ち行列をサービスクラス及び制約にマップすることができる方法を説明している。
Figure 2007529079
過負荷保護の機能説明
管理者は、サーバがその後要求を抑制し始める過負荷閾値を計算することができる。抑制は、以下のように行われる。
サーバが、最小スレッド制約セットを具備しない低次のフェアシェアから始めて要求を拒絶する。優先順位が高いサービスクラス又は最小スレッド制約を有するサービスクラスは、依然として受け入れられる。
過負荷条件が支配を続ける場合、サーバが過負荷条件から回復することができないので、優先順位の高い要求もまた拒絶されることになる。最小スレッド制約を有する要求及び管理要求は、依然として受け入れられることになる。
作業が拒絶された場合、明確なエラー応答が送信される。「503:サーバ使用中」エラーがHTTPに送信され、遠隔例外がRMIに対して投入され、これによってクラスターは、フェイルオーバーするクライアントを知ることができると考えられる。
機能要件
待ち行列限界は、全体レベルで又は作業クラス毎に指定することができる。全体的閾値は、「KernelMBean」属性として公開することができる。作業のクラスは、「制約」内の容量要素を用いて閾値を定義することができる。容量要素を設定する方法の例を以下に示している。
Figure 2007529079
容量制約は、全体的閾値を無効にする。これは、サーバが、全体的閾値に達した時でさえ要求を受け入れ続けることになることを意味する。作業は、容量制約に達した時にのみ拒絶されることになる。これは、自身のフロー制御を実行して全体的待ち行列閾値を用いることができないサブシステムに有用である。
HTTP過負荷アクション
システムは、サーバがクラスター内にある場合、503エラーコードを送信することになる。これは、プラグインにフェイルオーバーさせることになる。サーバがクラスターに属さない場合、システムは、顧客が過負荷応答として用いられることになるエラーJSPを設定することを可能にすることができる。顧客はまた、過負荷アクションとして宛先変更を指定することにより、過負荷期間中に別のサーバに要求を宛先変更することができる。
RMI過負荷アクション
サーバがクラスター内にある場合、システムは、「RemoteException」のサブクラスである「ServerOverloadedException」を投入する。クライアントは、これを回復可能な例外と解釈し、別のクラスターノードにフェイルオーバーすることになる。非クラスターシナリオでは、顧客は、宛先変更のために代替的なサーバを指定することができる。過負荷期間中のRMI要求は、この代替的なサーバに宛先変更されることになる。
サーバは、拒絶応答を送信するために読取スレッドを用いないことになる。応答の書込みは、遅い可能性があるI/Oを伴っている。応答を書き込むために読取スレッドを用いることは、読取スレッド全てを遮断して到着するソケット多重化を防ぐことができる。
サブシステムは、過負荷通知のためにカーネルに登録することができる。全体的待ち行列閾値が超過すると、カーネルは、その聴取者に通知することになる。この通知を使用して、作業を抑制してサブシステムレベルに戻すことができる。
機能要件
「WorkManager」は、アプリケーションスコープ又はグローバルとすることができる。アプリケーションスコープ「WorkManager」は、以下のような「weblogic−application.xml」内に定義することができる。
Figure 2007529079
アプリケーションから「WorkManager」にアクセスするために、ローカル環境(java:comp/env)内にその名称を探すことになる。例えば、以下のようになる。
Figure 2007529079
システムは、各「WorkManager」定義に対してスレッド群を作成しない。全ての「WorkManager」インスタンスは、デフォルト待ち行列を共有する。それらは、その「fair−share」又は「response−time−goal」に基づき優先順位を付けられる。
本発明は、本開示の教示に従ってプログラムされた従来の汎用又は専用デジタルコンピュータ又はマイクロプロセッサを使用して好都合に実施することができる。ソフトウエア技術の当業者には明らかなように、熟達したプログラマーは、本開示の教示に基づいて適切なソフトウエアコーディングを容易に作成することができる。
一部の実施形態では、本発明は、コンピュータプログラム製品を含み、これは、本発明の処理のいずれかを実行するようにコンピュータをプログラムするのに使用することができる命令をそこに/その上に記憶した記憶媒体(又は複数の媒体)である。記憶媒体は、以下に限定されるものではないが、フロッピー(登録商標)ディスク、光ディスク、DVD、CD−ROM、マイクロドライブ、及び光磁気ディスクを含むあらゆるタイプのディスクと、ROMと、RAMと、EPROMと、EEPROMと、DRAMと、VRAMと、フラッシュメモリデバイスと、磁気又は光学式カードと、ナノシステム(分子メモリICを含む)と、あるいは命令及び/又はデータを記憶するのに適するあらゆるタイプの媒体又はデバイスとを含むことができる。
本発明の以上の説明は、例示及び説明のために提供したものである。網羅的であること又は本発明を開示した通りの形に限定することを意図していない。実施形態は、本発明の原理及びその実用的応用を最も良く説明し、それによって当業者が様々な実施形態に関して及び考えられる特定用途に適する様々な修正を用いて本発明を理解することを可能にするように選択して説明したものである。本発明の範囲は、特許請求の範囲及びその均等物により規定されるものとする。
複数のクライアントがスレッドを用いてサーバにアクセスする環境を示す図である。 本発明の実施形態によって複数のクライアントがスレッド及び優先待ち行列を用いてサーバにアクセスする環境を示す図である。 本発明の実施形態によってスレッドを用いてサーバにアクセスする処理の流れ図である。
符号の説明
104、106、108 クライアント
110、112、114 要求
120 サーバ
122 スレッド
124 優先待ち行列

Claims (18)

  1. アプリケーションサーバにおける自己調節スレッド化モデルのためのシステムであって、
    1つ又はそれ以上のプロセッサを含むサーバと、
    クライアントからの要求を受信し、それらの要求をプロセッサに通信する1つ又はそれ以上のスレッドと、
    前記スレッドの性能を最適化するために、スレッドをシェア値に従って複数の要求に割り当てるための優先待ち行列と、
    を含むことを特徴とするシステム。
  2. 前記サーバは、複数のプロセッサを含むことを特徴とする請求項1に記載のシステム。
  3. エントリが、比例配分された時間値に従って前記優先待ち行列に入れられることを特徴とする請求項1に記載のシステム。
  4. 前記エントリは、前記時間値に比較して既に使用した計算されたスレッド使用時間に従って待ち行列に入れられることを特徴とする請求項3に記載のシステム。
  5. 前記エントリは、付加的に設定された制約に従って待ち行列に入れることができることを特徴とする請求項1に記載のシステム。
  6. 前記制約は、前記エントリを付加的な制約待ち行列に入れることによって判断されることを特徴とする請求項5に記載のシステム。
  7. アプリケーションサーバにおける自己調節スレッド化モデルのための方法であって、
    エンティティ間でスレッドリソースを共有するようにシェア値に従ってサーバを設定する段階と、
    前記サーバにおいてクライアントから要求を受信する段階と、
    前記シェア値に従って及び各エンティティが既にスレッドタイムを使用した量に基づいて要求を優先待ち行列に入れる段階と、
    前記優先待ち行列から前記要求を取り出し、プロセッサによって処理するためにそれらを前記スレッドに呈示する段階と、
    を含むことを特徴とする方法。
  8. 前記サーバは、複数のプロセッサを含むことを特徴とする請求項7に記載の方法。
  9. エントリが、比例配分された時間値に従って前記優先待ち行列に入れられることを特徴とする請求項7に記載の方法。
  10. 前記エントリは、前記時間値に比較して既に使用した計算されたスレッド使用時間に従って待ち行列に入れられることを特徴とする請求項9に記載の方法。
  11. エントリを、付加的に設定された制約に従って待ち行列に入れることができることを特徴とする請求項7に記載の方法。
  12. 前記制約は、前記エントリを付加的な制約待ち行列に入れることによって判断されることを特徴とする請求項11に記載の方法。
  13. 命令を含んだコンピュータ読み取り可能な記録媒体であって、
    前記命令は、実行された時に、
    エンティティ間でスレッドリソースを共有するようにシェア値に従ってサーバを設定する段階と、
    前記サーバにおいてクライアントから要求を受信する段階と、
    前記シェア値に従って及び各エンティティが既にスレッドタイムを使用した量に基づいて要求を優先待ち行列に入れる段階と、
    前記優先待ち行列から前記要求を取り出し、プロセッサによって処理するためにそれらを前記スレッドに呈示する段階と、
    を前記コンピュータに実行させる、
    ことを特徴とするコンピュータ読み取り可能な記録媒体。
  14. 前記サーバは、複数のプロセッサを含むことを特徴とする請求項13に記載のコンピュータ読み取り可能な記録媒体。
  15. エントリが、比例配分された時間値に従って前記優先待ち行列に入れられることを特徴とする請求項13に記載のコンピュータ読み取り可能な記録媒体。
  16. 前記エントリは、前記時間値に比較して既に使用した計算されたスレッド使用時間に従って待ち行列に入れられることを特徴とする請求項15に記載のコンピュータ読み取り可能な記録媒体。
  17. エントリを、付加的に設定された制約に従って待ち行列に入れることができることを特徴とする請求項13に記載のコンピュータ読み取り可能な記録媒体。
  18. 前記制約は、前記エントリを付加的な制約待ち行列に入れることによって判断されることを特徴とする請求項17に記載のコンピュータ読み取り可能な記録媒体。
JP2007503125A 2004-05-20 2005-05-20 自己調節スレッド化モデルによるアプリケーションサーバのためのシステム及び方法 Pending JP2007529079A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US57293804P 2004-05-20 2004-05-20
US11/132,601 US7657892B2 (en) 2004-05-20 2005-05-19 System and method for application server with self-tuned threading model
PCT/US2005/017744 WO2005114410A2 (en) 2004-05-20 2005-05-20 System and method for application server with self-tuned threading model

Publications (1)

Publication Number Publication Date
JP2007529079A true JP2007529079A (ja) 2007-10-18

Family

ID=35376695

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007503125A Pending JP2007529079A (ja) 2004-05-20 2005-05-20 自己調節スレッド化モデルによるアプリケーションサーバのためのシステム及び方法

Country Status (5)

Country Link
US (1) US7657892B2 (ja)
EP (1) EP1683014A4 (ja)
JP (1) JP2007529079A (ja)
AU (1) AU2005246373B2 (ja)
WO (1) WO2005114410A2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016103258A (ja) * 2014-11-18 2016-06-02 富士通株式会社 並列演算装置、並列演算システム、およびジョブ制御プログラム
KR20170044639A (ko) * 2014-06-23 2017-04-25 오라클 인터내셔날 코포레이션 멀티테넌트 어플리케이션 서버 환경에서 작업 관리자를 제공하는 시스템 및 방법
US10742568B2 (en) 2014-01-21 2020-08-11 Oracle International Corporation System and method for supporting multi-tenancy in an application server, cloud, or other environment

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7467390B2 (en) * 2003-04-01 2008-12-16 International Business Machines Corporation Enhanced staged event-driven architecture
US7681196B2 (en) * 2004-11-18 2010-03-16 Oracle International Corporation Providing optimal number of threads to applications performing multi-tasking using threads
US8245230B2 (en) * 2005-03-14 2012-08-14 Qnx Software Systems Limited Adaptive partitioning scheduler for multiprocessing system
CA2538503C (en) * 2005-03-14 2014-05-13 Attilla Danko Process scheduler employing adaptive partitioning of process threads
US9361156B2 (en) 2005-03-14 2016-06-07 2236008 Ontario Inc. Adaptive partitioning for operating system
US8387052B2 (en) * 2005-03-14 2013-02-26 Qnx Software Systems Limited Adaptive partitioning for operating system
US8656402B2 (en) * 2005-08-26 2014-02-18 International Business Machines Corporation Incremental web container growth to control startup request flooding
CN100388214C (zh) * 2005-12-30 2008-05-14 北京金山软件有限公司 一种多线程处理中的资源调用方法
US7945913B2 (en) * 2006-01-19 2011-05-17 International Business Machines Corporation Method, system and computer program product for optimizing allocation of resources on partitions of a data processing system
US8020161B2 (en) * 2006-09-12 2011-09-13 Oracle America, Inc. Method and system for the dynamic scheduling of a stream of computing jobs based on priority and trigger threshold
US8078674B2 (en) * 2007-05-10 2011-12-13 International Business Machines Corporation Server device operating in response to received request
CN101359295B (zh) * 2007-08-01 2012-05-02 阿里巴巴集团控股有限公司 一种批量任务调度分配方法及系统
US20090249350A1 (en) * 2008-03-31 2009-10-01 John W. Senders Resource Allocation Through Negotiation
US8862731B2 (en) * 2008-04-25 2014-10-14 Smart Technologies Ulc Method and system for coordinating data sharing in a network with at least one physical display device
WO2011012157A1 (en) * 2009-07-28 2011-02-03 Telefonaktiebolaget L M Ericsson (Publ) Apparatus and method for processing events in a telecommunications network
US8261268B1 (en) * 2009-08-05 2012-09-04 Netapp, Inc. System and method for dynamic allocation of virtual machines in a virtual server environment
US9906399B2 (en) * 2009-08-26 2018-02-27 Adobe Systems Incorporated Methods and systems for combined management of multiple servers
US9152464B2 (en) * 2010-09-03 2015-10-06 Ianywhere Solutions, Inc. Adjusting a server multiprogramming level based on collected throughput values
US8392627B2 (en) 2011-04-25 2013-03-05 Microsoft Corporation Adaptive semaphore
US8849910B2 (en) * 2011-06-03 2014-09-30 Oracle International Corporation System and method for using quality of service with workload management in an application server environment
US9104502B2 (en) 2012-12-15 2015-08-11 International Business Machines Corporation Managing resource pools for deadlock avoidance
US9715406B2 (en) 2013-06-14 2017-07-25 Microsoft Technology Licensing, Llc Assigning and scheduling threads for multiple prioritized queues
EP2840513B1 (en) * 2013-08-21 2019-05-15 Hasso-Plattner-Institut für Softwaresystemtechnik GmbH Dynamic task prioritization for in-memory databases
US10089142B2 (en) 2013-08-21 2018-10-02 Hasso-Plattner-Institut Fur Softwaresystemtechnik Gmbh Dynamic task prioritization for in-memory databases
US9405530B2 (en) 2014-09-24 2016-08-02 Oracle International Corporation System and method for supporting patching in a multitenant application server environment
US10318280B2 (en) 2014-09-24 2019-06-11 Oracle International Corporation System and method for supporting patching in a multitenant application server environment
US10250512B2 (en) 2015-01-21 2019-04-02 Oracle International Corporation System and method for traffic director support in a multitenant application server environment
CN105700958B (zh) * 2016-01-07 2019-05-03 北京京东尚科信息技术有限公司 一种任务自动拆分以及子任务并行执行的方法及其系统
US11120036B2 (en) * 2016-08-03 2021-09-14 Oracle International Corporation System and method for efficient repurposing of connections in a multi-tenant database environment
CN108132837B (zh) * 2018-01-02 2022-04-15 中国工商银行股份有限公司 一种分布式集群调度系统及方法
US11307898B2 (en) 2019-02-26 2022-04-19 Sap Se Server resource balancing using a dynamic-sharing strategy
US11126466B2 (en) * 2019-02-26 2021-09-21 Sap Se Server resource balancing using a fixed-sharing strategy
JP7265652B2 (ja) * 2019-05-31 2023-04-26 ナイキ イノベイト シーブイ 動的応答目標を備えるマルチチャネル通信プラットフォーム
CN115016952B (zh) * 2022-08-10 2022-10-28 中邮消费金融有限公司 一种基于服务调用端的动态扩缩容方法及系统
CN118051346B (zh) * 2024-04-11 2024-07-12 恒生电子股份有限公司 请求动态限流方法、装置、电子设备和可读存储介质

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6549930B1 (en) * 1997-11-26 2003-04-15 Compaq Computer Corporation Method for scheduling threads in a multithreaded processor
US6237073B1 (en) * 1997-11-26 2001-05-22 Compaq Computer Corporation Method for providing virtual memory to physical memory page mapping in a computer operating system that randomly samples state information
GB2334116A (en) 1998-02-04 1999-08-11 Ibm Scheduling and dispatching queued client requests within a server computer
US6304906B1 (en) * 1998-08-06 2001-10-16 Hewlett-Packard Company Method and systems for allowing data service system to provide class-based services to its users
DE19846274A1 (de) * 1998-10-08 2000-04-20 Alcatel Sa Verfahren zur Durchführung von kooperativem Multitasking in einem Nachrichtenübertragungsnetz und Netzelement dafür
WO2002088938A1 (en) 2001-05-01 2002-11-07 The Trustees Of Columbia University In The City Of New York Apparatus and methods for proportional share scheduling
US6886041B2 (en) * 2001-10-05 2005-04-26 Bea Systems, Inc. System for application server messaging with multiple dispatch pools
US7058950B2 (en) * 2002-03-21 2006-06-06 Sun Microsystems, Inc. Callback event listener mechanism for resource adapter work executions performed by an application server thread
US7448036B2 (en) * 2002-05-02 2008-11-04 International Business Machines Corporation System and method for thread scheduling with weak preemption policy
US7080379B2 (en) * 2002-06-20 2006-07-18 International Business Machines Corporation Multiprocessor load balancing system for prioritizing threads and assigning threads into one of a plurality of run queues based on a priority band and a current load of the run queue
US7350195B2 (en) * 2003-09-19 2008-03-25 International Business Machines Corporation Selecting a program to improve a service class by requesting the program to incrementally self-tune
US7703101B2 (en) * 2004-02-13 2010-04-20 International Business Machines Corporation Autonomic workload classification using predictive assertion for wait queue and thread pool selection

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10742568B2 (en) 2014-01-21 2020-08-11 Oracle International Corporation System and method for supporting multi-tenancy in an application server, cloud, or other environment
US11343200B2 (en) 2014-01-21 2022-05-24 Oracle International Corporation System and method for supporting multi-tenancy in an application server, cloud, or other environment
US11683274B2 (en) 2014-01-21 2023-06-20 Oracle International Corporation System and method for supporting multi-tenancy in an application server, cloud, or other environment
KR20170044639A (ko) * 2014-06-23 2017-04-25 오라클 인터내셔날 코포레이션 멀티테넌트 어플리케이션 서버 환경에서 작업 관리자를 제공하는 시스템 및 방법
JP2017519308A (ja) * 2014-06-23 2017-07-13 オラクル・インターナショナル・コーポレイション マルチテナントアプリケーションサーバ環境におけるワークマネージャを提供するためのシステムおよび方法
KR102375129B1 (ko) * 2014-06-23 2022-03-16 오라클 인터내셔날 코포레이션 멀티테넌트 어플리케이션 서버 환경에서 작업 관리자를 제공하는 시스템 및 방법
JP2016103258A (ja) * 2014-11-18 2016-06-02 富士通株式会社 並列演算装置、並列演算システム、およびジョブ制御プログラム

Also Published As

Publication number Publication date
WO2005114410A2 (en) 2005-12-01
AU2005246373B2 (en) 2008-10-02
WO2005114410A3 (en) 2007-07-05
EP1683014A4 (en) 2008-07-09
EP1683014A2 (en) 2006-07-26
US7657892B2 (en) 2010-02-02
US20050262507A1 (en) 2005-11-24
AU2005246373A1 (en) 2005-12-01

Similar Documents

Publication Publication Date Title
JP2007529079A (ja) 自己調節スレッド化モデルによるアプリケーションサーバのためのシステム及び方法
US11593152B1 (en) Application hosting in a distributed application execution system
US8387052B2 (en) Adaptive partitioning for operating system
US6269391B1 (en) Multi-processor scheduling kernel
US6003061A (en) Method and system for scheduling the use of a computer system resource using a resource planner and a resource provider
US7716668B2 (en) System and method for scheduling thread execution
US6223201B1 (en) Data processing system and method of task management within a self-managing application
CN111522639A (zh) Kubernetes集群架构系统下多维资源调度方法
US6763520B1 (en) Fair assignment of processing resources to queued requests
JP3008896B2 (ja) 共有バス型マルチプロセッサシステムの割り込み負荷分散システム
US5440741A (en) Software overload control method
CN109564528B (zh) 分布式计算中计算资源分配的系统和方法
US7150020B2 (en) Resource management
US8881161B1 (en) Operating system with hardware-enabled task manager for offloading CPU task scheduling
US7694054B2 (en) Governing access to a computing resource
US9361156B2 (en) Adaptive partitioning for operating system
US8831026B2 (en) Method and apparatus for dynamically scheduling requests
US6418517B1 (en) Optimized function execution for a multiprocessor computer system
US9792419B2 (en) Starvationless kernel-aware distributed scheduling of software licenses
Krompass et al. Quality of service enabled database applications
CA2316643C (en) Fair assignment of processing resources to queued requests
Rajeshram et al. Heuristics based multi queue job scheduling for cloud computing environment
US20130042247A1 (en) Starvationless Kernel-Aware Distributed Scheduling of Software Licenses
Gao et al. Frameworks of Composite Services Execution Engine with Feedback Control
JPH0460842A (ja) 計算機システム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090223

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090907