JP2011159107A - スレッド数制限装置、スレッド数制限方法およびスレッド数制限プログラム - Google Patents

スレッド数制限装置、スレッド数制限方法およびスレッド数制限プログラム Download PDF

Info

Publication number
JP2011159107A
JP2011159107A JP2010020278A JP2010020278A JP2011159107A JP 2011159107 A JP2011159107 A JP 2011159107A JP 2010020278 A JP2010020278 A JP 2010020278A JP 2010020278 A JP2010020278 A JP 2010020278A JP 2011159107 A JP2011159107 A JP 2011159107A
Authority
JP
Japan
Prior art keywords
memory capacity
threads
request
thread
limit value
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
JP2010020278A
Other languages
English (en)
Other versions
JP5440937B2 (ja
Inventor
Yuta Takao
悠太 高雄
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 JP2010020278A priority Critical patent/JP5440937B2/ja
Publication of JP2011159107A publication Critical patent/JP2011159107A/ja
Application granted granted Critical
Publication of JP5440937B2 publication Critical patent/JP5440937B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

【課題】リソースの状況に応じてプロセスごとの処理を効率良く向上させる。
【解決手段】プロセスの起動時にプロセスで使用可能なメモリ容量Mmaxを取得し、1件目のリクエストに対応するアプリ実行時にプロセスが使用するメモリ容量M1を取得し、2件目のリクエストに対応するアプリ実行時にプロセスが使用するメモリ容量M2を取得するメモリ容量監視部13と、2件目のリクエストに対応するアプリによって生成されるスレッド数Tを取得するスレッド数監視部14と、メモリ容量M1,M2を用いて一リクエスト当たりのメモリ容量MRを算出し、スレッド数T、一リクエスト当たりのメモリ容量MRを用いて一スレッド当たりのメモリ容量MTを算出し、メモリ容量Mmax,M1、一スレッド当たりのメモリ容量MTを用いてスレッド数の上限値Tmaxを算出して上限値パラメタに設定する制限値設定部16とを備える。
【選択図】図1

Description

本発明は、スレッド数制限装置、スレッド数制限方法およびスレッド数制限プログラムに関する。
コンピュータ処理を効率的に実行するための技術としてマルチスレッドがある。マルチスレッドは、一つのプログラムで複数のスレッドを生成し、複数のスレッドで並行してプログラムを処理する手法である。このようなマルチスレッド機能を有するプロセスは、スレッドを複数生成することで処理効率を向上させることができるが、必要以上にスレッドを生成するとメモリ容量が不足するなど処理効率が低下する要因となる。下記特許文献1には、プロセスにおける処理待ちのリクエスト数が増加しているときにはスレッド数を増加させ、処理待ちのリクエスト数が減少しているときにはスレッド数を減少させるシステムが開示されている。
特開平3−40034号公報
ところで、プロセスを実行する際にプロセスに割り当てられるメモリ容量は、そのときのリソースの状況(例えば、他のプロセスの実行状況等)に応じて変動する。プロセスで使用可能なメモリ容量が変動すれば、作成可能なスレッド数や、処理速度も変動する。したがって、上記特許文献1のように、単にプロセスにおける処理待ちのリクエスト数に応じてスレッド数を増減させるだけでは、プロセスごとの処理を最適に制御しているとはいえない。
本発明は、上述した課題を解決するためになされたものであり、リソースの状況に応じてプロセスごとの処理を効率良く向上させることができるスレッド数制限装置、スレッド数制限方法およびスレッド数制限プログラムを提供することを目的とする。
本発明のスレッド数制限装置は、アプリケーションを実行制御するプロセスの起動時に、当該プロセスで使用可能な第1のメモリ容量を取得する第1の取得部と、第1のリクエストに対応する第1のアプリケーションの実行制御時に前記プロセスが使用する第2のメモリ容量を取得する第2の取得部と、前記第1のリクエストを受信した後に受信する第2のリクエストに対応する第2のアプリケーションの実行制御時に前記プロセスが使用する第3のメモリ容量を取得する第3の取得部と、前記第2のアプリケーションの実行により生成されるスレッド数を取得する第4の取得部と、前記第2のメモリ容量および前記第3のメモリ容量を用いて一リクエスト当たりのメモリ容量を算出する第1の算出部と、前記取得された前記スレッド数および前記一リクエスト当たりのメモリ容量を用いて一スレッド当たりのメモリ容量を算出する第2の算出部と、前記第1のメモリ容量、前記第2のメモリ容量および前記一スレッド当たりのメモリ容量を用いて前記プロセスにおける前記スレッド数の上限値を算出して設定する上限値設定部と、を備える。
本発明のスレッド数制限方法は、アプリケーションを実行制御するプロセスの起動時に、当該プロセスで使用可能な第1のメモリ容量を取得するステップと、第1のリクエストに対応する第1のアプリケーションの実行制御時に前記プロセスが使用する第2のメモリ容量を取得するステップと、前記第1のリクエストを受信した後に受信する第2のリクエストに対応する第2のアプリケーションの実行制御時に前記プロセスが使用する第3のメモリ容量を取得するステップと、前記第2のアプリケーションの実行により生成されるスレッド数を取得するステップと、前記第2のメモリ容量および前記第3のメモリ容量を用いて一リクエスト当たりのメモリ容量を算出するステップと、前記取得された前記スレッド数および前記一リクエスト当たりのメモリ容量を用いて一スレッド当たりのメモリ容量を算出するステップと、前記第1のメモリ容量、前記第2のメモリ容量および前記一スレッド当たりのメモリ容量を用いて前記プロセスにおける前記スレッド数の上限値を算出して設定するステップと、を含む。
本発明のスレッド数制限プログラムは、上記スレッド数制限方法に含まれる各ステップをコンピュータに実行させる。
本発明によれば、リソースの状況に応じてプロセスごとの処理を効率良く向上させることができる。
実施形態におけるスレッド数制限装置の機能構成を例示するブロック図である。 スレッド数の上限値を設定する際の処理手順を例示するフローチャートである。 スレッド数の下限値を設定する際の処理手順を例示するフローチャートである。 従来のコンピュータ装置でのスレッド数の推移状態を例示する図である。 実施形態のスレッド数制限装置でのスレッド数の推移状態を例示する図である。 従来のコンピュータ装置および実施形態のスレッド数制限装置における過剰スレッド数および不足スレッド数を例示する図である。
以下、添付図面を参照して、本発明に係るスレッド数制限装置、スレッド数制限方法およびスレッド数制限プログラムの好適な実施形態について説明する。ここで、スレッド数制限装置は、マルチスレッドプログラムを実行可能な装置である。マルチスレッドプログラムとは、マルチスレッドで処理を実行するように記述されたプログラムをいう。
図1を参照して、実施形態におけるスレッド数制限装置の機能構成について説明する。スレッド数制限装置1は、リクエスト送信部11と、スレッド制御部12と、メモリ容量監視部13と、スレッド数監視部14と、キュー監視部15と、制限値設定部16と、を有する。
ここで、スレッド数制限装置1は、物理的には、例えば、CPU(Central Processing Unit)と、記憶装置と、入出力インターフェースとを含んで構成される。これらの要素は、互いにバスを介して接続されている。記憶装置には、例えば、CPUで処理されるプログラムやデータを記憶するROM(Read Only Memory)やHDD(Hard Disk Drive)、主として制御処理のための各種作業領域として使用されるRAM(Random Access Memory;メモリ)等が含まれる。CPUは、ROMに記憶されたプログラムを実行し、入出力インターフェースを介して受信される各種のメッセージ等に従ってRAMに展開された各種のデータを処理する。これにより、以下に詳述するスレッド数制限装置1の各部の機能を実現することができる。
リクエスト送信部11は、自装置1宛てのリクエストを発行して送信する。リクエストには、アプリケーションの実行要求が含まれる。リクエスト送信部11は、プロセス起動直後の1件目のリクエストとして、初期起動用のアプリケーションの実行を要求するリクエストを発行する。リクエスト送信部11は、プロセス起動直後の2件目のリクエストとして、マルチスレッドプログラムの実行を要求するリクエストを発行する。プロセスは、プログラムを実行することで生成され、プログラムに含まれるアプリケーションを実行制御する。
リクエスト送信部11を備えることで、プロセスを起動してから、クライアントからのリクエストを処理するまでの間に、自ら発行したリクエストに基づいて、後述するスレッド数の上限値を設定することが可能となる。
スレッド制御部12は、リクエストに応じてマルチスレッドプログラムを実行し、プロセス内にスレッドを生成することやスレッドを削除することによってスレッド数を制御する。スレッド制御部12は、後述するスレッド数の上限値や下限値に従ってプロセス内のスレッド数を制限する。
メモリ容量監視部13は、プロセスの起動時に、起動するプロセスで使用可能なメモリ容量を取得して監視データファイルに記憶する。メモリ容量監視部13は、リクエストに対応するアプリケーションの実行時に、このアプリケーションの実行時にプロセスが使用するメモリ容量を取得し、監視データファイルに記憶する。
スレッド数監視部14は、リクエストに対応するアプリケーションの実行時に、このアプリケーションの実行によってプロセス内に生成されるスレッド数を取得し、監視データファイルに記憶する。
スレッド数監視部14は、プロセスの起動後、所定のサンプリング間隔ごとに、プロセス内に生成されている稼働状態のスレッド数を収集し、時系列の稼働状態スレッド数データとして監視データファイルに蓄積する。なお、上記所定のサンプリング間隔は、リクエスト数の増減に応じてスレッド数の下限値の設定を変動させるために適切となる間隔を実験等により求め、任意に設定することができる。また、上記所定のサンプリング間隔を、リクエストを送信するクライアント端末から設定できるようにしてもよい。
キュー監視部15は、プロセスの起動後、上記所定のサンプリング間隔ごとに、処理待ち状態のリクエスト数を収集し、時系列の処理待ち状態リクエスト数データとして監視データファイルに蓄積する。
制限値設定部16は、スレッド数の上限値および下限値をそれぞれ算出し、制限値パラメタファイルの上限値パラメタおよび下限値パラメタにそれぞれ設定する。
制限値設定部16は、例えば、以下の手順にしたがって、スレッド数の上限値を算出して上限値パラメタに設定する。
最初に、制限値設定部16は、メモリ容量監視部13によって取得されたメモリ容量を用い、一リクエスト当たりのメモリ容量を算出する。一リクエスト当たりのメモリ容量は、例えば、下記式1を用いて算出することができる。
MR = M2 − M1 … 式1
上記式1のMRは一リクエスト当たりのメモリ容量であり、M2は2件目のリクエストに対応するアプリケーションの実行時にプロセスが使用するメモリ容量であり、M1は1件目のリクエストに対応するアプリケーションの実行時にプロセスが使用するメモリ容量である。
続いて、制限値設定部16は、スレッド数監視部14によって取得されたスレッド数および一リクエスト当たりのメモリ容量MRを用い、一スレッド当たりのメモリ容量を算出する。一スレッド当たりのメモリ容量は、例えば、下記式2を用いて算出することができる。なお、スレッド数とリクエスト数とは比例関係にあり、スレッド数はリクエスト数の整数倍になる。
MT = MR/T … 式2
上記式2のMTは一スレッド当たりのメモリ容量であり、MRは一リクエスト当たりのメモリ容量であり、Tは2件目のリクエストに対応するアプリケーションの実行によって生成されるスレッド数である。
続いて、制限値設定部16は、メモリ容量監視部13によって取得されたメモリ容量および一スレッド当たりのメモリ容量MTを用い、プロセスにおけるスレッド数の上限値を算出する。スレッド数の上限値は、例えば、下記式3を用いて算出することができる。
Tmax = {(Mmax − M1)/MT} + 1 … 式3
上記式3のTmaxはスレッド数の上限値であり、Mmaxはプロセスで使用可能なメモリ容量である。M1は1件目のリクエストに対応するアプリケーションの実行時にプロセスが使用するメモリ容量であり、MTは一スレッド当たりのメモリ容量である。なお、上記式3で1を加算しているのは、MmaxからM1を差し引いたメモリ容量に基づいてスレッド数の上限値Tmaxを算出しているため、M1分のメモリ容量に生成可能な一スレッド分を加算したものである。
続いて、制限値設定部16は、算出したスレッド数の上限値Tmaxを、制限値パラメタファイルの上限値パラメタに設定する。
制限値設定部16は、例えば、以下の手順にしたがって、スレッド数の下限値を算出して下限値パラメタに設定する。
最初に、制限値設定部16は、プロセスが起動した後、所定時間が経過するごとに、直近の所定時間の間に、キュー監視部15によって収集された時系列の処理待ち状態リクエスト数データおよびスレッド数監視部14によって収集された時系列の稼働状態スレッド数データを用いて、時系列のスレッド数データを生成する。
上記所定時間は、リクエスト数の増減に応じてスレッド数の下限値の設定を変動させるために適切となる時間を実験等により求め、任意に設定することができる。ただし、所定時間が短すぎると突発的なリクエスト数の変動に左右され易くなり、所定時間が長すぎるとリクエスト数の変動が平均化されてしまい、リクエスト数の増減に応じたスレッド数の下限値を設定することが難しくなる。この所定時間と上述した所定のサンプリング間隔とを調節することで、リクエスト数の増減をスレッド数の下限値に反映させる度合を調整することが可能となる。
ここで、上記時系列のスレッド数データは、例えば、処理待ち状態リクエスト数データをスレッド数データに換算し、換算後のスレッド数データと、稼働状態スレッド数データとを、同じサンプリング時刻ごとに加算していくことで生成することができる。
続いて、制限値設定部16は、生成した時系列のスレッド数データを用い、プロセスにおけるスレッド数の下限値を算出する。スレッド数の下限値は、例えば、下記式4を用いて算出することができる。
Tmin = (W1*X1 + … + Wn*Xn)/(W1 + … + Wn) … 式4
上記式4は、加重移動平均を算出する式である。上記式4のTminはスレッド数の下限値であり、X1〜Xnは時系列のスレッド数データであり、W1〜Wnはスレッド数データX1〜Xnに対してそれぞれ付加する重みである。重みW1〜Wnは、スレッド数データX1〜Xnのサンプリング時刻が現在に近いほど大きくなる。これにより、現在の状況に応じた下限値を算出することが可能となる。
続いて、制限値設定部16は、算出したスレッド数の下限値Tminが、上限値パラメタに設定されているスレッド数の上限値Tmaxよりも大きい場合には、算出したスレッド数の下限値Tminに、上限値パラメタに設定されているスレッド数の上限値Tmaxをセットする。
続いて、制限値設定部16は、算出したスレッド数の下限値Tminまたは上限値Tmaxをセットした下限値Tminを、制限値パラメタファイルの下限値パラメタに設定する。
次に、図面を参照して本実施形態におけるスレッド数制限装置の動作について説明する。図2を参照して、スレッド数の上限値を設定する際の動作について説明する。図2は、スレッド数の上限値を設定する際の処理手順を例示するフローチャートである。
最初に、プロセスが起動する(ステップS101)と、メモリ容量監視部13は、その起動したプロセスで使用可能なメモリ容量Mmaxを取得する(ステップS102)。
続いて、リクエスト送信部11は、自装置1宛ての1件目のリクエストを発行して送信する(ステップS103)。スレッド数制限装置1は、1件目のリクエストを受信し、1件目のリクエストに対応する初期起動用のアプリケーションを実行する。これにより、初期起動時のオブジェクトが生成される一方、スレッドは生成されない。
続いて、メモリ容量監視部13は、初期起動用のアプリケーションの実行時にプロセスが使用するメモリ容量M1を取得する(ステップS104)。
続いて、リクエスト送信部11は、自装置1宛ての2件目のリクエストを発行して送信する(ステップS105)。スレッド数制限装置1は、2件目のリクエストを受信し、2件目のリクエストに対応するアプリケーションとしてマルチスレッドプログラムを実行する。これにより、スレッドが生成される。
続いて、メモリ容量監視部13は、2件目のリクエストに対応するマルチスレッドプログラムの実行時にプロセスが使用するメモリ容量M2を取得し(ステップS106)、スレッド数監視部14は、2件目のリクエストに対応するマルチスレッドプログラムの実行によって生成されるスレッド数Tを取得する(ステップS107)。
続いて、制限値設定部16は、上記ステップS104で取得したメモリ容量M1および上記ステップS106で取得したメモリ容量M2を上記式1に代入して、一リクエスト当たりのメモリ容量MRを算出する(ステップS108)。
続いて、制限値設定部16は、上記ステップS107で取得したスレッド数Tおよび上記ステップS108で算出した一リクエスト当たりのメモリ容量MRを上記式2に代入して、一スレッド当たりのメモリ容量MTを算出する(ステップS109)。
続いて、制限値設定部16は、上記ステップS102で取得したメモリ容量Mmax、上記ステップS104で取得したメモリ容量M1および上記ステップS108で算出した一スレッド当たりのメモリ容量MTを上記式3に代入して、プロセスにおけるスレッド数の上限値Tmaxを算出する(ステップS110)。
続いて、制限値設定部16は、上記ステップS110で算出したスレッド数の上限値Tmaxを上限値パラメタに設定する(ステップS111)。
図3を参照して、スレッド数の下限値を設定する際の動作について説明する。図3は、スレッド数の下限値を設定する際の処理手順を例示するフローチャートである。
最初に、プロセスを起動してから所定時間が経過したか否かを判定する(ステップS201)。この判定がYESである場合(ステップS201;YES)に、制限値設定部16は、キュー監視部15によって収集された時系列の処理待ち状態リクエスト数データを取得し(ステップS202)、スレッド数監視部14によって収集された時系列の稼働状態スレッド数データを取得する(ステップS203)。
続いて、制限値設定部16は、上記ステップS202で取得した処理待ち状態リクエスト数データおよび上記ステップS203で取得した稼働状態スレッド数データを用いて、時系列のスレッド数データX1〜Xnを生成する(ステップS204)。
続いて、制限値設定部16は、上記ステップS204で生成した時系列のスレッド数データX1〜Xnを、上記式4に代入して、プロセスにおけるスレッド数の下限値Tminを算出する(ステップS205)。
続いて、制限値設定部16は、上記ステップS205で算出したスレッド数の下限値Tminが、上限値パラメタに設定されているスレッド数の上限値Tmaxよりも大きいか否かを判定する(ステップS206)。この判定がNOである場合(ステップS206;NO)には、後述するステップS208に処理を移行する。
一方、上記ステップS206の判定でスレッド数の下限値Tminがスレッド数の上限値Tmaxよりも大きいと判定した場合(ステップS206;YES)に、制限値設定部16は、上記ステップS205で算出したスレッド数の下限値Tminに、上限値パラメタに設定されているスレッド数の上限値Tmaxをセットする(ステップS207)。
続いて、制限値設定部16は、上記ステップS205で算出したスレッド数の下限値Tminまたは上記ステップS207で上限値Tmaxをセットしたスレッド数の下限値Tminを下限値パラメタに設定する(ステップS208)。
上述してきたように、本実施形態におけるスレッド数制限装置1によれば、一リクエスト当たりのメモリ容量MRに基づいて一スレッド当たりのメモリ容量MTを算出し、一スレッド当たりのメモリ容量MTおよびプロセスごとに使用可能なメモリ容量Mmaxに基づいてスレッド数の上限値Tmaxを算出することができ、この算出したスレッド数の上限値Tmaxを上限値パラメタに設定することができる。これにより、プロセスごとに稼働するスレッド数を、スレッド数の上限値Tmax以下となるように制限することができるため、メモリ容量の無駄な消費をプロセスごとに抑制することができ、リソースを有効に使用することが可能となる。
また、本実施形態におけるスレッド数制限装置1によれば、収集した時系列の処理待ち状態リクエスト数データおよび時系列の稼働状態スレッド数データに基づいて時系列のスレッド数データX1〜Xnを生成し、時系列のスレッド数データX1〜Xnに基づいてスレッド数の下限値Tminを算出することができ、この算出したスレッド数の下限値Tminを下限値パラメタに設定することができる。これにより、プロセスごとに稼働するスレッド数を、スレッド数の下限値Tmin以上となるように制限することができるため、プロセスごとの処理状況に応じて必要最低限のスレッド数を確保することができ、処理時間を短縮することが可能となる。
ここで、図4〜図6を参照して、従来のスレッド数を固定するコンピュータ装置と本実施形態のスレッド数制限装置1との間の処理効率の差について具体的に説明する。図4および図5に示す稼働スレッド数の推移を示すデータは、6:00頃にリクエスト数がピークを迎える模擬データである。図4および図5に示す模擬データは、一リクエスト一スレッドで動作する場合のデータである。したがって、稼働スレッド数の推移はリクエスト数の推移と置き換えることができる。
図4は、従来のコンピュータ装置でのスレッド数の推移状態を示す図である。図4に示す従来のコンピュータ装置は、過去のスレッド数を平均した値である“5”に固定している。これに対してリクエスト数(模擬データのスレッド数)は、時間帯に応じて“0”〜“15”の間で大きく変動する。
図5は、本実施形態のスレッド数制限装置1でのスレッド数の推移状態を示す図である。図5に示す本実施形態のスレッド数制限装置1は、上述したように、プロセスごとのリソース状況に応じてスレッド数の上限値を設定し、リクエスト数に応じてスレッド数の下限値を設定している。これにより、本実施形態のスレッド数制限装置1は、リクエスト数(模擬データのスレッド数)に追従してスレッド数を増減させている。
図6は、図4および図5に示す状態で処理を実行した結果、従来のコンピュータ装置と本実施形態のスレッド数制限装置1とでそれぞれ発生した過剰スレッド数および不足スレッド数を示す図である。図6に示すように、従来のコンピュータ装置では、過剰スレッド数および不足スレッド数が共に120強であるのに対し、本実施形態のスレッド数制限装置1では、過剰スレッド数が40弱、不足スレッド数が70強にそれぞれ低減している。過剰スレッド数を低減することでメモリ容量の無駄な使用を削減することができ、不足スレッド数を低減することでリクエストの処理時間を短縮することができる。つまり、本実施形態のスレッド数制限装置1は、従来のコンピュータ装置に比べ、プロセスごとの処理効率を向上させることができる。
なお、上述した実施形態は、単なる例示に過ぎず、実施形態に明示していない種々の変形や技術の適用を排除するものではない。すなわち、本発明は、その趣旨を逸脱しない範囲で様々な形態に変形して実施することができる。
例えば、上述した実施形態における制限値設定部16は、スレッド数の下限値を算出する際に、時系列のスレッド数データを生成し、この時系列のスレッド数データに基づいてスレッド数の下限値を算出しているが、これに限定されない。例えば、時系列のリクエスト数データを生成し、この時系列のリクエスト数データに基づいて、スレッド数の下限値を算出することとしてもよい。この場合には、稼働状態スレッド数データをリクエスト数データに換算し、換算後のリクエスト数データと、処理待ち状態リクエスト数データとを、同じサンプリング時刻ごとに加算していくことで時系列のリクエスト数データを生成することができる。また、生成した時系列のリクエスト数データを、時系列のスレッド数データに換算し、換算後の時系列のスレッド数データを、上記式4に代入することで、スレッド数の下限値を算出することができる。
1…スレッド数制限装置、11…リクエスト送信部、12…スレッド制御部、13…メモリ容量監視部、14…スレッド数監視部、15…キュー監視部、16…制限値設定部。

Claims (7)

  1. アプリケーションを実行制御するプロセスの起動時に、当該プロセスで使用可能な第1のメモリ容量を取得する第1の取得部と、
    第1のリクエストに対応する第1のアプリケーションの実行制御時に前記プロセスが使用する第2のメモリ容量を取得する第2の取得部と、
    前記第1のリクエストを受信した後に受信する第2のリクエストに対応する第2のアプリケーションの実行制御時に前記プロセスが使用する第3のメモリ容量を取得する第3の取得部と、
    前記第2のアプリケーションの実行により生成されるスレッド数を取得する第4の取得部と、
    前記第2のメモリ容量および前記第3のメモリ容量を用いて一リクエスト当たりのメモリ容量を算出する第1の算出部と、
    前記取得された前記スレッド数および前記一リクエスト当たりのメモリ容量を用いて一スレッド当たりのメモリ容量を算出する第2の算出部と、
    前記第1のメモリ容量、前記第2のメモリ容量および前記一スレッド当たりのメモリ容量を用いて前記プロセスにおける前記スレッド数の上限値を算出して設定する上限値設定部と、
    を備えることを特徴とするスレッド数制限装置。
  2. 前記上限値設定部によって設定された前記スレッド数の上限値に従ってスレッド数を制限するスレッド数上限制御部をさらに備えることを特徴とする請求項1記載のスレッド数制限装置。
  3. 前記プロセスの起動後、所定のサンプリング間隔ごとに、処理待ち状態のリクエスト数、および稼働状態のスレッド数を収集する収集部と、
    前記プロセスの起動後、所定時間ごとに、前記収集部によって収集された前記処理待ち状態のリクエスト数および前記稼働状態のスレッド数を用いて時系列のリクエスト数データを生成する生成部と、
    前記生成された前記時系列のリクエスト数データを用いて前記プロセスにおける前記スレッド数の下限値を算出して設定する下限値設定部と、
    をさらに備えることを特徴とする請求項1または2記載のスレッド数制限装置。
  4. 前記下限値設定部によって設定された前記スレッド数の下限値に従ってスレッド数を制限するスレッド数下限制御部をさらに備えることを特徴とする請求項3記載のスレッド数制限装置。
  5. 前記第1のリクエストおよび前記第2のリクエストを送信する送信部をさらに備えることを特徴とする請求項1〜4のいずれか1項に記載のスレッド数制限装置。
  6. アプリケーションを実行制御するプロセスの起動時に、当該プロセスで使用可能な第1のメモリ容量を取得するステップと、
    第1のリクエストに対応する第1のアプリケーションの実行制御時に前記プロセスが使用する第2のメモリ容量を取得するステップと、
    前記第1のリクエストを受信した後に受信する第2のリクエストに対応する第2のアプリケーションの実行制御時に前記プロセスが使用する第3のメモリ容量を取得するステップと、
    前記第2のアプリケーションの実行により生成されるスレッド数を取得するステップと、
    前記第2のメモリ容量および前記第3のメモリ容量を用いて一リクエスト当たりのメモリ容量を算出するステップと、
    前記取得された前記スレッド数および前記一リクエスト当たりのメモリ容量を用いて一スレッド当たりのメモリ容量を算出するステップと、
    前記第1のメモリ容量、前記第2のメモリ容量および前記一スレッド当たりのメモリ容量を用いて前記プロセスにおける前記スレッド数の上限値を算出して設定するステップと、
    を含むことを特徴とするスレッド数制限方法。
  7. 請求項6に記載の各ステップをコンピュータに実行させるためのスレッド数制限プログラム。
JP2010020278A 2010-02-01 2010-02-01 スレッド数制限装置、スレッド数制限方法およびスレッド数制限プログラム Expired - Fee Related JP5440937B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010020278A JP5440937B2 (ja) 2010-02-01 2010-02-01 スレッド数制限装置、スレッド数制限方法およびスレッド数制限プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010020278A JP5440937B2 (ja) 2010-02-01 2010-02-01 スレッド数制限装置、スレッド数制限方法およびスレッド数制限プログラム

Publications (2)

Publication Number Publication Date
JP2011159107A true JP2011159107A (ja) 2011-08-18
JP5440937B2 JP5440937B2 (ja) 2014-03-12

Family

ID=44591002

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010020278A Expired - Fee Related JP5440937B2 (ja) 2010-02-01 2010-02-01 スレッド数制限装置、スレッド数制限方法およびスレッド数制限プログラム

Country Status (1)

Country Link
JP (1) JP5440937B2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011159995A (ja) * 2003-05-23 2011-08-18 Nikon Corp 露光装置及びデバイス製造方法
JP2013222407A (ja) * 2012-04-18 2013-10-28 Bank Of Tokyo-Mitsubishi Ufj Ltd 流量制御機能を有するシステム
WO2013161076A1 (ja) * 2012-04-27 2013-10-31 株式会社日立製作所 データベース管理システム、計算機、データベース管理方法
WO2013161080A1 (ja) * 2012-04-27 2013-10-31 株式会社日立製作所 データベース管理システム、計算機、データベース管理方法
WO2024021497A1 (zh) * 2022-07-29 2024-02-01 天翼云科技有限公司 一种产品介质下载任务调度方法、装置及电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0340034A (ja) * 1989-07-06 1991-02-20 Fujitsu Ltd プロセスの実行多重度制御処理装置
JP2004515838A (ja) * 2000-07-24 2004-05-27 サン マイクロシステムズ インコーポレーテッド スケーラブル・メモリの効率的なスレッドローカル・オブジェクト割り当て方法
JP2005107824A (ja) * 2003-09-30 2005-04-21 Japan Research Institute Ltd Eaiサーバおよびeaiサーバのプログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0340034A (ja) * 1989-07-06 1991-02-20 Fujitsu Ltd プロセスの実行多重度制御処理装置
JP2004515838A (ja) * 2000-07-24 2004-05-27 サン マイクロシステムズ インコーポレーテッド スケーラブル・メモリの効率的なスレッドローカル・オブジェクト割り当て方法
JP2005107824A (ja) * 2003-09-30 2005-04-21 Japan Research Institute Ltd Eaiサーバおよびeaiサーバのプログラム

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CSND199800711013; 宗  雅彦: 'UNIXで学ぶマルチスレッド・プログラミング' インターフェース 第20巻  第12号, 19941201, p.192-199, CQ出版株式会社 *
JPN6013058095; 宗  雅彦: 'UNIXで学ぶマルチスレッド・プログラミング' インターフェース 第20巻  第12号, 19941201, p.192-199, CQ出版株式会社 *

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011159995A (ja) * 2003-05-23 2011-08-18 Nikon Corp 露光装置及びデバイス製造方法
JP2013222407A (ja) * 2012-04-18 2013-10-28 Bank Of Tokyo-Mitsubishi Ufj Ltd 流量制御機能を有するシステム
WO2013161076A1 (ja) * 2012-04-27 2013-10-31 株式会社日立製作所 データベース管理システム、計算機、データベース管理方法
WO2013161080A1 (ja) * 2012-04-27 2013-10-31 株式会社日立製作所 データベース管理システム、計算機、データベース管理方法
JPWO2013161076A1 (ja) * 2012-04-27 2015-12-21 株式会社日立製作所 データベース管理システム、計算機、データベース管理方法
JPWO2013161080A1 (ja) * 2012-04-27 2015-12-21 株式会社日立製作所 データベース管理システム、計算機、データベース管理方法
US9842136B2 (en) 2012-04-27 2017-12-12 Hitachi, Ltd. Database management system, computer, and database management method
US10417227B2 (en) 2012-04-27 2019-09-17 Hitachi, Ltd. Database management system, computer, and database management method
US11636107B2 (en) 2012-04-27 2023-04-25 Hitachi, Ltd. Database management system, computer, and database management method
WO2024021497A1 (zh) * 2022-07-29 2024-02-01 天翼云科技有限公司 一种产品介质下载任务调度方法、装置及电子设备

Also Published As

Publication number Publication date
JP5440937B2 (ja) 2014-03-12

Similar Documents

Publication Publication Date Title
CN107003706B (zh) 非暂时性计算机可读存储介质和用于管理作业的装置
US20150295970A1 (en) Method and device for augmenting and releasing capacity of computing resources in real-time stream computing system
KR101155202B1 (ko) 멀티 코어 프로세서의 전력 관리 방법, 멀티 코어 프로세서의 전력 관리 방법이 기록된 기록매체 및 이를 실행하는 멀티 코어 프로세서 시스템
JP5440937B2 (ja) スレッド数制限装置、スレッド数制限方法およびスレッド数制限プログラム
JP4367856B2 (ja) プロセス制御システム及びその制御方法
KR101651871B1 (ko) 멀티코어 시스템 상에서 단위 작업을 할당하는 방법 및 그 장치
TW200941209A (en) Power-aware thread schedulingard and dynamic use of processors
JP2010079908A (ja) メモリ管理装置及びその方法
JP2017511940A5 (ja)
JP2010165259A (ja) 情報処理装置および情報処理方法
JP2011118525A (ja) サーバ管理装置とサーバ管理方法およびサーバ管理プログラム
US11269686B2 (en) Adaptive consumer thread pool
US20120254822A1 (en) Processing optimization load adjustment
JP2015022504A (ja) 情報処理装置、方法、及びプログラム
JP2016126426A (ja) マルチコアシステム、マルチコアプロセッサ、並列処理方法及び並列処理制御プログラム
JP2013149221A (ja) プロセッサの制御装置およびその方法
JP2007179246A (ja) 計算機管理方法、計算機管理プログラム、および、計算機管理サーバ
Kim et al. Using DVFS and task scheduling algorithms for a hard real-time heterogeneous multicore processor environment
JP2007122527A (ja) 流量制御方法
KR101828996B1 (ko) 이종 멀티프로세싱 환경에서 파이프라인 병렬화를 지원하는 동적 시스템 자원 할당 방법 및 장치
JP4422523B2 (ja) 情報処理装置、電気機器、情報処理装置のクロック制御方法、クロック制御プログラム及びその記録媒体
WO2016058149A1 (zh) 一种预测处理器利用率的方法、处理装置和终端设备
JP2011124677A (ja) パケット処理装置、パケット振り分け装置、制御プログラム及びパケット分散方法
WO2013129061A1 (ja) 同時接続数制御システム、同時接続数制御サーバ、同時接続数制御方法および同時接続数制御プログラム
JP2019109600A (ja) 情報処理装置、計算機制御方法、および計算機制御プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130111

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131118

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131205

R150 Certificate of patent or registration of utility model

Ref document number: 5440937

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees