JP2019179487A - 情報処理装置、制御方法、及びプログラム - Google Patents

情報処理装置、制御方法、及びプログラム Download PDF

Info

Publication number
JP2019179487A
JP2019179487A JP2018069581A JP2018069581A JP2019179487A JP 2019179487 A JP2019179487 A JP 2019179487A JP 2018069581 A JP2018069581 A JP 2018069581A JP 2018069581 A JP2018069581 A JP 2018069581A JP 2019179487 A JP2019179487 A JP 2019179487A
Authority
JP
Japan
Prior art keywords
task
amount
execution
information
tasks
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.)
Granted
Application number
JP2018069581A
Other languages
English (en)
Other versions
JP7087585B2 (ja
Inventor
敬 八木
Takashi Yagi
敬 八木
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2018069581A priority Critical patent/JP7087585B2/ja
Priority to SG10201902650V priority patent/SG10201902650VA/en
Priority to TW108110191A priority patent/TW201942741A/zh
Priority to US16/370,460 priority patent/US11093281B2/en
Publication of JP2019179487A publication Critical patent/JP2019179487A/ja
Application granted granted Critical
Publication of JP7087585B2 publication Critical patent/JP7087585B2/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/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • 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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】複数のタスク実行主体が動作するアプリケーションに対して適切に計算機資源を割り当てる。【解決手段】情報処理装置2000は、上限値情報30と処理量情報40に基づいて、各タスク実行主体20に割り当てる計算機資源を決定する。上限値情報30は、全てのタスク実行主体20に割り当てる計算機資源の合計量の上限値を示す。処理量情報40は、各タスク実行主体20が処理すべきタスクの量を示す。【選択図】図1

Description

本発明は計算機資源の割り当ての制御に関する。
アプリケーションに対する計算機資源の割り当てを制御する技術が開発されている。特許文献1は、アプリケーションが使用可能な計算機資源を、アプリケーションごとに複数段階設定可能な技術を開示している。具体的には、アプリケーションが使用可能な計算機資源の最大量を、アプリケーションサービスレベルごとに予め設定しておく。また、アプリケーションの起動は、アプリケーションサービスレベルを指定して行う。こうすることで、アプリケーションサービスレベルに応じた量の計算機資源が、アプリケーションに割り当てられる。なお、計算機資源が不足する場合には、より低いアプリケーションサービスレベルで稼働中のアプリケーションの実行を中断することで、計算機資源を確保する。
特開2001−195268号公報
1つのアプリケーションが複数種類のタスクで構成されており、各種類のタスクが互いに異なるタスク実行主体(プロセスなど)によって実行されることがある。例えば、データの読み出し、加工、及び書き出しという3つのタスクをそれぞれ異なるプロセスで実行するケースなどがある。このように複数のタスク実行主体が動作する場合、これら各タスク実行主体に対して計算機資源を割り当てることとなる。そのため、アプリケーションに割り当てる計算機資源の最大量を制御するだけでは、アプリケーションの動作を適切に制御できないことがある。
本願発明は上記の課題に鑑みてなされたものであり、その目的の一つは、複数のタスク実行主体が動作するアプリケーションに対して適切に計算機資源を割り当てる技術を提供することである。
本発明の情報処理装置は、複数種類のタスクで構成される処理を行うアプリケーションについて、タスクの種類ごとに少なくとも1つの実行主体が動作していることを想定する。
当該情報処理装置は、1)アプリケーションの処理を実行する全ての実行主体に割り当てる計算機資源の合計の上限値を示す上限値情報を取得する取得部と、2)各実行主体が処理すべきタスクの量を示す処理量情報を取得する第2取得部と、3)上限値情報及び処理量情報に基づいて、複数の実行主体それぞれに割り当てる計算機資源の量を決定する決定部を有する。
本発明の制御方法は、コンピュータによって実行される制御方法である。複数種類のタスクで構成される処理を行うアプリケーションについて、タスクの種類ごとに少なくとも1つの実行主体が動作していることを想定する。
当該制御方法は、1)アプリケーションの処理を実行する全ての実行主体に割り当てる計算機資源の合計の上限値を示す上限値情報を取得する取得ステップと、2)各実行主体が処理すべきタスクの量を示す処理量情報を取得する第2取得ステップと、3)上限値情報及び処理量情報に基づいて、複数の実行主体それぞれに割り当てる計算機資源の量を決定する決定ステップを有する。
本発明のプログラムは、本発明の制御方法が有する各ステップをコンピュータに実行させる。
本発明によれば、複数のタスク実行主体が動作するアプリケーションに対して適切に計算機資源を割り当てる技術が提供される。
実施形態1に係る情報処理装置の動作を概念的に例示する図である。 情報処理装置の利点を説明するための図である。 情報処理装置の利点を説明するための図である。 情報処理装置の機能構成を例示する図である。 情報処理装置を実現する計算機の構成を例示する図である。 実施形態1の情報処理装置によって実行される処理の流れを例示するフローチャートである。 タスク情報をテーブル形式で例示する図である。
以下、本発明の実施の形態について、図面を用いて説明する。尚、すべての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。また、特に説明する場合を除き、各ブロック図において、各ブロックは、ハードウエア単位の構成ではなく、機能単位の構成を表している。
以下の説明において、特に説明しない限り、各種所定値は、その所定値を利用する機能構成部からアクセス可能な記憶装置に予め記憶させておく。
[実施形態1]
<概要>
図1は、実施形態1に係る情報処理装置(図2でその構成を例示する情報処理装置2000)の動作を概念的に例示する図である。ここで、図1を用いて説明する情報処理装置2000の動作は、情報処理装置2000の理解を容易にするための例示であり、情報処理装置2000の動作を限定するものではない。情報処理装置2000の動作の詳細やバリエーションについては後述する。
情報処理装置2000は、情報処理装置2000上で動作するアプリケーション10への計算機資源の割り当てを制御する。アプリケーション10が行う処理は、複数種類のタスクで実現される。
アプリケーション10が行う処理として、例えば、「ログデータをストレージから読み出して加工処理を行い、加工したログデータをサーバに送信する」という処理が考えられる。ログデータは、例えば、サイバーセキュリティ観点でシステムの分析を行うために利用されるものであり、情報処理装置2000上で動作する各プロセスの振る舞いに関する情報などが記録される。プロセスの振る舞いに関する情報は、例えば、振る舞いの主体であるプロセスに関する情報、振る舞いの客体となるプロセス、ファイル、若しくは通信先に関する情報、振る舞いの内容を表す情報(プロセスの起動や終了、ファイルの読み込みや書き込み、ネットワーク通信など)を含む。
この場合、例えばアプリケーション10の動作は、1)ログデータをストレージから順次読み出す第1タスク12、2)読み出したデータを加工する第2タスク14、3)加工したデータから送信データを生成する第3タスク16、及び4)送信データをサーバに送信する第4タスク18という4種類のタスクで実現される。なお、第1タスク12はログデータの一部(例えば所定サイズ)を読み込むものとする。そのため、第1タスク12は複数生成されることになる。また、第1タスク12、第2タスク14、及び第3タスク16の処理結果として、第2タスク14、第3タスク16、及び第4タスク18がそれぞれ生成される。そのため、第2タスク14、第3タスク16、及び第4タスク18も複数生成されることになる。
情報処理装置2000では、いずれか1つの種類のタスクを実行するタスク実行主体20が生成される。タスク実行主体20は、例えばプロセスやスレッドである。例えば上述したように4種類のタスクがある場合、少なくとも4つのタスク実行主体20が生成される。
図1の例では、タスク実行主体20−1、タスク実行主体20−2、タスク実行主体20−3、及びタスク実行主体20−4がそれぞれ、第1タスク12、第2タスク14、第3タスク16、及び第4タスク18を実行する。タスク実行主体20の中に描画されているのは、現在実行中のタスクである。そして、タスク実行主体20の横に描画されているのは、実行されるのを待っているタスクである。
ここで、情報処理装置2000では、アプリケーション10以外のアプリケーションも動作しうるとする。このように複数のアプリケーションが1つのマシン上で動作すると、各アプリケーションの計算機資源の使用量が、他のアプリケーションで使用できる計算機資源の量に影響を与えうる。
例えばマルウエア対策の常駐アプリケーションなどでは、短い時間に処理負荷が集中することで、計算機資源の使用量が急激に上昇することがある。そのため、他のアプリケーションで計算機資源が不足してしまい、他のアプリケーションの処理が進まなかったり、動作が不安定になってしまったりするという問題が生じうる。
そこで情報処理装置2000は、全てのタスク実行主体20に割り当てる計算機資源の合計量(すなわち、アプリケーション10全体に割り当てる計算機資源量)が、所定の上限値を超えないように、各タスク実行主体20に割り当てる計算機資源の量を決める。こうすることで、アプリケーション10の動作によって他のアプリケーションの動作に与える影響が少なくなるという効果が生じる。
一方で、このようにアプリケーション10に割り当てる計算機資源の合計量に上限を設けると、アプリケーション10が本来利用したい量の計算機資源を利用できなくなることがある。この場合、アプリケーション10全体の処理が遅延してしまう恐れがある。
そこで情報処理装置2000は、各タスク実行主体20に割り当てる計算機資源の量を、各タスク実行主体20が処理すべきタスクの量に応じて決定する。具体的には、処理すべきタスクの量が多いタスク実行主体20ほど、優先的にタスクを割り当てるようにする。こうすることで、アプリケーション10全体の処理において、ボトルネックが生じにくくなる。よって、使用できる計算機資源の量に上限が設けられている環境下であっても、アプリケーション10全体の処理が遅延しにくくなるという効果が生じる。
上述した機能を実現するために、情報処理装置2000は、上限値情報30と処理量情報40を利用する。上限値情報30は、上記所定の上限値(全てのタスク実行主体20に割り当てる計算機資源の合計量の上限値)を示す。処理量情報40は、各タスク実行主体20が処理すべきタスクの量を示す。情報処理装置2000は、上限値情報30と処理量情報40に基づいて、各タスク実行主体20に割り当てる計算機資源の量を決定する。
情報処理装置2000は、決定した量の計算機資源を各タスク実行主体20に割り当てる。そのため、タスク実行主体20は、決定された量の計算機資源を用いて動作する。なお、決定した割り当てに従ってタスク実行主体に計算機資源を割り当てる技術には、既存の技術を利用できる。具体的には、OS(Operating system)カーネルが持つプロセススケジューラや I/O スケジューラによって、タスク実行主体に対する計算機資源の割り当てが行われる。
ここで、情報処理装置2000が制御する計算機資源は、情報処理装置2000が持つ全ての種類の計算機資源である必要はない。例えば情報処理装置2000は、いずれか一種類(例えば、CPU(Central Processing Unit))を対象として、上述した計算機資源の使用量の制御を行ってもよい。
<作用・効果>
本実施形態の情報処理装置2000によれば、上限値情報30及び処理量情報40に基づいて各タスク実行主体20に割り当てる計算機資源の量が決定される。まず、アプリケーション10全体に割り当てる計算機資源の合計量が、上限値情報30に示される上限値を超えないようにすることで、アプリケーション10の動作によって他のアプリケーションの動作に与える影響が少なくなる。また、各タスク実行主体20が処理すべきタスクの量に応じて各タスク実行主体20に割り当てる計算機資源の量を決定することで、使用できる計算機資源の量に上限が設けられている環境下であっても、アプリケーション10全体の処理の遅延が生じにくくなる。
ここで、情報処理装置2000の利点について、図3を用いてさらに具体的に説明する。図2と図3は、情報処理装置2000の利点を説明するための図である。図2の例においてアプリケーション10が行う処理は、図1の例と同じである。
ここで、処理すべきログデータの量が多いと、多くのログデータをストレージから読み出すことになるため、多くの第1タスク12が発生する。さらにこれに連動し、多くの第2タスク、第3タスク、及び第4タスクが発生することになる。その結果、各タスク実行主体20がいずれも、多くの計算機資源を必要とすることになる。
例えば、サイバーセキュリティ観点で分析を行うためのログには、前述したプロセスの振る舞いに関する情報などが記録されるため、OS などが記録する一般的なログに記録される情報よりも多量の情報が記録される。特に、ログをリアルタイムで記録し続ける場合や、アンチウイルスソフトなどのように大量のファイルアクセスを発行するアプリケーションが動作する場合には、ログに大量の情報が記録されることになる。そのため、アプリケーション10がログデータを処理する場合、各タスク実行主体20が多くの計算機資源を必要とすることになる。
図2に示すグラフは、情報処理装置2000による制御を行わないケースについて、各タスク実行主体20及びアプリケーション10全体の計算機資源使用量の推移を示している。アプリケーション10が使用できる計算機資源の量に上限が設定されていないため、各タスク実行主体20の計算機資源の使用量が多くなり、アプリケーション10全体としての計算機資源使用量も多くなっている。このような状況下では、他のアプリケーションの動作に必要な計算機資源の量が不足してしまい、他のアプリケーションの動作が重くなり、最悪の場合には他のアプリケーションがフリーズしてしまう。よって、このケースでは、アプリケーション10の動作が他のアプリケーションの動作に影響を与えてしまうことになる。例えば、OT(Operation Technology)向け製品やサーバマシンでは、バックグランドで動作させるアプリケーション(例えば前述したログを処理するアプリケーション)について、フォアグラウンドで動作するアプリケーションに影響を与えないことが要求されることが多いため、アプリケーション10の動作が他のアプリケーションの動作に影響を与えることは好ましくない。
一方、図3に示すグラフは、情報処理装置2000による制御を行うケースについて、各タスク実行主体20及びアプリケーション10全体の計算機資源使用量の推移を示している。まず、アプリケーション10全体で使用される計算機資源の量が、上限値以下に抑えられている。そのため、他のアプリケーションの動作が阻害されにくくなる。さらに、処理すべきタスクの量が多いタスク実行主体20に対して優先的に計算機資源が割り当てられるため、アプリケーション10全体の処理においてボトルネックが生じておらず、アプリケーション10全体の処理の遅延が抑制される。
以下、情報処理装置2000についてより詳細に説明する。
<機能構成の例>
図4は、情報処理装置2000の機能構成を例示する図である。情報処理装置2000は、取得部2020及び決定部2060を有する。取得部2020は処理量情報40を取得する。決定部2060は、上限値情報30と処理量情報40に基づいて、各タスク実行主体20に割り当てる計算機資源を決定する。
<情報処理装置2000のハードウエア構成の例>
情報処理装置2000の各機能構成部は、各機能構成部を実現するハードウエア(例:ハードワイヤードされた電子回路など)で実現されてもよいし、ハードウエアとソフトウエアとの組み合わせ(例:電子回路とそれを制御するプログラムの組み合わせなど)で実現されてもよい。以下、情報処理装置2000の各機能構成部がハードウエアとソフトウエアとの組み合わせで実現される場合について、さらに説明する。
計算機1000は種々の計算機である。例えば計算機1000は、PC、サーバマシン、タブレット端末、又はスマートフォンなどである。計算機1000は、情報処理装置2000を実現するために設計された専用の計算機であってもよいし、汎用の計算機であってもよい。
図5は、情報処理装置2000を実現する計算機1000の構成を例示する図である。計算機1000は、バス1020、プロセッサ1040、メモリ1060、ストレージデバイス1080、入出力インタフェース1100、及びネットワークインタフェース1120を有する。バス1020は、プロセッサ1040、メモリ1060、ストレージデバイス1080、入出力インタフェース1100、及びネットワークインタフェース1120が、相互にデータを送受信するためのデータ伝送路である。ただし、プロセッサ1040などを互いに接続する方法は、バス接続に限定されない。プロセッサ1040は、CPU や GPU (Graphics Processing Unit) などで実現されるプロセッサである。メモリ1060は、RAM (Random Access Memory) などで実現される主記憶装置である。ストレージデバイス1080は、ハードディスク、SSD (Solid State Drive)、メモリカード、又は ROM (Read Only Memory) などで実現される補助記憶装置である。入出力インタフェース1100は、計算機1000と入出力デバイスとを接続するためのインタフェースである。例えば入出力インタフェース1100には、キーボードなどの入力装置や、ディスプレイ装置などの出力装置が接続される。ネットワークインタフェース1120は、計算機1000をネットワークに接続するためのインタフェースである。この通信網は、例えば LAN(Local Area Network)や WAN(Wide Area Network)である。ネットワークインタフェース1120がネットワークに接続する方法は、無線接続であってもよいし、有線接続であってもよい。
ストレージデバイス1080は情報処理装置2000の各機能を実現するプログラムモジュールを記憶している。プロセッサ1040は、これら各プログラムモジュールを実行することで、そのプログラムモジュールに対応する各機能を実現する。
<処理の流れ>
図6は、実施形態1の情報処理装置2000によって実行される処理の流れを例示するフローチャートである。取得部2020は処理量情報40を取得する(S102)。決定部2060は、上限値情報30と処理量情報40に基づいて、各タスク実行主体20に割り当てる計算機資源の量を決定する(S104)。
情報処理装置2000が図6に示す一連の処理を実行する契機は様々である。例えば、情報処理装置2000は、所定の時間間隔で(定期的に)、上記一連の処理を繰り返し実行する。
<上限値情報30について>
上限値情報には、アプリケーション10に割り当てる計算機資源の量の上限値が示されている。制御対象となる計算機資源は、例えば、CPU 資源、ストレージアクセスの帯域幅、及びネットワークアクセスの帯域幅などである。なお、上限値情報が示す上限値は、絶対値(例えば、CPU 資源 1.0GHz など)で表されてもよいし、最大量に対する相対値(例えば、CPU 使用率 60% など)で表されてもよい。
上限値情報30は、決定部2060に予め設定されていてもよいし、取得部2020によって取得されるようにしてもよい。取得部2020が上限値情報30を取得する方法は様々である。例えば、取得部2020は、取得部2020からアクセス可能な記憶装置に記憶されている上限値情報30を、その記憶装置から取得する。その他にも例えば、取得部2020は、他の装置から送信される上限値情報30を受信することで、上限値情報30を取得してもよい。
上限値情報30の生成方法は任意である。例えば上限値情報30は、情報処理装置2000の管理者等によって人手で作成される。その他にも例えば、上限値情報30は、情報処理装置2000によって自動的に生成されてもよい。例えば情報処理装置2000は、情報処理装置2000が有する計算機資源を、各アプリケーションで等分するようにする。より具体的には、情報処理装置2000は、情報処理装置2000が有する計算機資源の合計量を、情報処理装置2000上で動作するアプリケーションの数で割った値を、上限値情報30が示す上限値とする。その他にも例えば、各アプリケーションに優先度を付し、その優先度の割合に応じて、情報処理装置2000上で動作するアプリケーションに計算機資源を分配するようにしてもよい。この場合、情報処理装置2000は、アプリケーション10の優先度に基づいて、上限値情報30に設定する上限値を算出する。
<処理量情報40の取得:S104>
取得部2020は処理量情報40を取得する(S104)。処理量情報40は、タスク実行主体20が処理すべきタスクの量を示す情報である。
例えば、タスク実行主体20が処理すべきタスクは、キューで管理される。すなわち、タスク実行主体20ごとにキューが設けられており、或るタスク実行主体20に対応するキューが、そのタスク実行主体20が処理すべきタスクを定義するデータ(以下、タスク定義データ)を、タスクごとに格納している。例えばタスク実行主体20が処理すべきタスクが5個ある場合、5個のタスク定義データがキューに格納される。なお、プロセスやスレッドが処理すべきタスクをキューで管理する技術には、既存の技術を利用できる。
このようにタスク実行主体20ごとにキューを設けると、タスク実行主体20に対応するキューの長さが、そのタスク実行主体20が処理すべきタスクの量を表していると言える。そこで例えば、各タスク実行主体20の処理量情報40は、そのタスク実行主体20に対応するキューの長さを示す。決定部2060は、各タスク実行主体20について取得した処理量情報40が示すキューの長さに基づいて、各タスク実行主体20が処理すべきタスクの量を把握する。
例えば処理量情報40は、各タスク実行主体20によって生成される。タスク実行主体20は、対応するキューの長さが変わったとき(キューからタスク定義データを取り出したときや、キューに新たなタスク定義データが格納されたとき)に、変化後のキューの長さを示す処理量情報40を生成して、記憶装置に記憶させる。なお、或るタスク実行主体20についての処理量情報40が既に記憶装置に記憶されている場合、タスク実行主体20は、新たに生成した処理量情報40で、既に記憶されている処理量情報40を上書きする。その他にも例えば、各タスク実行主体20は、生成した処理量情報40を取得部2020に対して出力してもよい。
取得部2020が処理量情報40を取得する方法は様々である。例えば取得部2020は、処理量情報40が記憶されている記憶装置から、処理量情報40を取得する。その他にも例えば、取得部2020は、タスク実行主体20から取得部2020に対して出力された処理量情報40を取得する。
<計算機資源の割り当て:S106>
決定部2060は、上限値情報30及び処理量情報40に基づいて、各タスク実行主体20に割り当てる計算機資源の量を決定する(S106)。例えば決定部2060は、上限値情報30に示されている上限値に等しい量の計算機資源を、処理すべきタスクの量が最も多いタスク実行主体20(例えば、対応するキューの長さが最長のタスク実行主体20)に割り当てる。この場合、処理すべきタスクの量が最も多いタスク実行主体20のみが動作し、他のタスク実行主体20の動作が中断されることになる。
その他にも例えば、決定部2060は、上限値情報30に示されている上限値に等しい量の計算機資源を、処理すべきタスクの量に基づく割合で、各タスク実行主体20に分配する。例えば、タスク実行主体20に割り当てられる計算機資源の量は、以下の数式(1)で決定される。
Figure 2019179487
・・・(1)
r[i] は、識別子がiのタスク実行主体20(以下、タスク実行主体20i)に割り当てられる計算機資源の量を表す。rmax は、上限値情報30に示されている上限値を表す。p[i] は、タスク実行主体20iが処理すべきタスクの量に基づいて決定された、タスク実行主体20iの優先度を表す。Ptotal は、全てのタスク実行主体20の優先度の総和を表す。
優先度 p[i] には、タスク実行主体20iが処理すべきタスクの量が多いほど大きい値を設定する。例えば、決定部2060は、タスク実行主体20iに対応するキューの長さを p[i] に設定する。その他にも例えば、決定部2060は、タスク実行主体20iに対応するキューの長さを所定の単調非減少関数に入力することで得られる値を、p[i] に設定してもよい。
決定部2060は、上述した方法により、各タスク実行主体20について、制御対象の計算機資源の割り当てを決定する。ここで、制御対象の計算機資源が複数ある場合、決定部2060は、各計算機資源それぞれについて、各タスク実行主体20に対するその計算機資源の割り当てを決定する。
[実施形態2]
実施形態2の情報処理装置2000の機能構成は、実施形態1の情報処理装置2000の機能構成と同様に、例えば図1で表される。以下で説明する点を除き、実施形態2の情報処理装置2000は、実施形態1の情報処理装置2000と同様の機能を有する。
実施形態2の情報処理装置2000は、処理すべきタスクの量が最も多いタスク実行主体20によるタスクの実行に支障が出にくいように、各タスク実行主体20に割り当てる計算機資源の量を決定する。こうすることで、処理すべきタスクの量が多いタスク実行主体20による処理が、ボトルネックになりにくくなる。
まず決定部2060は、処理すべきタスクの量が最も多いタスク実行主体20を特定する。例えば前述したように、処理すべきタスクの量をキューの長さで表現する場合、情報処理装置2000は、対応するキューの長さが最も長いタスク実行主体20を特定する。
次に決定部2060は、特定したタスク実行主体20がかける負荷が最も大きい計算機資源を特定する。例えば、CPU インテンシブなタスクを実行するタスク実行主体20の場合、CPU にかける負荷が最も大きいと言える。同様に、ネットワークインテンシブなタスクを実行するタスク実行主体20の場合、ネットワークの帯域幅にかける負荷が最も大きいと言える。
さらに決定部2060は、最も大きな負荷をかける計算機資源が上記特定した計算機資源であるタスク実行主体20を特定する。例えば、上記特定した計算機資源が CPU である場合、ここで特定されるタスク実行主体20は、CPU インテンシブなタスクを実行するタスク実行主体20である。そして決定部2060は、ここで特定されたタスク実行主体20に対する計算機資源量の割り当ての優先度を低くする。
例えば決定部2060は、最も大きな負荷をかける計算機資源が上記特定した計算機資源であるタスク実行主体20には、計算機資源を割り当てないようにする(優先度をゼロにする)。
その他にも例えば、決定部2060は、最も大きな負荷をかける計算機資源が上記特定した計算機資源であるタスク実行主体20の優先度を、そのタスク実行主体20が処理すべきタスクの量に基づく優先度より低い値(例えば、キューの長さに1未満の係数αをかけた値)とし、それ以外のタスク実行主体20の優先度を、そのタスク実行主体20が処理すべきタスクの量に基づく優先度(例えば、キューの長さ)とする。こうすることで、上記特定した計算機資源に大きな負荷をかけるタスク実行主体20の優先度は、処理すべきタスクの量のみを基準とした場合における優先度よりも低くなる。
ここで、決定部2060は、「タスク実行主体20がどの計算機資源に大きな負荷をかけるか」を把握する必要がある。例えば、タスクと、そのタスクが最も負荷をかける計算機資源とを対応づけた情報を、予め記憶装置に記憶させておく。以下、この情報をタスク情報と呼ぶ。
図7は、タスク情報をテーブル形式で例示する図である。図7に示すテーブルを、テーブル200と呼ぶ。テーブル200は、タスク202及び計算機資源204という2つの列を有する。タスク202に対応づけられている計算機資源204は、タスク202に示すタスクが最も負荷をかける計算機資源を示す。決定部2060は、各タスク実行主体20が実行するタスクについてタスク情報を取得することにより、各タスク実行主体20が最も負荷をかける計算機資源を特定する。
その他にも例えば、決定部2060は、タスク実行主体20の各計算機資源の使用量の履歴に基づいて、タスク実行主体20がどの計算機資源に最も大きな負荷をかけるかを特定してもよい。
<ハードウエア構成の例>
実施形態2の情報処理装置2000を実現する計算機のハードウエア構成は、実施形態1と同様に、例えば図4によって表される。ただし、本実施形態の情報処理装置2000を実現する計算機1000のストレージデバイス1080には、本実施形態の情報処理装置2000の機能を実現するプログラムモジュールがさらに記憶される。
以上、図面を参照して本発明の実施形態について述べたが、これらは本発明の例示であり、上記以外の様々な構成を採用することもできる。
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
1. 複数種類のタスクで構成される処理を行うアプリケーションについて、タスクの種類ごとに少なくとも1つの実行主体が動作しており、
前記実行主体それぞれが処理すべきタスクの量を示す処理量情報を取得する取得部と、
前記実行主体に割り当てる計算機資源の合計の上限値を示す上限値情報及び前記処理量情報に基づいて、前記実行主体それぞれに割り当てる計算機資源を決定する決定部を有する、情報処理装置。
2. 前記決定部は、前記上限値以下の量の計算機資源を、処理すべきタスクの量が多い前記実行主体ほど優先的に割り当てる、1.に記載の情報処理装置。
3. 前記実行主体ごとに、その実行主体が処理すべき1つ以上のタスクを格納するキューが設けられており、
前記処理量情報は、各前記実行主体のキューの長さを示し、
前記決定部は、前記キューの長さが長い前記実行主体ほど多くの量の計算機資源を割り当てる、1.又は2.に記載の情報処理装置。
4. 前記決定部は、処理すべきタスクの量が最も多い前記実行主体を特定し、前記実行主体が最も負荷をかける計算機資源を特定し、前記特定された実行主体以外の実行主体のうち、最も負荷をかける計算機資源が前記特定した計算機資源である実行主体について、計算機資源を割り当てる優先度合いを低くする、1.乃至3.いずれか一つに記載の情報処理装置。
5. 前記決定部は、
前記特定した実行主体と、最も負荷をかける計算機資源が前記特定した計算機資源とは異なる前記実行主体とに対し、処理すべきタスクの量に基づいて定まる優先度を割り当て、
最も負荷をかける計算機資源が前記特定した実行主体計算機資源である前記実行主体に対し、処理すべきタスクの量に基づいて定まる優先度よりも低い優先度を割り当て、
前記実行主体に割り当てる計算機資源の量を、その実行主体に割り当てられた優先度に応じた量にする、4.に記載の情報処理装置。
6. 前記決定部は、
タスクと、そのタスクが最も負荷をかける計算機資源とを対応づけたタスク情報を取得し、
各前記実行主体が最も負荷をかける計算機資源を、前記タスク情報においてその実行主体が実行するタスクに対応づけられている計算機資源とする、4.又は5.に記載の情報処理装置。
7. 前記実行主体が実行するタスクは、他の前記実行主体が実行したタスクによって生成される、1.乃至6.いずれか一つに記載の情報処理装置。
8. コンピュータによって実行される制御方法であって、
複数種類のタスクで構成される処理を行うアプリケーションについて、タスクの種類ごとに少なくとも1つの実行主体が動作しており、
前記実行主体それぞれが処理すべきタスクの量を示す処理量情報を取得する取得ステップと、
前記実行主体に割り当てる計算機資源の合計の上限値を示す上限値情報及び前記処理量情報に基づいて、前記実行主体それぞれに割り当てる計算機資源を決定する決定ステップと、を有する制御方法。
9. 前記決定ステップにおいて、前記上限値以下の量の計算機資源を、処理すべきタスクの量が多い前記実行主体ほど優先的に割り当てる、8.に記載の制御方法。
10. 前記実行主体ごとに、その実行主体が処理すべき1つ以上のタスクを格納するキューが設けられており、
前記処理量情報は、各前記実行主体のキューの長さを示し、
前記決定ステップにおいて、前記キューの長さが長い前記実行主体ほど多くの量の計算機資源を割り当てる、8.又は9.に記載の制御方法。
11. 前記決定ステップにおいて、処理すべきタスクの量が最も多い前記実行主体を特定し、前記実行主体が最も負荷をかける計算機資源を特定し、前記特定された実行主体以外の実行主体のうち、最も負荷をかける計算機資源が前記特定した計算機資源である実行主体について、計算機資源を割り当てる優先度合いを低くする、8.乃至10.いずれか一つに記載の制御方法。
12. 前記決定ステップにおいて、
前記特定した実行主体と、最も負荷をかける計算機資源が前記特定した計算機資源とは異なる前記実行主体とに対し、処理すべきタスクの量に基づいて定まる優先度を割り当て、
最も負荷をかける計算機資源が前記特定した実行主体計算機資源である前記実行主体に対し、処理すべきタスクの量に基づいて定まる優先度よりも低い優先度を割り当て、
前記実行主体に割り当てる計算機資源の量を、その実行主体に割り当てられた優先度に応じた量にする、11.に記載の制御方法。
13. 前記決定ステップにおいて、
タスクと、そのタスクが最も負荷をかける計算機資源とを対応づけたタスク情報を取得し、
各前記実行主体が最も負荷をかける計算機資源を、前記タスク情報においてその実行主体が実行するタスクに対応づけられている計算機資源とする、11.又は12.に記載の制御方法。
14. 前記実行主体が実行するタスクは、他の前記実行主体が実行したタスクによって生成される、8.乃至13.いずれか一つに記載の制御方法。
15. 複数種類のタスクで構成される処理を行うアプリケーションについて、タスクの種類ごとに少なくとも1つの実行主体が動作しているコンピュータに、
前記実行主体それぞれが処理すべきタスクの量を示す処理量情報を取得する取得ステップと、
前記実行主体に割り当てる計算機資源の合計の上限値を示す上限値情報及び前記処理量情報に基づいて、前記実行主体それぞれに割り当てる計算機資源を決定する決定ステップと、を実行させるプログラム。
16. 前記決定ステップにおいて、前記上限値以下の量の計算機資源を、処理すべきタスクの量が多い前記実行主体ほど優先的に割り当てる、15.に記載のプログラム。
17. 前記実行主体ごとに、その実行主体が処理すべき1つ以上のタスクを格納するキューが設けられており、
前記処理量情報は、各前記実行主体のキューの長さを示し、
前記決定ステップにおいて、前記キューの長さが長い前記実行主体ほど多くの量の計算機資源を割り当てる、15.又は16.に記載のプログラム。
18. 前記決定ステップにおいて、処理すべきタスクの量が最も多い前記実行主体を特定し、前記実行主体が最も負荷をかける計算機資源を特定し、前記特定された実行主体以外の実行主体のうち、最も負荷をかける計算機資源が前記特定した計算機資源である実行主体について、計算機資源を割り当てる優先度合いを低くする、15.乃至17.いずれか一つに記載のプログラム。
19. 前記決定ステップにおいて、
前記特定した実行主体と、最も負荷をかける計算機資源が前記特定した計算機資源とは異なる前記実行主体とに対し、処理すべきタスクの量に基づいて定まる優先度を割り当て、
最も負荷をかける計算機資源が前記特定した実行主体計算機資源である前記実行主体に対し、処理すべきタスクの量に基づいて定まる優先度よりも低い優先度を割り当て、
前記実行主体に割り当てる計算機資源の量を、その実行主体に割り当てられた優先度に応じた量にする、18.に記載のプログラム。
20. 前記決定ステップにおいて、
タスクと、そのタスクが最も負荷をかける計算機資源とを対応づけたタスク情報を取得し、
各前記実行主体が最も負荷をかける計算機資源を、前記タスク情報においてその実行主体が実行するタスクに対応づけられている計算機資源とする、18.又は19.に記載のプログラム。
21. 前記実行主体が実行するタスクは、他の前記実行主体が実行したタスクによって生成される、15.乃至20.いずれか一つに記載のプログラム。
10 アプリケーション
12 第1タスク
14 第2タスク
16 第3タスク
18 第4タスク
20 タスク実行主体
30 上限値情報
40 処理量情報
100 グラフ
110 グラフ
200 テーブル
202 タスク
204 計算機資源
1000 計算機
1020 バス
1040 プロセッサ
1060 メモリ
1080 ストレージデバイス
1100 入出力インタフェース
1120 ネットワークインタフェース
2000 情報処理装置
2020 取得部
2060 決定部

Claims (9)

  1. 複数種類のタスクで構成される処理を行うアプリケーションについて、タスクの種類ごとに少なくとも1つの実行主体が動作しており、
    前記実行主体それぞれが処理すべきタスクの量を示す処理量情報を取得する取得部と、
    前記実行主体に割り当てる計算機資源の合計の上限値を示す上限値情報及び前記処理量情報に基づいて、前記実行主体それぞれに割り当てる計算機資源を決定する決定部を有する、情報処理装置。
  2. 前記決定部は、前記上限値以下の量の計算機資源を、処理すべきタスクの量が多い前記実行主体ほど優先的に割り当てる、請求項1に記載の情報処理装置。
  3. 前記実行主体ごとに、その実行主体が処理すべき1つ以上のタスクを格納するキューが設けられており、
    前記処理量情報は、各前記実行主体のキューの長さを示し、
    前記決定部は、前記キューの長さが長い前記実行主体ほど多くの量の計算機資源を割り当てる、請求項1又は2に記載の情報処理装置。
  4. 前記決定部は、処理すべきタスクの量が最も多い前記実行主体を特定し、前記実行主体が最も負荷をかける計算機資源を特定し、前記特定された実行主体以外の実行主体のうち、最も負荷をかける計算機資源が前記特定した計算機資源である実行主体について、計算機資源を割り当てる優先度合いを低くする、請求項1乃至3いずれか一項に記載の情報処理装置。
  5. 前記決定部は、
    前記特定した実行主体と、最も負荷をかける計算機資源が前記特定した計算機資源とは異なる前記実行主体とに対し、処理すべきタスクの量に基づいて定まる優先度を割り当て、
    最も負荷をかける計算機資源が前記特定した実行主体計算機資源である前記実行主体に対し、処理すべきタスクの量に基づいて定まる優先度よりも低い優先度を割り当て、
    前記実行主体に割り当てる計算機資源の量を、その実行主体に割り当てられた優先度に応じた量にする、請求項4に記載の情報処理装置。
  6. 前記決定部は、
    タスクと、そのタスクが最も負荷をかける計算機資源とを対応づけたタスク情報を取得し、
    各前記実行主体が最も負荷をかける計算機資源を、前記タスク情報においてその実行主体が実行するタスクに対応づけられている計算機資源とする、請求項4又は5に記載の情報処理装置。
  7. 前記実行主体が実行するタスクは、他の前記実行主体が実行したタスクによって生成される、請求項1乃至6いずれか一項に記載の情報処理装置。
  8. コンピュータによって実行される制御方法であって、
    複数種類のタスクで構成される処理を行うアプリケーションについて、タスクの種類ごとに少なくとも1つの実行主体が動作しており、
    前記実行主体それぞれが処理すべきタスクの量を示す処理量情報を取得する取得ステップと、
    前記実行主体に割り当てる計算機資源の合計の上限値を示す上限値情報及び前記処理量情報に基づいて、前記実行主体それぞれに割り当てる計算機資源を決定する決定ステップと、を有する制御方法。
  9. 複数種類のタスクで構成される処理を行うアプリケーションについて、タスクの種類ごとに少なくとも1つの実行主体が動作しているコンピュータに、
    前記実行主体それぞれが処理すべきタスクの量を示す処理量情報を取得する取得ステップと、
    前記実行主体に割り当てる計算機資源の合計の上限値を示す上限値情報及び前記処理量情報に基づいて、前記実行主体それぞれに割り当てる計算機資源を決定する決定ステップと、を実行させるプログラム。
JP2018069581A 2018-03-30 2018-03-30 情報処理装置、制御方法、及びプログラム Active JP7087585B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2018069581A JP7087585B2 (ja) 2018-03-30 2018-03-30 情報処理装置、制御方法、及びプログラム
SG10201902650V SG10201902650VA (en) 2018-03-30 2019-03-25 Information processing apparatus, control method, and program
TW108110191A TW201942741A (zh) 2018-03-30 2019-03-25 資訊處理裝置、控制方法及程式產品
US16/370,460 US11093281B2 (en) 2018-03-30 2019-03-29 Information processing apparatus, control method, and program to control allocation of computer resources for different types of tasks

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018069581A JP7087585B2 (ja) 2018-03-30 2018-03-30 情報処理装置、制御方法、及びプログラム

Publications (2)

Publication Number Publication Date
JP2019179487A true JP2019179487A (ja) 2019-10-17
JP7087585B2 JP7087585B2 (ja) 2022-06-21

Family

ID=68054988

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018069581A Active JP7087585B2 (ja) 2018-03-30 2018-03-30 情報処理装置、制御方法、及びプログラム

Country Status (4)

Country Link
US (1) US11093281B2 (ja)
JP (1) JP7087585B2 (ja)
SG (1) SG10201902650VA (ja)
TW (1) TW201942741A (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111767134A (zh) * 2020-05-18 2020-10-13 鹏城实验室 一种多任务动态资源调度方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008510259A (ja) * 2004-08-17 2008-04-03 ショー パーシング リミティド ライアビリティ カンパニー モジュラー型のイベントドリブン処理
JP2011242991A (ja) * 2010-05-18 2011-12-01 Canon Inc クラウドコンピューティングシステム、文書処理方法、及びコンピュータプログラム

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3611306A (en) * 1969-02-05 1971-10-05 Burroughs Corp Mechanism to control the sequencing of partially ordered instructions in a parallel data processing system
JP3664021B2 (ja) 2000-01-05 2005-06-22 日本電気株式会社 サービスレベルによる資源割当方式
US7805706B1 (en) * 2005-06-21 2010-09-28 Unisys Corporation Process for optimizing software components for an enterprise resource planning (ERP) application SAP on multiprocessor servers
US9703285B2 (en) * 2006-04-27 2017-07-11 International Business Machines Corporation Fair share scheduling for mixed clusters with multiple resources
US20120159322A1 (en) 2009-08-31 2012-06-21 Nec Corporation Gui evaluation system, method and program
CN105468452B (zh) 2014-09-04 2019-04-12 中国联合网络通信集团有限公司 一种资源池的分配方法及资源调度器
US9513935B2 (en) * 2014-10-28 2016-12-06 International Business Machines Corporation Auto-scaling thresholds in elastic computing environments
JP6372315B2 (ja) 2014-11-11 2018-08-15 コニカミノルタ株式会社 画像処理装置及び並列処理制御プログラム並びに並列処理制御方法
CN105843679B (zh) 2016-03-18 2018-11-02 西北工业大学 自适应众核资源调度方法
JP6806019B2 (ja) * 2017-09-26 2020-12-23 オムロン株式会社 制御装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008510259A (ja) * 2004-08-17 2008-04-03 ショー パーシング リミティド ライアビリティ カンパニー モジュラー型のイベントドリブン処理
JP2011242991A (ja) * 2010-05-18 2011-12-01 Canon Inc クラウドコンピューティングシステム、文書処理方法、及びコンピュータプログラム

Also Published As

Publication number Publication date
TW201942741A (zh) 2019-11-01
US20190303199A1 (en) 2019-10-03
JP7087585B2 (ja) 2022-06-21
US11093281B2 (en) 2021-08-17
SG10201902650VA (en) 2019-10-30

Similar Documents

Publication Publication Date Title
US11340803B2 (en) Method for configuring resources, electronic device and computer program product
JP5911286B2 (ja) ハードウェア・アクセラレータに対する関数の実行時割り当ての装置、方法、およびプログラム
US9400686B2 (en) Process grouping for improved cache and memory affinity
US8589923B2 (en) Preprovisioning virtual machines based on request frequency and current network configuration
US8881165B2 (en) Methods, computer systems, and physical computer storage media for managing resources of a storage server
CN109729106B (zh) 处理计算任务的方法、系统和计算机程序产品
JP6172649B2 (ja) 情報処理装置、プログラム、及び、情報処理方法
US20180032373A1 (en) Managing data processing resources
US7681196B2 (en) Providing optimal number of threads to applications performing multi-tasking using threads
CN113641457A (zh) 容器创建方法、装置、设备、介质及程序产品
US11311722B2 (en) Cross-platform workload processing
KR101471749B1 (ko) 클라우드 서비스의 가상자원 할당을 위한 퍼지 로직 기반의 자원평가 장치 및 방법
US10972555B2 (en) Function based dynamic traffic management for network services
KR20110080735A (ko) 컴퓨팅 시스템 및 방법
WO2015101091A1 (zh) 一种分布式资源调度方法及装置
EP3961395A1 (en) Method and apparatus for scheduling memory access request, device and storage medium
US8352702B2 (en) Data processing system memory allocation
CN112231098A (zh) 任务处理方法、装置、设备及存储介质
JP4905120B2 (ja) 負荷集約プログラム、該プログラムを記録した記録媒体、負荷集約装置および負荷集約方法
JP6237170B2 (ja) 割当判定装置、制御方法、及びプログラム
JP7087585B2 (ja) 情報処理装置、制御方法、及びプログラム
JP2011141703A (ja) 資源配置システム、資源配置方法、及び資源配置用プログラム
US10979359B1 (en) Polling resource management system
CN111382141A (zh) 主从架构配置方法、装置、设备以及计算机可读存储介质
WO2020000724A1 (zh) 云平台主机间通信负载的处理方法、电子装置及介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210205

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20211213

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220111

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220307

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: 20220510

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220523

R151 Written notification of patent or utility model registration

Ref document number: 7087585

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151