JP2012113380A - Service provision device, service provision method, and program - Google Patents
Service provision device, service provision method, and program Download PDFInfo
- Publication number
- JP2012113380A JP2012113380A JP2010259686A JP2010259686A JP2012113380A JP 2012113380 A JP2012113380 A JP 2012113380A JP 2010259686 A JP2010259686 A JP 2010259686A JP 2010259686 A JP2010259686 A JP 2010259686A JP 2012113380 A JP2012113380 A JP 2012113380A
- Authority
- JP
- Japan
- Prior art keywords
- request
- monitoring
- sub
- tenant
- attribute
- 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.)
- Withdrawn
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
Description
本発明はサービス提供装置、サービス提供方法、及び、プログラムに関し、特に、リクエストに対するメモリ使用量を監視するサービス提供装置、サービス提供方法、及び、プログラム。 The present invention relates to a service providing apparatus, a service providing method, and a program, and in particular, a service providing apparatus, a service providing method, and a program for monitoring a memory usage amount for a request.
システムを構成するリソースが複数の利用者組織(以下、テナントとする)間で共有されるとき、このようなシステムは、一般にマルチテナント型システムと呼ばれる。マルチテナント型システムには様々な実現方式があるが、ここでは複数のテナントがコンピュータ上のプロセスを共有し、プロセス上で稼働する複数のスレッドが複数のテナントにサービスを提供するものとする。 When the resources constituting the system are shared among a plurality of user organizations (hereinafter referred to as tenants), such a system is generally called a multi-tenant system. There are various realization methods in the multi-tenant system. Here, a plurality of tenants share a process on a computer, and a plurality of threads operating on the process provide services to a plurality of tenants.
図23は、マルチテナント型システム上で稼働するスレッドとテナントとの対応関係の例を示す図である。マルチテナント型システムにおいては、プロセス上で稼働する各スレッドが各テナントに属する個々の利用者からのリクエストを処理する。図23の例では、利用者1、2、3、…、Mによるリクエストは、それぞれ、サービス提供装置100のプロセス上で動作するスレッド1、2、3、…、Mが処理する。ここで、利用者1はテナント1に、利用者2と利用者3はテナント2に、利用者MはテナントNにそれぞれ属する。すなわち、テナント1によるリクエストはスレッド1が処理し、テナント2によるリクエストはスレッド2とスレッド3が処理し、テナントNによるリクエストはスレッドMが処理する。このような利用者とスレッドとの対応関係は1つの処理が終了する度に解消され、あるスレッドは、別のタイミングにおいては異なるテナントに属する利用者からのリクエストを処理する。
FIG. 23 is a diagram illustrating an example of a correspondence relationship between a thread operating on a multi-tenant system and a tenant. In a multi-tenant type system, each thread operating on a process processes a request from an individual user belonging to each tenant. In the example of FIG. 23, requests by
このように、マルチテナント型システムでは、複数のテナント間でリソースを共有することにより、システムのテナントあたりの運用コストが軽減できる。一方、利用者であるテナントにとっては、可能な限り、他のテナントとリソースが共有されない一般的なシステムと同様の条件で、マルチテナント型システムを利用できることが望ましい。このような条件として、例えば、あるテナントに対するサービスの提供やサービス品質が、他のテナントによる共有リソースの使用量に影響されないようにすること、すなわち性能隔離がある。性能隔離を実現するためには、例えば、共有リソースを大量に使用するテナントに対しては、専用のリソースプールを割り当てる、或いは、リソースの使用制限を設けるというように、テナント毎のリソース使用量に応じた対応が行われる。このような性能隔離を行うためには、各テナントのリソース使用量を把握することが必要となる。 As described above, in the multi-tenant type system, the operation cost per tenant of the system can be reduced by sharing resources among a plurality of tenants. On the other hand, it is desirable for a tenant who is a user to be able to use a multi-tenant system under the same conditions as a general system in which resources are not shared with other tenants as much as possible. As such a condition, for example, the provision of a service to a certain tenant and the service quality are prevented from being influenced by the usage amount of the shared resource by another tenant, that is, performance isolation. In order to achieve performance isolation, for example, for a tenant that uses a large amount of shared resources, a dedicated resource pool is allocated, or resource usage restrictions are set, so that resource usage for each tenant can be reduced. Responses are made accordingly. In order to perform such performance isolation, it is necessary to grasp the resource usage of each tenant.
非特許文献1には、マルチテナント型システムにおける、リソース監視機能やリソース監視結果に基づいた対応機能などからなる性能隔離の枠組みが記載されている。しかしながら、非特許文献1には、リソース監視の具体的な実現方法は開示されていない。
Non-Patent
ここで、監視対象のリソースをメモリ使用量とした場合の、マルチテナント型システムのリソース監視の問題点を説明する。 Here, the problem of resource monitoring in the multi-tenant system when the monitoring target resource is the memory usage will be described.
図24は、マルチテナント型システムのプロセスにおけるメモリ使用量の変化の例を示す図である。マルチテナント型システムでは、同一のプロセス上で、複数のスレッドの処理が同時並行で実行され(以下、これをマルチスレッドプロセスとする)、かつ、複数のスレッドのそれぞれが互いにプロセスのメモリ空間を共有する。そして、あるメモリ領域は、同時に複数のスレッドによって使用されることがある。このため、メモリ使用量をスレッド毎に監視することができず、テナント毎のメモリ使用量も監視することができない。 FIG. 24 is a diagram illustrating an example of a change in memory usage in the process of the multi-tenant system. In a multi-tenant system, multiple threads are processed concurrently in the same process (hereinafter referred to as a multi-thread process), and each of the multiple threads shares the memory space of the process with each other. To do. A certain memory area may be used by a plurality of threads at the same time. For this reason, the memory usage cannot be monitored for each thread, and the memory usage for each tenant cannot be monitored.
このようなマルチスレッドプロセスのメモリ使用量をスレッド毎に監視する方法が、例えば、特許文献1に開示されている。特許文献1記載のシステムは、プロセス全体のメモリ使用量と実行されていたスレッドとを監視し、プロセス全体のメモリ使用量を、同時に実行されていた各スレッドに所定の割合で案分することで、スレッド毎のメモリ使用量の概算値を算出する。
A method for monitoring the memory usage of such a multi-thread process for each thread is disclosed in
しかしながら、特許文献1に記載の方法では、プロセス全体のメモリ使用量を各スレッドに案分することによりスレッド毎のメモリ使用量の概算値を算出するため、メモリ使用量の監視精度が低いという課題があった。特に、同時に実行されるスレッド数が多いシステムに適用した場合、各スレッドのメモリ使用量の概算値は、他のスレッドのメモリ使用量の影響を大きく受けるため、その監視精度は大幅に低下する。
However, in the method described in
本発明の目的は、上述した課題を解決し、マルチテナント型システムにおいて、テナント毎のメモリ使用量を精度良く監視できるサービス提供装置、サービス提供方法、及び、プログラムを提供することにある。 An object of the present invention is to solve the above-described problems and provide a service providing apparatus, a service providing method, and a program capable of accurately monitoring the memory usage for each tenant in a multi-tenant system.
本発明のサービス提供装置は、それぞれが複数の属性のいずれかを含むリクエストを、当該リクエストの処理に必要なメモリを確保して処理する、サブプロセスとメインプロセスとを実行する処理手段と、前記複数の属性の中の、監視候補である1以上の属性の内のいずれか1つを前記サブプロセスに関連づけ、入力されたリクエストが当該関連づけられた属性を含む場合、当該リクエストを前記サブプロセスに送信し、それ以外の属性を含む場合、当該リクエストを前記メインプロセスに送信するサンプリング手段と、前記サブプロセスが確保したメモリ量を、リクエストの属性毎に取得して出力するサブプロセス監視手段とを含む。 The service providing apparatus according to the present invention includes a processing unit that executes a sub-process and a main process that processes a request including any of a plurality of attributes while securing a memory necessary for processing the request, If any one of one or more attributes that are candidates for monitoring is associated with the subprocess, and the input request includes the associated attribute, the request is assigned to the subprocess. And when there are other attributes, sampling means for sending the request to the main process, and sub-process monitoring means for obtaining and outputting the amount of memory secured by the sub-process for each request attribute Including.
本発明のサービス提供方法は、それぞれが複数の属性のいずれかを含むリクエストを、当該リクエストの処理に必要なメモリを確保して処理する、サブプロセスとメインプロセスとを実行し、前記複数の属性の中の、監視候補である1以上の属性の内のいずれか1つを前記サブプロセスに関連づけ、入力されたリクエストが当該関連づけられた属性を含む場合、当該リクエストを前記サブプロセスに送信し、それ以外の属性を含む場合、当該リクエストを前記メインプロセスに送信し、前記サブプロセスが確保したメモリ量を、リクエストの属性毎に取得して出力する。 The service providing method according to the present invention executes a sub-process and a main process that process a request including any of a plurality of attributes while securing a memory necessary for processing the request, and the plurality of attributes. Any one of one or more attributes that are candidates for monitoring is associated with the sub-process, and if the input request includes the associated attribute, the request is transmitted to the sub-process, When other attributes are included, the request is transmitted to the main process, and the amount of memory secured by the sub-process is acquired and output for each request attribute.
本発明のプログラムは、コンピュータに、それぞれが複数の属性のいずれかを含むリクエストを、当該リクエストの処理に必要なメモリを確保して処理する、サブプロセスとメインプロセスとを実行し、前記複数の属性の中の、監視候補である1以上の属性の内のいずれか1つを前記サブプロセスに関連づけ、入力されたリクエストが当該関連づけられた属性を含む場合、当該リクエストを前記サブプロセスに送信し、それ以外の属性を含む場合、当該リクエストを前記メインプロセスに送信し、前記サブプロセスが確保したメモリ量を、リクエストの属性毎に取得して出力する処理を実行させる。 The program of the present invention executes a sub-process and a main process, which processes a request including each of a plurality of attributes in a computer while securing a memory necessary for processing the request, If any one of one or more attributes that are candidates for monitoring is associated with the subprocess, and the input request includes the associated attribute, the request is transmitted to the subprocess. When other attributes are included, the request is transmitted to the main process, and a process for acquiring and outputting the amount of memory secured by the sub-process for each request attribute is executed.
本発明の効果は、マルチテナント型システムにおいて、テナント毎のメモリ使用量を精度良く監視できることである。 The effect of the present invention is that the memory usage for each tenant can be accurately monitored in a multi-tenant system.
(第一の実施の形態)
次に、本発明の第一の実施の形態について図面を参照して詳細に説明する。はじめに、本発明の第一の実施の形態の構成について説明する。
(First embodiment)
Next, a first embodiment of the present invention will be described in detail with reference to the drawings. First, the configuration of the first embodiment of the present invention will be described.
図2は、本発明の第一の実施の形態におけるマルチテナントシステムの構成を示すブロック図である。 FIG. 2 is a block diagram showing a configuration of the multi-tenant system in the first embodiment of the present invention.
図2を参照すると、マルチテナントシステムは、サービス提供装置100と複数の利用者端末200とを含む。サービス提供装置100と利用者端末200とは、ネットワーク等により通信可能に接続される。
Referring to FIG. 2, the multi-tenant system includes a
サービス提供装置100は、サンプリング部111、処理部112、サブプロセス監視部113、メモリ監視ログ記憶部121、メモリ監視結果記憶部122、監視回数記憶部123、及び、監視対象記憶部124を含む。
The
ここで、サンプリング部111は、複数の利用者端末200のそれぞれからリクエストを受信し、そのリクエストの属性が監視候補であるか(監視すべきか)どうかを判定し、監視候補であれば、その属性を監視対象として、そのリクエストを処理部112上のサブプロセス151へ送信し、監視候補でなければ、そのリクエストを処理部112上のメインプロセス152に送信する。
Here, the
なお、本発明の実施の形態では、各リクエストは、そのリクエストの属性として、テナントを識別するテナントIDを含むものとし、サンプリング部111は、テナントIDをもとに各テナントが監視候補であるかどうかを判定するものとする。
In the embodiment of the present invention, each request includes a tenant ID for identifying a tenant as an attribute of the request, and the
また、各リクエストが、テナントIDの代わりに利用者を識別する利用者IDを含み、サンプリング部111が図示しない対応テーブルによりそれぞれの利用者IDが属するテナントのテナントIDを取得し、そのテナントIDをリクエストの属性としてもよい。
Each request includes a user ID for identifying the user instead of the tenant ID, and the
処理部112は、CPU(Central Processing Unit)であり、サブプロセス151とメインプロセス152との処理を実行する。
The
なお、本発明の実施の形態において、サブプロセス151の処理、メインプロセス152の処理、または、各スレッドの処理は、実際には、処理部112が実行するものであるが、以下の説明においては、プロセスが実行、または、各スレッドが実行するものとして記載する。
In the embodiment of the present invention, the processing of the sub-process 151, the processing of the
メインプロセス152は、サンプリング部111から受信した監視対象以外のリクエストを処理する。メインプロセス152上では、図23に示したように、複数のスレッドが動作し、それぞれのスレッドが複数のリクエストのそれぞれを同時並行で処理する。
The
サブプロセス151は、サンプリング部111から受信した監視対象のリクエストを処理する。サブプロセス151上でも、メインプロセス152と同様に、複数のスレッドが動作し、それぞれのスレッドが、複数のリクエストのそれぞれを同時並行で処理する。
The sub-process 151 processes the monitoring target request received from the
なお、メインプロセス152とサブプロセス151のそれぞれには、動作に必要な固有のメモリ空間が割り当てられており、各スレッドは、リクエストの処理に必要なメモリを確保し、そのリクエストを処理する。また、メインプロセス152上の各スレッドは、互いにプロセスに割り当てられたメモリ空間を共有しており、そのメモリ空間上のあるメモリ領域が、同時に複数のスレッドによって使用されることがあるものとする。同様に、サブプロセス151上の各スレッドも、互いにプロセスに割り当てられたメモリ空間を共有し、そのメモリ空間上のあるメモリ領域が同時に複数のスレッドによって使用されることがあるものとする。
Note that each of the
サブプロセス監視部113は、サブプロセス151のメモリ使用量(サブプロセス151で確保されたメモリ量)を取得し、監視対象のテナントIDとともに、メモリ監視ログ記憶部121のメモリ監視ログ131に記録する。
The
メモリ監視ログ記憶部121は、メモリ監視ログ131を記憶する。図6は、本発明の第一の実施の形態におけるメモリ監視ログ131の例を示す図である。メモリ監視ログ131は、図6に示すように、サブプロセス151における、テナントID毎の受付リクエスト数、開始時メモリ使用量、及び終了時メモリ使用量を含むレコード141を記録する。
The memory monitoring
メモリ監視結果記憶部122は、メモリ監視結果情報132を記憶する。図7は、本発明の第一の実施の形態におけるメモリ監視結果情報132の例を示す図である。メモリ監視結果情報132は、図7に示すように、テナントIDに対するメモリ使用量を含む。
The memory monitoring
監視回数記憶部123は、監視回数情報133を記憶する。図8は、本発明の第一の実施の形態における監視回数情報133の例を示す図である。監視回数情報133は、テナントID毎の監視回数を含む。ここで、監視回数は、サブプロセス監視部113により、当該テナントID対するメモリ使用量の監視が行われた回数(メモリ監視ログ131に、当該テナントID対して生成されたレコード141の数)を示す。
The monitoring
監視対象記憶部124は、監視対象情報134を記憶する。図10は、本発明の第一の実施の形態における監視対象情報134の例を示す図である。監視対象情報134は、サブプロセス151で処理中の(サブプロセス151に関連づけられた)監視対象のテナントIDを含む。
The monitoring
なお、本発明の実施の形態においては、スレッドはJava(登録商標)スレッドとし、サブプロセス151とメインプロセス152とのそれぞれでJavaVM(Virtual Machine)が動作し、それぞれのJavaVM上で、複数のスレッドが動作するものとする。また、スレッドによるメモリ使用量は、図24に示すように、リクエストの処理とともに累積的に増加し、所定のタイミングでJavaにより提供されるガベージ・コレクションにより解放されるものとする。
In the embodiment of the present invention, the thread is a Java (registered trademark) thread, and a Java VM (Virtual Machine) operates in each of the sub-process 151 and the
また、サービス提供装置100は、プログラムを記憶した記憶媒体を含み、プログラムに基づく制御によって動作するコンピュータであってもよい。この場合、サンプリング部111及びサブプロセス監視部113も、処理部112上でプログラムに基づく制御によって動作してもよい。また、メモリ監視ログ記憶部121と、監視回数記憶部123と、監視対象記憶部124とは、それぞれ個別の記憶媒体でも、1つの記憶媒体によって構成されてもよい。
次に、本発明の第一の実施の形態におけるサービス提供装置100の動作について説明する。
Next, the operation of the
はじめに、本発明の第一の実施の形態におけるサービス提供装置100のリクエスト処理について説明する。図3は、本発明の第一の実施の形態におけるサービス提供装置100のリクエスト処理の動作を示すフローチャートである。
First, request processing of the
サンプリング部111は、利用者端末200からリクエストを受信する(ステップS101)。
The
サンプリング部111は、リクエストのテナントIDが監視候補かどうかを判定する(ステップS102)。ここで、サンプリング部111は、監視回数記憶部123の監視回数情報133を参照し、監視回数が所定値以下のテナントIDを監視候補と判定する。
The
なお、テナントIDは、リクエストとともに送信されるURLに含まれていてもよい。この場合、例えば、URLを「http://sample.com/tenant_xxx/」とし、このURLに含まれる「tenant_xxx」をテナントIDとする。 The tenant ID may be included in the URL transmitted with the request. In this case, for example, the URL is “http://sample.com/tenant_xxx/”, and “tenant_xxx” included in the URL is the tenant ID.
ステップS102において、リクエストのテナントIDが監視候補であると判定された場合(ステップS102/Yes)、サンプリング部111は、リクエストが監視可能かどうかを判定する(ステップS103)。
If it is determined in step S102 that the tenant ID of the request is a monitoring candidate (step S102 / Yes), the
ここで、サンプリング部111は、リクエストが監視可能かどうかを判定する条件(以下、監視可能条件とする)を、「監視可能監視対象記憶部124の監視対象情報134にテナントIDが設定されていない(サブプロセス151で処理中の他のリクエストが無い)」、または、「監視対象情報134に設定されているテナントIDが、そのリクエストのテナントIDと同じ(サブプロセス151で処理中のリクエストのテナントIDが、受信したリクエストのテナントIDと同じ)である」こととし、監視可能条件を満たす場合、そのリクエストを監視可能と判定する。
Here, the
なお、同じテナントIDに対して、同時に複数のリクエストが発生しない場合は、監視可能条件を、「監視可能監視対象記憶部124の監視対象情報134にテナントIDが設定されていない」こととしてもよい。
If a plurality of requests are not generated for the same tenant ID at the same time, the monitoring condition may be that “the tenant ID is not set in the
ステップS103において、リクエストが監視可能であると判定された場合(ステップS103/Yes)、監視対象情報134にテナントIDが設定されていなければ、サンプリング部111は、監視対象情報134にリクエストのテナントIDを設定する(サブプロセス151にテナントIDを関連づける)(ステップS104)。
When it is determined in step S103 that the request can be monitored (step S103 / Yes), if the tenant ID is not set in the
そして、サンプリング部111は、リクエストのテナントIDをサブプロセス監視部113に通知し(ステップS105)、リクエストをサブプロセス151に送信する(ステップS106)。
Then, the
例えば、監視回数記憶部123に図8のような監視回数情報133が記憶されており、リクエストのテナントIDが「tenant_B」であるものとする。ここで、監視回数が最小のテナントIDを監視候補と判定する場合、サンプリング部111は、テナントID「tenant_B」の監視回数「5回」が最小であるため、テナントID「tenant_B」を監視候補と判定とする。
For example, it is assumed that the monitoring frequency information 133 as illustrated in FIG. 8 is stored in the monitoring
ここで、監視対象情報134にテナントIDが設定されていない場合、サンプリング部111は、テナントID「tenant_B」を監視可能と判定し、図10のように、監視対象情報134にテナントID「tenant_B」を設定する。そして、サンプリング部111は、テナントID「tenant_B」をサブプロセス監視部113に通知し、リクエストをサブプロセス151に送信する。
Here, if the tenant ID is not set in the
また、監視対象情報134にテナントIDにテナントID「tenant_B」が設定されていた場合も、サンプリング部111は、テナントID「tenant_B」を監視可能と判定し、テナントID「tenant_B」をサブプロセス監視部113に通知し、リクエストをサブプロセス151に送信する。
Further, even when the tenant ID “tenant_B” is set as the tenant ID in the
サブプロセス151は、サンプリング部111から受信したリクエストの処理を行う。
The
一方、ステップS102において、リクエストのテナントIDが監視候補ではないと判定された場合(ステップS102/No)、または、ステップS103において、リクエストが監視不可能と判定された場合(ステップS103/No)、サンプリング部111は、リクエストをメインプロセス152に送信する(ステップS107)。
On the other hand, if it is determined in step S102 that the tenant ID of the request is not a monitoring candidate (step S102 / No), or if it is determined in step S103 that the request cannot be monitored (step S103 / No), The
例えば、図8のような監視回数情報133が監視回数記憶部123に記憶されており、リクエストのテナントIDが「tenant_A」であった場合、サンプリング部111は、テナントID「tenant_A」の監視回数「10回」は最小でないため、テナントID「tenant_A」は監視候補ではないと判定し、リクエストをメインプロセス152に送信する。
For example, when the monitoring count information 133 as illustrated in FIG. 8 is stored in the monitoring
また、図10のように、監視対象情報134にテナントID「tenant_B」が設定されており、リクエストのテナントID「tenant_C」が監視候補と判定された場合、サンプリング部111は、テナントID「tenant_C」は監視不可能と判定し、リクエストをメインプロセス152に送信する。
In addition, as illustrated in FIG. 10, when the tenant ID “tenant_B” is set in the
次に、本発明の第一の実施の形態におけるサービス提供装置100のレスポンス処理について説明する。図4は、本発明の第一の実施の形態におけるサービス提供装置100のレスポンス処理の動作を示すフローチャートである。
Next, response processing of the
サンプリング部111は、サブプロセス151、または、メインプロセス152からリクエストの処理結果であるレスポンスを受信する(ステップS121)。
The
レスポンスをサブプロセス151から受信した場合(ステップS122/Yes)、サンプリング部111は、サブプロセス151に送信した全てのリクエストに対してレスポンスを受信したかどうかを判定する(ステップS123)。
When a response is received from the sub-process 151 (step S122 / Yes), the
ステップS123において、全てのリクエストに対してレスポンスを受信した場合(ステップS123/Yes)、サンプリング部111は、監視対象記憶部124の監視対象情報134からテナントIDを削除する(ステップS124)。
In step S123, when responses are received for all requests (step S123 / Yes), the
例えば、図10のように、監視対象情報134にテナントID「tenant_B」が設定されており、サブプロセス151に送信した全てのリクエストに対してレスポンスを受信した場合、監視対象情報134からテナントID「tenant_B」を削除する。
For example, as illustrated in FIG. 10, when the tenant ID “tenant_B” is set in the
サンプリング部111は、レスポンスをリクエストの送信元の利用者端末200に送信する(ステップS125)。
The
また、ステップS122において、レスポンスをメインプロセス152から受信した場合(ステップS122/No)、または、ステップS123において、サブプロセス151に送信したリクエストに対して受信していないレスポンスがある場合(ステップS123/No)、サンプリング部111は、レスポンスをリクエストの送信元の利用者端末200に送信する(ステップS125)。
In step S122, when a response is received from the main process 152 (step S122 / No), or in step S123, there is a response that has not been received in response to the request transmitted to the subprocess 151 (step S123 / No), the
このように、サンプリング部111は、監視対象情報134に設定されるテナントIDを、そのテナントIDに対して同時に発生した複数のリクエストに対するレスポンスを全て受信してから削除する。これにより、サブプロセス151は、同時に同一のテナントIDだけが処理されるように、制御される。
As described above, the
次に、本発明の第一の実施の形態におけるサービス提供装置100のサブプロセス監視処理について説明する。図5は、本発明の第一の実施の形態におけるサービス提供装置100のサブプロセス監視処理の動作を示すフローチャートである。
Next, the sub-process monitoring process of the
サブプロセス監視部113は、サンプリング部111から、サブプロセス151に送信されたリクエストのテナントIDを受信する(ステップS201)。
The
サブプロセス監視部113は、サブプロセス151のメモリ使用量を取得する(ステップS202)。
The
例えば、サブプロセス監視部113は、JavaVMが提供する、プロセスのメモリ使用量の測定機能を用いて、サブプロセス151全体のメモリ使用量を取得する。
For example, the
サブプロセス監視部113は、ステップS201で受信したテナントIDが、メモリ監視ログ131に保存されている最新のレコード141のテナントIDと同じかどうかを判定する(ステップS203)。
The
ステップS203において、受信したテナントIDが最新のレコード141のテナントIDと違う場合(ステップS203/No)、サブプロセス監視部113は、メモリ監視ログ131に保存されている最新のレコード141の終了時メモリ使用量を、ステップS202で取得したメモリ使用量で更新する(ステップS204)。
In step S203, when the received tenant ID is different from the tenant ID of the latest record 141 (step S203 / No), the
サブプロセス監視部113は、監視回数記憶部123の監視回数情報133における、最新のレコード141のテナントIDに対する監視回数に1を加算する(ステップS205)。
The
そして、サブプロセス監視部113は、メモリ監視ログ131に新たなレコード141を追加する(ステップS206)。ここで、サブプロセス監視部113は、追加した新たなレコード141のテナントIDにステップS201で受信したテナントIDを、受付リクエスト数に1を、また、開始時メモリ使用量と終了時メモリ使用量の双方にステップS202で取得したメモリ使用量を、それぞれ設定する。
Then, the
例えば、メモリ監視ログ131に、図6のレコード141a、b、cが記録されており、受信したテナントIDが「tenant_B」であった場合、サブプロセス監視部113は、レコード141cの終了時メモリ使用量を「250MB」で更新する。そして、サブプロセス監視部113は、監視回数情報133のテナントID「tenant_B」に対する監視回数に1を加算する。さらに、サブプロセス監視部113は、テナントIDが「tenant_B」であるレコード141dを追加し、開始時メモリ使用量と終了時メモリ使用量とに「250MB」を設定する。
For example, when the
一方、ステップ203において、受信したテナントIDが最新のレコード141のテナントIDと同じ場合(ステップS203/Yes)、サブプロセス監視部113は、メモリ監視ログ131に保存されている最新のレコード141の受付リクエスト数に1を加算する(ステップS207)。
On the other hand, when the received tenant ID is the same as the tenant ID of the latest record 141 in step 203 (step S203 / Yes), the
例えば、メモリ監視ログ131に、図6のレコード141a、b、c、dが記録されており、受信したテナントIDが「tenant_B」であった場合、サブプロセス監視部113は、レコード141dの受付リクエスト数に1を加算する。
For example, when the
ステップS206、または、ステップS207が終了すると、サブプロセス監視部113は、ステップS201〜ステップS207の処理を繰り返す。
When step S206 or step S207 ends, the
これにより、メモリ監視ログ131には、サブプロセス151が処理するテナントIDが切り替わる度に、新たなレコード141が追加され、次にテナントIDが切り替わるまでの期間における、受付リクエスト数、開始時メモリ使用量、及び、終了時メモリ使用量が記録される。 As a result, a new record 141 is added to the memory monitoring log 131 every time the tenant ID processed by the sub-process 151 is switched, and the number of received requests and the memory usage at the start in the period until the next tenant ID is switched. The amount and the memory usage at the end are recorded.
そして、サブプロセス監視部113は、管理者により要求された場合、または、管理者により設定された所定のタイミングで、メモリ監視ログ131に記録されたメモリ使用量をテナントID毎に集計し、メモリ監視結果情報132として、メモリ監視結果記憶部122に保存する。
Then, the
例えば、サブプロセス監視部113は、図6のメモリ監視ログ131の各レコード141について、終了時メモリ使用量と開始時メモリ使用量との差分を計算することにより、各レコード141に対応する期間における当該レコード141に対応するテナントIDの総メモリ使用量を算出し、それを受付リクエスト数で割ることで、メモリ使用量の平均値を算出する。そして、サブプロセス監視部113は、各レコード141のメモリ使用量の平均値を、テナントID毎に集計し、図7のようなメモリ監視結果情報132をメモリ監視結果記憶部122に保存する。
For example, the
なお、サブプロセス監視部113は、メモリ監視ログ131の各レコード141に、監視の開始時間や終了時間を併せて記録し、所定の時間帯におけるメモリ使用量を計算したり、時間に対するメモリ使用量の推移を算出してもよい。
The
また、サブプロセス151がリクエストを処理中に、ガベージ・コレクションが発生することを抑制するために、サンプリング部111は、例えば、監視対象情報134にテナントIDが設定されている間は、JavaVMに対して、ガベージ・コレクションを行わないように制御してもよい。この場合、サブプロセス151においてメモリ不足が発生したときは、サンプリング部111は、監視対象のテナントIDのリクエストをサブプロセス151に送信することを中止し、サブプロセス151からの全てのリプライを受信後に、JavaVMに対して、強制的にガベージ・コレクションを行うように制御する。
Further, in order to prevent the occurrence of garbage collection while the sub-process 151 is processing a request, the
ここで、本発明の第一の実施の形態におけるサービス提供装置100において監視されるメモリ使用量について説明する。図11は、本発明の第一の実施の形態におけるサービス提供装置100のメモリ使用量の変化の例を示す図である。
Here, the memory usage monitored in the
本発明の第一の実施の形態では、監視候補のテナントIDを含むリクエストは、サブプロセス151上のスレッドで処理され、監視候補のテナントIDを含まないリクエストは、メインプロセス152上のスレッドで処理される。従って、サブプロセス監視部113が、サブプロセス151のメモリ使用量を監視することにより、監視候補のテナントのメモリ使用量を他のテナントのメモリ使用量から区別して、正確に取得できる。
In the first embodiment of the present invention, a request including a monitoring candidate tenant ID is processed by a thread on the sub-process 151, and a request not including a monitoring candidate tenant ID is processed by a thread on the
例えば、図11に示すように、テナントID「tenant_B」のリクエストは、サブプロセス151上のスレッド2で処理され、テナントID「tenant_A」「tenant_C」のリクエストは、メインプロセス152上のスレッド1で処理される。サブプロセス監視部113は、サブプロセス151のメモリ使用量を監視することにより、テナントID「tenant_B」のメモリ使用量を精度よく監視できる。
For example, as illustrated in FIG. 11, the request of the tenant ID “tenant_B” is processed by the thread 2 on the sub-process 151, and the request of the tenant ID “tenant_A” and “tenant_C” is processed by the
以上により、本発明の第一の実施の形態の動作が完了する。 Thus, the operation of the first embodiment of the present invention is completed.
なお、本発明の第一の実施の形態においては、サブプロセス監視部113が、サブプロセス151で処理されるテナントIDの切り替えを検出し、監視回数情報133の監視回数を加算しているが、これをサンプリング部111が行うようにしてもよい。
In the first embodiment of the present invention, the
また、本発明の第一の実施の形態においては、サンプリング部111が、テナント毎の監視回数をもとに、監視回数が所定値以下のテナントIDを監視候補としているが、監視候補は他の方法により与えられてもよい。
In the first embodiment of the present invention, the
例えば、サンプリング部111は、テナントID毎に、受信した全リクエスト数に対する監視回数を算出し、その値が所定値以下のテナントIDを監視候補としてもよい。
For example, the
図9は、本発明の第一の実施の形態における監視回数情報133の他の例を示す図である。図9の例では、監視回数情報133は、テナントID毎の監視回数、及び、全リクエスト数を含む。図9のような監視回数情報133の場合、監視回数は、テナントID「tenant_B」が最小であるが、全リクエスト数に対する監視回数は、テナントID「tenant_A」が0.1と最小となる。従って、全リクエスト数に対する監視回数が最小のテナントIDを監視候補とする場合、サンプリング部111は、テナントID「tenant_A」を監視候補とする。
FIG. 9 is a diagram showing another example of the monitoring number information 133 according to the first embodiment of this invention. In the example of FIG. 9, the monitoring count information 133 includes the monitoring count for each tenant ID and the total number of requests. In the case of the monitoring count information 133 as shown in FIG. 9, the monitoring count is the minimum for the tenant ID “tenant_B”, but the monitoring count for the total number of requests is the minimum, ie, the tenant ID “tenant_A” is 0.1. Therefore, when the tenant ID having the smallest number of monitoring times with respect to the total number of requests is set as the monitoring candidate, the
また、監視候補のテナントIDとして、管理者等により予め指定されたテナントIDが指定されていてもよい。 In addition, a tenant ID designated in advance by an administrator or the like may be designated as the monitoring candidate tenant ID.
また、監視候補のテナントIDとして、管理者等により予め設定された複数のテナントIDのいずれかが、所定の時間間隔で切り替えて指定されてもよい。 In addition, as a monitoring candidate tenant ID, any of a plurality of tenant IDs set in advance by an administrator or the like may be specified by switching at a predetermined time interval.
また、サンプリング部111は、本発明の第一の実施の形態により所定期間の間に監視されたメモリ使用量の履歴をもとに、メモリ使用量が大きいテナントを優先的に監視候補としてもよい。同様に、サンプリング部111は、所定期間の間に監視されたメモリ使用量の履歴をもとに、1か月の中の各日、曜日、または、時間帯毎にメモリ使用量が大きいテナントを抽出し、監視を行う日、曜日、または、時間帯で、メモリ使用量が大きいテナントを優先的に監視候補としてもよい。
Further, the
次に、本発明の第一の実施の形態の特徴的な構成を説明する。図1は、本発明の第一の実施の形態の特徴的な構成を示すブロック図である。 Next, a characteristic configuration of the first embodiment of the present invention will be described. FIG. 1 is a block diagram showing a characteristic configuration of the first embodiment of the present invention.
サービス提供装置100は、サンプリング部111と、処理部112と、サブプロセス監視部113と、を含む。
The
ここで、処理部112は、それぞれが複数の属性のいずれかを含むリクエストを、当該リクエストの処理に必要なメモリを確保して処理する、サブプロセス151とメインプロセス152とを実行する。サンプリング部111は、複数の属性の中の、監視候補である1以上の属性の内のいずれか1つをサブプロセス151に関連づけ、入力されたリクエストが当該関連づけられた属性を含む場合、当該リクエストをサブプロセス151に送信し、それ以外の属性を含む場合、当該リクエストをメインプロセス152に送信する。サブプロセス監視部113は、サブプロセス151におけるリクエストの処理に伴うメモリ使用量を、リクエストの属性毎に取得して出力する。
Here, the
次に、本発明の第一の実施の形態の効果を説明する。 Next, the effect of the first embodiment of the present invention will be described.
本発明の第一の実施の形態によれば、マルチテナント型システムにおいて、テナント毎のメモリ使用量を精度良く監視できる。 According to the first embodiment of the present invention, the memory usage for each tenant can be accurately monitored in the multi-tenant system.
その理由は、サンプリング部111が、入力されたリクエストの属性が監視候補である場合、そのリクエストをサブプロセス151に送信し、サブプロセス監視部113が、サブプロセス151におけるリクエストの処理に伴うメモリ使用量を取得するためである。これにより、取得された監視候補のテナントのメモリ使用量は、他のテナントのメモリ使用量から区別され、かつ、プロセス上で動作するスレッドの数の影響を受けないため、その監視精度は高くなる。
The reason is that, when the attribute of the input request is a monitoring candidate, the
また、本発明の第一の実施の形態によれば、特許文献1のようにプロセスがリクエストを受け付ける毎にメモリ使用量を記録する方法に比べ、低い処理負荷で、メモリ使用量を取得できる。その理由は、サブプロセス151は、監視候補のテナントのリクエストのみを処理し、サブプロセス監視部113は、監視候補のテナントのリクエストのみについて、サブプロセス151のメモリ使用量を記録するためである。
Further, according to the first embodiment of the present invention, the memory usage can be acquired with a lower processing load than the method of recording the memory usage every time the process receives a request as in
また、本発明の第一の実施の形態によれば、特定のテナントのメモリ使用量を取得するような柔軟な監視の制御を行うことができる。その理由は、サブプロセス151は、監視候補のテナントのリクエストのみを処理し、サブプロセス監視部113は、監視候補のテナントのリクエストのみについて、サブプロセス151のメモリ使用量を取得するためである。これにより、管理者が特定のテナントを監視候補に設定、または、サービス提供装置100が監視履歴をもとに監視候補を設定することにより、その特定のテナントだけを効率よく取得できる。
Further, according to the first embodiment of the present invention, it is possible to perform flexible monitoring control so as to acquire the memory usage of a specific tenant. The reason is that the sub-process 151 processes only the request of the monitoring candidate tenant, and the
(第二の実施の形態)
次に、本発明の第二の実施の形態について図面を参照して詳細に説明する。
(Second embodiment)
Next, a second embodiment of the present invention will be described in detail with reference to the drawings.
本発明の第二の実施の形態においては、サブプロセス151が、メインプロセス152からプロセス固有情報を取得する点において、本発明の第一の実施の形態と異なる。
The second embodiment of the present invention is different from the first embodiment of the present invention in that the sub-process 151 acquires process specific information from the
プロセス固有情報とは、例えば、プロセス固有のメモリ領域に保持されたデータのように、プロセス内部からしかアクセスできないデータのうち、利用者からの複数のリクエストにまたがって参照、または、更新されるデータである。例えば、WEBアプリケーションにおけるセッションデータがプロセス固有情報に該当する。このようなプロセス固有情報の参照、更新を行う一連のリクエストが、サブプロセス151とメインプロセス152とに分かれて処理されると、サブプロセス151とメインプロセス152とは、同一のプロセス固有情報を参照することができないために、その一連のリクエストの処理は正しく行われない。
Process-specific information is data that is referenced or updated across multiple requests from users among data that can only be accessed from within the process, such as data held in a memory area specific to the process It is. For example, session data in a WEB application corresponds to process specific information. When a series of requests for referencing and updating such process-specific information is processed separately in the sub-process 151 and the
本発明の第二の実施の形態においては、プロセス固有情報媒介部114が、サブプロセス151からの要求に応じて、メインプロセス152のメモリ空間に存在するプロセス固有情報の更新、参照を行う。
In the second embodiment of the present invention, the process specific
次に、本発明の第二の実施の形態の構成について説明する。本発明の第二の実施の形態において、第一の実施の形態と同様の構成要素については、第一の実施の形態(図2)と同じ符号を付与し、詳細な説明を省略する。 Next, the configuration of the second embodiment of the present invention will be described. In the second embodiment of the present invention, the same components as those in the first embodiment are denoted by the same reference numerals as those in the first embodiment (FIG. 2), and detailed description thereof is omitted.
図12は、本発明の第二の実施の形態におけるマルチテナントシステムの構成を示すブロック図である。 FIG. 12 is a block diagram showing the configuration of the multi-tenant system according to the second embodiment of the present invention.
図12を参照すると、本発明の第二の実施の形態におけるサービス提供装置100は、本発明の第一の実施の形態の構成に加えて、プロセス固有情報媒介部114を含む。
Referring to FIG. 12, the
プロセス固有情報媒介部114は、サブプロセス151からの要求に応じて、メインプロセス152のメモリ空間に存在するプロセス固有情報の更新、参照を行う。
In response to a request from the sub-process 151, the process-specific
次に、本発明の第二の実施の形態におけるサービス提供装置100の動作について説明する。
Next, the operation of the
図13は、本発明の第二の実施の形態におけるサービス提供装置100のプロセス固有情報アクセス処理の動作を示すフローチャートである。
FIG. 13 is a flowchart showing the operation of the process specific information access process of the
ここで、プロセス固有情報媒介部114は、メインプロセス152とサブプロセス151との上で動作するプログラムにより実現されているものとする。
Here, it is assumed that the process-specific
サブプロセス151上のスレッドにおいて、プロセス固有情報の参照や更新といったアクセス処理が発生した場合(ステップS301)、サブプロセス151のプロセス固有情報媒介部114は、そのアクセス処理に割り込み、メインプロセス152のプロセス固有情報媒介部114に対して、プロセス間通信によりアクセス処理を要求する(ステップS302)。ここで、サブプロセス151のプロセス固有情報媒介部114は、アクセス処理が参照であれば、参照するプロセス固有情報の変数名を通知し、アクセス処理が更新であれば更新するプロセス固有情報の変数名と更新後の値とを通知する。
When an access process such as reference or update of process specific information occurs in a thread on the sub process 151 (step S301), the process specific
メインプロセス152のプロセス固有情報媒介部114は、サブプロセス151のプロセス固有情報媒介部114からの要求に従って、メインプロセス152のメモリ空間上に存在する、指定された変数名のプロセス固有情報の参照や更新を実施する(ステップS303)。
In response to a request from the process unique
メインプロセス152のプロセス固有情報媒介部114は、参照や更新の結果を、アクセス処理結果としてサブプロセス151のプロセス固有情報媒介部114に送信する(ステップS304)。
The process unique
サブプロセス151のプロセス固有情報媒介部114は、メインプロセス152から受信した処理結果を、スレッドで発生したアクセス処理の結果として返答する(ステップS305)。
The process specific
例えば、プロセス固有情報へのアクセス処理に対する割り込みとして、AOP(Aspect Oritented Programing)を用いた場合、サブプロセス151では、プロセス固有情報を参照するメソッドgetState()の代わりに行う処理とに対して、メインプロセス152に対してプロセス固有状態情報を要求する処理が定義される。サブプロセス151のプロセス固有情報媒介部114は、サブプロセス151上のスレッドで要求されたgetState()の実行をキャンセルし、プロセス間通信により、メインプロセス152に、プロセス固有状態情報を要求する。メインプロセス152のプロセス固有情報媒介部114は、この要求に応じて、getState()メソッドを実行し、その結果をプロセス間通信により、サブプロセス151へ応答する。そして、サブプロセス151のプロセス固有情報媒介部114は、受け取った結果をgetState()メソッドの結果として返答する。
For example, when AOP (Aspect Oriented Programming) is used as an interrupt for the process for accessing process-specific information, the sub-process 151 performs the main process for the process performed instead of the method getState () that refers to the process-specific information. A process for requesting process specific state information to the
以上により、本発明の第二の実施の形態の動作が完了する。 Thus, the operation of the second embodiment of the present invention is completed.
本発明の第二の実施の形態によれば、監視候補のテナントのリクエストがプロセス固有情報の参照、更新を行う場合でも、そのテナントを監視候補として、サブプロセス151によるメモリ使用量の監視を行うことができる。その理由は、プロセス固有情報媒介部114が、サブプロセス151からの要求に応じて、メインプロセス152のメモリ空間に存在するプロセス固有情報の更新、参照を行うためである。
According to the second embodiment of the present invention, even when a request of a monitoring candidate tenant refers to or updates process-specific information, the sub-process 151 monitors the memory usage by using the tenant as a monitoring candidate. be able to. The reason is that the process specific
(第三の実施の形態)
次に、本発明の第三の実施の形態について図面を参照して詳細に説明する。
(Third embodiment)
Next, a third embodiment of the present invention will be described in detail with reference to the drawings.
本発明の第三の実施の形態においては、サンプリング部111がメインプロセス152におけるテナント毎のメモリ使用量の概算値をもとに監視候補のテナントを決定する点において、本発明の第一の実施の形態と異なる。
In the third embodiment of the present invention, the
次に、本発明の第三の実施の形態の構成について説明する。本発明の第三の実施の形態において、第一の実施の形態と同様の構成要素については、第一の実施の形態(図2)と同じ符号を付与し、詳細な説明を省略する。 Next, the configuration of the third embodiment of the present invention will be described. In the third embodiment of the present invention, components similar to those in the first embodiment are given the same reference numerals as those in the first embodiment (FIG. 2), and detailed description thereof is omitted.
図14は、本発明の第三の実施の形態におけるマルチテナントシステムの構成を示すブロック図である。 FIG. 14 is a block diagram showing the configuration of the multi-tenant system according to the third embodiment of the present invention.
図14を参照すると、本発明の第三の実施の形態におけるサービス提供装置100は、本発明の第一の実施の形態の構成に加えて、メインプロセス監視部115と概算メモリ監視結果記憶部125とを含む。
Referring to FIG. 14, the
メインプロセス監視部115は、メインプロセス152におけるテナント毎のメモリ使用量(メインプロセス152でテナント毎に確保されたメモリ量)の概算値(以下、概算メモリ使用量とする)を取得し、概算メモリ監視結果記憶部125の概算メモリ監視結果情報135に保存する。
The main process monitoring unit 115 obtains an approximate value (hereinafter referred to as approximate memory usage) of the memory usage for each tenant in the main process 152 (memory amount secured for each tenant in the main process 152), and calculates the approximate memory The estimated memory monitoring result information 135 in the monitoring
概算メモリ使用量は、サブプロセス151における監視候補のテナントを決定するために使用する情報である。概算メモリ使用量の監視精度は、サブプロセス監視部113により取得されるメモリ使用量の監視精度よりも低くてよい。また、概算メモリ使用量は、メインプロセス152への影響が少なく、かつ、簡易な方法で取得されることが望ましい。本発明の第三の実施の形態においては、メインプロセス監視部115は、特許文献1に記載された方法と同様の方法により、メインプロセス152におけるテナント毎の概算メモリ使用量を取得するものとする。すなわち、メインプロセス監視部115は、メインプロセス152全体のメモリ使用量と、メインプロセス152で処理が実行されていたテナントを監視し、メインプロセス152全体のメモリ使用量を実行されていた各テナントに所定の割合で案分することで、テナント毎の概算メモリ使用量を算出する。
The approximate memory usage is information used to determine a monitoring candidate tenant in the sub-process 151. The monitoring accuracy of the approximate memory usage may be lower than the monitoring accuracy of the memory usage acquired by the
概算メモリ監視結果記憶部125は、概算メモリ監視結果情報135を記憶する。図15は、本発明の第三の実施の形態における概算メモリ監視結果情報135の例を示す図である。概算メモリ監視結果情報135は、図15に示すように、メインプロセス152におけるテナントID毎の累積概算メモリ使用量、総リクエスト数、及び、概算メモリ使用量を含む。
The approximate memory monitoring
サンプリング部111は、概算メモリ監視結果情報135を参照し、メインプロセス152の概算メモリ使用量をもとに、監視候補のテナントIDを決定する。
The
次に、本発明の第三の実施の形態におけるサービス提供装置100の動作について説明する。
Next, the operation of the
はじめに、メインプロセス監視部115は、特許文献1と同様の方法により、メインプロセス152におけるテナント毎の概算メモリ使用量を取得する。
First, the main process monitoring unit 115 acquires the approximate memory usage amount for each tenant in the
例えば、メインプロセス監視部115は、ある期間におけるメモリ使用量が300MBであり、その期間において処理したリクエストのテナントIDが「tenant_A」と「tenant_B」であれば、これらのテナントが150MBずつメモリを使用したものとみなして、概算メモリ監視結果情報135の各テナントの累積概算メモリ使用量へ加算し、各テナントの総リクエスト数に1を加算する。そして、メインプロセス監視部115は、所定のタイミングで、各テナントの累積概算メモリ使用量を総リクエスト数で割ることにより、リクエストあたりの概算メモリ使用量を算出し、概算メモリ監視結果情報135へ保存する。この結果、概算メモリ監視結果記憶部125には、例えば、図15のような概算メモリ使用量が保存される。
For example, if the memory usage in a certain period is 300 MB and the tenant ID of the request processed in that period is “tenant_A” and “tenant_B”, these tenants use 150 MB each of the memory. As a result, it is added to the accumulated approximate memory usage of each tenant in the approximate memory monitoring result
次に、本発明の第三の実施の形態におけるリクエスト処理について説明する。本発明の第三の実施の形態におけるリクエスト処理の動作は、テナントIDを監視候補とするかどうか判定する処理(ステップS102)を除き、本発明の第一の実施の形態(図3)と同様となる。 Next, request processing in the third embodiment of the present invention will be described. The operation of the request process in the third embodiment of the present invention is the same as that of the first embodiment (FIG. 3) of the present invention except for the process of determining whether or not the tenant ID is a monitoring candidate (step S102). It becomes.
ステップS102において、サンプリング部111は、概算メモリ監視結果記憶部125の概算メモリ監視結果情報135を参照し、概算メモリ使用量が所定値以下のテナントIDを監視候補とする。
In step S102, the
例えば、概算メモリ監視結果記憶部125に図15のような概算メモリ監視結果情報135が記憶されており、概算メモリ使用量が最大のテナントIDを監視候補と判定する場合、サンプリング部111は、テナントID「tenant_A」の概算メモリ使用量「30MB」が最大であるため、テナントID「tenant_A」を監視候補とする。
For example, when the approximate memory monitoring result information 135 as shown in FIG. 15 is stored in the approximate memory monitoring
また、サンプリング部111は、監視回数記憶部123の監視回数情報133を参照し、監視回数あたりの概算メモリ使用量が所定値以上のテナントIDを監視候補としてもよい。
Further, the
例えば、監視回数記憶部123に図8のような監視回数情報133、概算メモリ監視結果記憶部125に図15のような概算メモリ監視結果情報135が記憶されている場合、サンプリング部111は、テナントID「tenant_C」の監視回数あたりの概算メモリ使用量「28MB/7=4MB」が最大であるため、テナントID「tenant_C」を監視候補とする。
For example, when the monitoring frequency information 133 as shown in FIG. 8 is stored in the monitoring
このように、本発明の第一の実施形態のように、監視回数をもとに監視候補を決定した場合には、テナントID「tenant_B」が監視候補として決定されるのに対し、本発明の第三の実施形態においては、メインプロセス152における概算メモリ使用量が大きいテナントID「tenant_A」、または、テナントID「tenant_C」が監視候補として決定される。
As described above, when the monitoring candidate is determined based on the number of times of monitoring as in the first embodiment of the present invention, the tenant ID “tenant_B” is determined as the monitoring candidate. In the third embodiment, the tenant ID “tenant_A” or the tenant ID “tenant_C” having a large approximate memory usage amount in the
以上により、本発明の第三の実施の形態の動作が完了する。 Thus, the operation of the third embodiment of the present invention is completed.
なお、本発明の第三の実施の形態においては、サンプリング部111が、メインプロセス152における概算メモリ使用量が所定値以上のテナントIDを監視候補としているが、サンプリング部111は、概算メモリ使用量の測定結果を用いた他の方法により監視候補を決定してもよい。
In the third embodiment of the present invention, the
例えば、メインプロセス監視部115が、メインプロセス152における概算メモリ使用量とともに、同時に処理されたテナント数をテナント毎に算出し、サンプリング部111は、同時に処理されたテナント数が多いほど、その概算メモリ使用量の精度が低いとし、概算メモリ使用量の精度が低いテナントを優先的に監視候補としてもよい。
For example, the main process monitoring unit 115 calculates the number of tenants processed simultaneously for each tenant together with the approximate memory usage in the
また、サンプリング部111は、概算メモリ使用量とその概算メモリ使用量の精度との両方を用い、例えば、概算メモリ使用量に対するその概算メモリ使用量の精度が低いテナントを優先的に監視候補としてもよい。
Further, the
本発明の第三の実施の形態によれば、メインプロセス152におけるメモリ使用量が大きいと推定されるテナントについて、メモリ使用量を優先的に監視できる。その理由は、サンプリング部111が、メインプロセス152における概算メモリ使用量を算出し、サンプリング部111が、概算メモリ使用量をもとに監視候補のテナントIDを決定するためである。
According to the third embodiment of this invention, the memory usage can be preferentially monitored for a tenant that is estimated to have a large memory usage in the
(第四の実施の形態)
次に、本発明の第四の実施の形態について図面を参照して詳細に説明する。
(Fourth embodiment)
Next, a fourth embodiment of the present invention will be described in detail with reference to the drawings.
本発明の第四の実施の形態においては、サンプリング部111が、監視候補のテナントIDを含むリクエストをサンプリングキュー116に格納し、処理する点において、本発明の第一の実施の形態と異なる。
The fourth embodiment of the present invention is different from the first embodiment of the present invention in that the
次に、本発明の第四の実施形態の構成について説明する。本発明の第四の実施の形態において、第一の実施の形態と同様の構成要素については、第一の実施の形態(図2)と同じ符号を付与し、詳細な説明を省略する。 Next, the configuration of the fourth embodiment of the present invention will be described. In the fourth embodiment of the present invention, components similar to those in the first embodiment are given the same reference numerals as those in the first embodiment (FIG. 2), and detailed description thereof is omitted.
図16は、本発明の第四の実施の形態におけるマルチテナントシステムの構成を示すブロック図である。 FIG. 16 is a block diagram showing a configuration of a multi-tenant system according to the fourth embodiment of the present invention.
図16を参照すると、本発明の第四の実施の形態におけるサービス提供装置100は、本発明の第一の実施の形態の構成に加えて、サンプリングキュー116を含む。
Referring to FIG. 16, the
サンプリングキュー116は、所定数のリクエストを保持する。 The sampling queue 116 holds a predetermined number of requests.
サンプリング部111は、リクエストのテナントIDが監視候補の場合、そのリクエストをサンプリングキュー116に格納する。そして、サンプリング部111は、サンプリングキュー116に格納されているリクエストが監視可能となった場合、そのリクエストをサブプロセス151へ送信する。
If the tenant ID of the request is a monitoring candidate, the
次に、本発明の第四の実施の形態におけるサービス提供装置100の動作について説明する。
Next, the operation of the
はじめに、本発明の第四の実施の形態におけるサービス提供装置100のリクエスト処理について説明する。図17は、本発明の第四の実施の形態におけるサービス提供装置100のリクエスト処理の動作を示すフローチャートである。
First, request processing of the
はじめに、サンプリング部111は、利用者端末200からリクエストを受信する(ステップS401)。
First, the
サンプリング部111は、リクエストのテナントIDが監視候補かどうかを判定する(ステップS402)。
The
ステップS402において、リクエストのテナントIDが監視候補であると判定された場合(ステップS402/Yes)、サンプリング部111は、リクエストをサンプリングキュー116に格納する(ステップS403)。
If it is determined in step S402 that the tenant ID of the request is a monitoring candidate (step S402 / Yes), the
一方、ステップS402において、リクエストのテナントIDが監視候補でないと判定された場合(ステップS402/No)、サンプリング部111は、リクエストをメインプロセス152に送信する(ステップS404)。
On the other hand, if it is determined in step S402 that the tenant ID of the request is not a monitoring candidate (step S402 / No), the
次に、本発明の第四の実施の形態におけるサービス提供装置100のサンプリングキュー処理について説明する。図18は、本発明の第四の実施の形態におけるサービス提供装置100のサンプリングキュー処理の動作を示すフローチャートである。
Next, sampling queue processing of the
サンプリング部111が、リクエストをサンプリングキュー116に格納(ステップS403)、または、監視対象情報134からナントIDを削除(ステップS124)した場合、サンプリング部111は、サンプリングキュー116のリクエストを先頭から順番に1つ読み出す(ステップS441)。
When the
サンプリング部111は、リクエストが監視可能かどうかを判定する(ステップS442)。ここで、サンプリング部111は、本発明の第一の実施の形態と同様の監視可能条件により、リクエストが監視可能かどうかを判定する。
The
ステップS442において、リクエストが監視可能であると判定された場合(ステップS442/Yes)、監視対象情報134にテナントIDが設定されていなければ、サンプリング部111は、監視対象情報134にリクエストのテナントIDを設定する(ステップS443)。
If it is determined in step S442 that the request can be monitored (step S442 / Yes), if the tenant ID is not set in the
そして、サンプリング部111は、リクエストのテナントIDをサブプロセス監視部113に通知し(ステップS444)、リクエストをサブプロセス151に送信する(ステップS445)。
Then, the
ステップS442において、リクエストが監視不可能であると判定された場合(ステップS442/No)、サンプリング部111は、そのリクエストが所定時間以上サンプリングキュー116に滞留しているかどうかを判定する(ステップS447)。
If it is determined in step S442 that the request cannot be monitored (step S442 / No), the
ステップS447において、所定時間以上サンプリングキュー116に滞留していると判定された場合(ステップS447/Yes)、サンプリング部111は、リクエストをメインプロセス152に送信する(ステップS448)。
If it is determined in step S447 that the sampling queue 116 stays in the sampling queue 116 for a predetermined time (step S447 / Yes), the
また、ステップS447において、所定時間以上サンプリングキュー116に滞留していないと判定された場合(ステップS447/No)、サンプリング部111は、リクエストをそのままサンプリングキュー116に保持する。
In Step S447, when it is determined that the sample does not stay in the sampling queue 116 for a predetermined time or longer (Step S447 / No), the
リクエストがサブプロセス151、または、メインプロセス152に送信された場合(ステップS445、または、ステップS448)、サンプリング部111は、そのリクエストをサンプリングキュー116から削除する(ステップS446)。
When the request is transmitted to the sub-process 151 or the main process 152 (Step S445 or Step S448), the
サンプリング部111は、ステップS441〜S447を、サンプリングキュー116に格納されている全てのリクエストを処理するまで繰り返す(ステップS449)。
The
なお、本発明の第四の実施の形態におけるサービス提供装置100のレスポンス処理、及び、サブプロセス監視処理の動作は、本発明の第一の実施の形態(図4、図5)と同様となる。
Note that the response processing and sub-process monitoring processing operations of the
以上により、本発明の第四の実施の形態の動作が完了する。 Thus, the operation of the fourth embodiment of the present invention is completed.
本発明の第四の実施の形態によれば、本発明の第一の実施の形態に比べて、複数の監視候補のテナントを効率よく監視できる。その理由は、サンプリング部111が、監視候補のテナントIDを含むリクエストをサンプリングキュー116に保持し、サンプリングキュー116に格納されたリクエストが監視可能となった場合、そのリクエストをサブプロセス151に送信するためである。これにより、サブプロセス151においてあるテナントが監視されているときに他のテナントのリクエストを受信した場合でも、監視中のテナントの監視終了を待って、他のテナントの監視を開始でき、複数のテナントを効率よく監視できる。
According to the fourth embodiment of the present invention, it is possible to efficiently monitor a plurality of monitoring candidate tenants as compared to the first embodiment of the present invention. The reason is that the
(第五の実施の形態)
次に、本発明の第五の実施の形態について図面を参照して詳細に説明する。
(Fifth embodiment)
Next, a fifth embodiment of the present invention will be described in detail with reference to the drawings.
本発明の第五の実施の形態においては、処理部112上で複数のサブプロセス151が動作し、複数のテナントのそれぞれを、各サブプロセス151で監視する点において、本発明の第一の実施の形態と異なる。
In the fifth embodiment of the present invention, the first implementation of the present invention is such that a plurality of
次に、本発明の第五の実施形態の構成について説明する。本発明の第五の実施の形態において、第一の実施の形態と同様の構成要素については、第一の実施の形態(図2)と同じ符号を付与し、詳細な説明を省略する。 Next, the configuration of the fifth embodiment of the present invention will be described. In the fifth embodiment of the present invention, the same components as those in the first embodiment are denoted by the same reference numerals as those in the first embodiment (FIG. 2), and detailed description thereof is omitted.
図19は、本発明の第五の実施の形態におけるマルチテナントシステムの構成を示すブロック図である。 FIG. 19 is a block diagram showing a configuration of a multi-tenant system according to the fifth embodiment of the present invention.
本発明の第五の実施の形態においては、処理部112は、複数のサブプロセス151の処理を実行する。また、本発明の第五の実施の形態においては、サービス提供装置100は、複数のサブプロセス監視部113を含む。複数のサブプロセス監視部113のそれぞれは、複数のサブプロセス151のそれぞれのメモリ使用量を取得する。
In the fifth embodiment of the present invention, the
サンプリング部111は、監視候補のテナントIDを含むリクエストがサブプロセス151のいずれかに関して監視可能条件を満たす場合、そのリクエストを、監視可能条件を満たすサブプロセス151に送信し、サブプロセス151のいずれも監視可能条件を満たさない場合、そのリクエストをメインプロセス152に送信する。
When the request including the tenant ID of the monitoring candidate satisfies the monitorable condition regarding any of the
サブプロセス監視部113は、各サブプロセス151のメモリ使用量を取得し、メモリ監視ログ131に記録する。
The
図22は、本発明の第五の実施の形態における監視対象情報134の例を示す図である。監視対象情報134は、サブプロセス151を識別するサブプロセスID毎に、そのサブプロセス151で処理中の(そのサブプロセス151に関連づけられた)監視対象のテナントIDを含む。
FIG. 22 is a diagram showing an example of the
次に、本発明の第五の実施の形態におけるサービス提供装置100の動作について説明する。
Next, the operation of the
はじめに、本発明の第五の実施の形態におけるサービス提供装置100のリクエスト処理について説明する。図20は、本発明の第五の実施の形態におけるサービス提供装置100のリクエスト処理の動作を示すフローチャートである。
First, request processing of the
サンプリング部111は、利用者端末200からリクエストを受信する(ステップS501)。
The
サンプリング部111は、リクエストのテナントIDが監視候補かどうかを判定する(ステップS502)。
The
ステップS502において、リクエストのテナントIDが監視候補であると判定された場合(ステップS502/Yes)、サンプリング部111は、リクエストが、複数のサブプロセス151のいずれかにおいて監視可能かどうかを判定する(ステップS503)。
When it is determined in step S502 that the tenant ID of the request is a monitoring candidate (step S502 / Yes), the
ここで、サンプリング部111は、複数のサブプロセス151のいずれかにおいて、上述の監視可能条件を満たす場合、そのリクエストは、そのサブプロセス151で監視可能と判定する。なお、サンプリング部111は、監視可能条件の判定において、処理中のリクエストが無いサブプロセス151があっても、リクエストのテナントIDと同一のテナントIDのリクエストを処理しているサブプロセス151がある場合は、そのサブプロセス151を監視可能なサブプロセス151と判定する。
Here, the
ステップS503において、リクエストが監視可能であると判定された場合(ステップS503/Yes)、監視対象情報134における監視可能と判定されたサブプロセスIDに対してテナントIDが設定されていなければ、サンプリング部111は、そのサブプロセスIDに対して、リクエストのテナントIDを設定する(そのサブプロセスIDにテナントIDを関連づける)(ステップS504)。
If it is determined in step S503 that the request can be monitored (step S503 / Yes), if the tenant ID is not set for the subprocess ID determined to be monitorable in the
そして、サンプリング部111は、リクエストのテナントIDを監視可能と判定されたサブプロセス151を監視するサブプロセス監視部113に通知し(ステップS505)、リクエストを監視可能と判定されたサブプロセス151に送信する(ステップS506)。
Then, the
一方、ステップS502において、リクエストのテナントIDが監視候補ではないと判定された場合(ステップS502/No)、または、ステップS503において、リクエストが複数のサブプロセス151のいずれにおいても監視不可能と判定された場合(ステップS503/No)、サンプリング部111は、リクエストをメインプロセス152に送信する(ステップS507)。
On the other hand, if it is determined in step S502 that the tenant ID of the request is not a monitoring candidate (step S502 / No), or in step S503, it is determined that the request cannot be monitored in any of the plurality of
次に、本発明の第五の実施の形態におけるサービス提供装置100のレスポンス処理について説明する。図21は、本発明の第五の実施の形態におけるサービス提供装置100のレスポンス処理の動作を示すフローチャートである。
Next, response processing of the
サンプリング部111は、サブプロセス151、又は、メインプロセス152からリクエストに対するレスポンスを受信する(ステップS521)。
The
レスポンスをサブプロセス151から受信した場合(ステップS522/Yes)、サンプリング部111は、そのサブプロセス151に送信した全てのリクエストに対してレスポンスを受信したかどうかを判定する(ステップS523)。
When a response is received from the sub-process 151 (step S522 / Yes), the
ステップS523において、そのサブプロセス151に送信した全てのリクエストに対してレスポンスを受信した場合(ステップS523/Yes)、サンプリング部111は、監視対象記憶部124の監視対象情報134から、そのサブプロセス151に対するテナントIDを削除する(ステップS524)。
In step S523, when responses are received for all the requests transmitted to the subprocess 151 (step S523 / Yes), the
サンプリング部111は、レスポンスをリクエストの送信元の利用者端末200に送信する(ステップS525)。
The
また、ステップS522において、レスポンスをメインプロセス152から受信した場合(ステップS522/No)、または、ステップS522において、サブプロセス151に送信したリクエストに対して受信していないレスポンスがある場合(ステップS523/No)も、サンプリング部111は、レスポンスをリクエストの送信元の利用者端末200に送信する(ステップS525)。
In step S522, when a response is received from the main process 152 (step S522 / No), or in step S522, there is a response that has not been received with respect to the request transmitted to the sub-process 151 (step S523 / No), the
次に、本発明の第五の実施の形態におけるサービス提供装置100のサブプロセス監視処理について説明する。本発明の第五の実施の形態におけるサブプロセス監視処理は、本発明の第一の実施の形態におけるサブプロセス監視処理(図5)と同様の処理を、それぞれのサブプロセス監視部113が行う。
Next, sub-process monitoring processing of the
以上により、本発明の第五の実施の形態の動作が完了する。 Thus, the operation of the fifth embodiment of the present invention is completed.
本発明の第五の実施の形態によれば、本発明の第一の実施の形態に比べて、複数のテナントの監視を効率よく行うことができる。その理由は、処理部112上で複数のサブプロセス151が動作し、サンプリング部111が、監視候補のテナントIDを含むリクエストを複数のサブプロセス151のいずれかに転送し、サブプロセス監視部113が、各サブプロセス151のメモリ使用量を取得するためである。これにより、複数のテナントを同時並行で、効率よく監視できる。
According to the fifth embodiment of the present invention, a plurality of tenants can be monitored more efficiently than in the first embodiment of the present invention. The reason is that a plurality of
以上、実施の形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。 Although the present invention has been described with reference to the embodiment, the present invention is not limited to the above embodiment. Various changes that can be understood by those skilled in the art can be made to the configuration and details of the present invention within the scope of the present invention.
例えば、本発明の実施の形態では、リクエストの属性としてテナントIDを対象とし、テナント毎のメモリ使用量を監視しているが、対象とする属性はこれに限らず、リクエストを送信した利用者の識別子や、リクエストにより実行される処理内容(機能)の識別子を対象とすることにより、利用者や処理内容(機能)毎のメモリ使用量を監視してもよい。 For example, in the embodiment of the present invention, the tenant ID is targeted as a request attribute, and the memory usage for each tenant is monitored, but the target attribute is not limited to this, and the user who sent the request By using identifiers and identifiers of processing contents (functions) executed by requests, the memory usage for each user and processing contents (functions) may be monitored.
また、本発明の実施の形態では、プロセス上で複数のスレッドが動作し、これら複数のスレッドがプロセスのメモリ空間を共有し、複数のリクエストを同時並行処理するものとしたが、プロセス上で複数のリクエストを同時並行処理できるものであれば、スレッド以外の手法で、リクエストの処理が行われてもよい。 In the embodiment of the present invention, a plurality of threads operate on a process, the plurality of threads share the memory space of the process, and a plurality of requests are processed simultaneously in parallel. If the request can be processed in parallel, the request may be processed by a method other than threading.
また、本発明の実施の形態においては、プロセスにおけるメモリ使用量は、リクエストの処理とともに累積的に増加し、ガベージ・コレクションにより解放されるものとしたが、メモリは、リクエストの処理の途中で必要になった時点で確保され、不要となった時点で解放されてもよい。この場合、サブプロセス監視部113は、定期的にサブプロセス151のメモリ使用量を監視し、その最大値を、メモリ監視ログ131の各レコード141におけるメモリ使用量としてもよい。
In the embodiment of the present invention, the memory usage in the process increases cumulatively with the request processing and is freed by garbage collection. However, the memory is required during the request processing. May be secured at the time of becoming, and may be released when it becomes unnecessary. In this case, the
100 サービス提供装置
111 サンプリング部
112 処理部
113 サブプロセス監視部
114 プロセス固有情報媒介部
115 メインプロセス監視部
116 サンプリングキュー
121 メモリ監視ログ記憶部
122 メモリ監視結果記憶部
123 監視回数記憶部
124 監視対象記憶部
125 概算メモリ監視結果記憶部
131 メモリ監視ログ
132 メモリ監視結果情報
133 監視回数情報
134 監視対象情報
135 概算メモリ監視結果情報
141 レコード
151 サブプロセス
152 メインプロセス
200 利用者端末
DESCRIPTION OF
Claims (10)
前記複数の属性の中の、監視候補である1以上の属性の内のいずれか1つを前記サブプロセスに関連づけ、入力されたリクエストが当該関連づけられた属性を含む場合、当該リクエストを前記サブプロセスに送信し、それ以外の属性を含む場合、当該リクエストを前記メインプロセスに送信するサンプリング手段と、
前記サブプロセスが確保したメモリ量を、リクエストの属性毎に取得して出力するサブプロセス監視手段と
を含むサービス提供装置。 A processing means for executing a sub-process and a main process, each of which includes a request including any of a plurality of attributes, securing a memory necessary for processing the request;
If any one of the plurality of attributes that are candidates for monitoring is associated with the subprocess, and the input request includes the associated attribute, the request is associated with the subprocess. A sampling means for transmitting the request to the main process when including other attributes,
A service providing apparatus comprising: a sub-process monitoring unit that acquires and outputs the amount of memory secured by the sub-process for each request attribute.
請求項1に記載のサービス提供装置。 If the input request attribute is the monitoring candidate and the sub-process is not processing another request, the sampling means associates the input request attribute with the sub-process and The service providing apparatus according to claim 1, wherein the service providing apparatus transmits to the sub-process.
前記サンプリング手段は、前記入力されたリクエストの属性が前記監視候補であり、前記サブプロセスに送信されない場合、当該リクエストを前記サンプリングキューに格納し、当該リクエストが前記サンプリングキューに格納されてから所定時間以内に、当該リクエストの属性が前記サブプロセスに関連づけられた、または、前記サブプロセスにおける他のリクエストの処理が行われていない状態となったときは、当該リクエストを前記サブプロセスに送信し、そうでないときは、当該リクエストを前記メインプロセスに送信する
請求項2に記載のサービス提供装置。 And a sampling queue for holding a request including the attribute of the monitoring candidate,
The sampling means stores the request in the sampling queue when the attribute of the input request is the monitoring candidate and is not transmitted to the sub-process, and a predetermined time after the request is stored in the sampling queue. If the request attribute is associated with the sub-process or no other request is processed in the sub-process, the request is sent to the sub-process, and so on. If not, the service providing apparatus according to claim 2, wherein the request is transmitted to the main process.
請求項1乃至3のいずれかに記載のサービス提供装置。 The sampling unit determines whether or not the attribute included in the input request is the attribute of the monitoring candidate based on the number of monitoring for each attribute of the memory amount secured in the sub-process monitoring unit The service providing apparatus according to claim 1.
前記サンプリング手段は、属性毎の前記メモリ量の概算値をもとに、前記入力されたリクエストに含まれる属性が前記監視候補の属性であるか否かを判定する
請求項1乃至3のいずれかに記載のサービス提供装置。 Furthermore, the main process monitoring means for obtaining an approximate value of the memory amount secured in the main process for each attribute,
The sampling unit determines whether or not an attribute included in the input request is an attribute of the monitoring candidate based on an approximate value of the memory amount for each attribute. The service providing device according to 1.
請求項1乃至5のいずれかに記載のサービス提供装置。 Further, when a request for the predetermined data is requested in the processing of the request in the sub-process, a process-specific information mediating means for obtaining the data existing in the memory of the main process and providing the sub-process is provided. A service providing apparatus according to any one of claims 1 to 5.
それぞれが前記複数の前記サブプロセスのそれぞれにおける前記メモリ量を取得する複数の前記サブプロセス監視手段を含み、
前記サンプリング手段は、前記複数の属性の中の、監視候補である1以上の属性のそれぞれを前記複数の前記サブプロセスのそれぞれに関連づけ、前記入力されたリクエストが当該関連づけられた属性を含む場合、当該リクエストを当該属性が関連づけられた前記サブプロセスに送信し、それ以外の属性を含む場合、当該リクエストを前記メインプロセスに送信する
請求項1に記載のサービス提供装置。 The processing means executes a plurality of the sub-processes,
Each including a plurality of the sub-process monitoring means for acquiring the amount of memory in each of the plurality of sub-processes;
The sampling means associates each of one or more attributes that are monitoring candidates among the plurality of attributes with each of the plurality of sub-processes, and when the input request includes the associated attributes, The service providing apparatus according to claim 1, wherein the request is transmitted to the sub-process with which the attribute is associated, and when the other attribute is included, the request is transmitted to the main process.
前記複数の属性の中の、監視候補である1以上の属性の内のいずれか1つを前記サブプロセスに関連づけ、入力されたリクエストが当該関連づけられた属性を含む場合、当該リクエストを前記サブプロセスに送信し、それ以外の属性を含む場合、当該リクエストを前記メインプロセスに送信し、
前記サブプロセスが確保したメモリ量を、リクエストの属性毎に取得して出力する
サービス提供方法。 Execute a sub-process and a main process that process a request that includes one of multiple attributes, securing the memory required to process the request,
If any one of the plurality of attributes that are candidates for monitoring is associated with the subprocess, and the input request includes the associated attribute, the request is associated with the subprocess. If the request contains any other attributes, the request is sent to the main process,
A service providing method for acquiring and outputting the amount of memory secured by the sub-process for each request attribute.
請求項8に記載のサービス提供方法。 If the attribute of the input request is the monitoring candidate, and the subprocess is not processing another request, associate the attribute of the input request with the subprocess and send the request to the subprocess. The service providing method according to claim 8.
それぞれが複数の属性のいずれかを含むリクエストを、当該リクエストの処理に必要なメモリを確保して処理する、サブプロセスとメインプロセスとを実行し、
前記複数の属性の中の、監視候補である1以上の属性の内のいずれか1つを前記サブプロセスに関連づけ、入力されたリクエストが当該関連づけられた属性を含む場合、当該リクエストを前記サブプロセスに送信し、それ以外の属性を含む場合、当該リクエストを前記メインプロセスに送信し、
前記サブプロセスが確保したメモリ量を、リクエストの属性毎に取得して出力する
処理を実行させるサービス提供用プログラム。 On the computer,
Execute a sub-process and a main process that process a request that includes one of multiple attributes, securing the memory required to process the request,
If any one of the plurality of attributes that are candidates for monitoring is associated with the subprocess, and the input request includes the associated attribute, the request is associated with the subprocess. If the request contains any other attributes, the request is sent to the main process,
A service providing program for executing processing for acquiring and outputting the amount of memory secured by the sub-process for each request attribute.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010259686A JP2012113380A (en) | 2010-11-22 | 2010-11-22 | Service provision device, service provision method, and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010259686A JP2012113380A (en) | 2010-11-22 | 2010-11-22 | Service provision device, service provision method, and program |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2012113380A true JP2012113380A (en) | 2012-06-14 |
Family
ID=46497560
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010259686A Withdrawn JP2012113380A (en) | 2010-11-22 | 2010-11-22 | Service provision device, service provision method, and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2012113380A (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3301576A1 (en) | 2016-09-29 | 2018-04-04 | Fujitsu Limited | Method and apparatus for monitoring logs of multi-tenant systems |
KR102059807B1 (en) * | 2018-06-27 | 2019-12-27 | 주식회사 티맥스 소프트 | Technique for memory management on service oriented architecture |
CN112104679A (en) * | 2019-06-17 | 2020-12-18 | 北京京东尚科信息技术有限公司 | Method, apparatus, device and medium for processing hypertext transfer protocol request |
-
2010
- 2010-11-22 JP JP2010259686A patent/JP2012113380A/en not_active Withdrawn
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3301576A1 (en) | 2016-09-29 | 2018-04-04 | Fujitsu Limited | Method and apparatus for monitoring logs of multi-tenant systems |
KR102059807B1 (en) * | 2018-06-27 | 2019-12-27 | 주식회사 티맥스 소프트 | Technique for memory management on service oriented architecture |
CN112104679A (en) * | 2019-06-17 | 2020-12-18 | 北京京东尚科信息技术有限公司 | Method, apparatus, device and medium for processing hypertext transfer protocol request |
CN112104679B (en) * | 2019-06-17 | 2024-04-16 | 北京京东尚科信息技术有限公司 | Method, apparatus, device and medium for processing hypertext transfer protocol request |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3799390B1 (en) | Preemptive scheduling based resource sharing use method, system and | |
US9448864B2 (en) | Method and apparatus for processing message between processors | |
US20100223598A1 (en) | Collecting profile-specified performance data on a multithreaded data processing system | |
CN104838359B (en) | The software interrupt and thread scheduling of latency-sensitive | |
EP1750200A2 (en) | System and method for executing job step, and computer product | |
US7904549B2 (en) | Performance information collection method, apparatus and recording medium | |
WO2012066640A1 (en) | Computer system, migration method, and management server | |
KR20140057371A (en) | Method, device, and system for performing scheduling in multi-processor core system | |
JP2007193471A (en) | Reservation management program, reservation management device and reservation management method | |
JP5609730B2 (en) | Information processing program and method, and transfer processing apparatus | |
US10305974B2 (en) | Ranking system | |
US11144423B2 (en) | Dynamic management of monitoring tasks in a cloud environment | |
JP2009087175A (en) | Storage apparatus, process controller, and storage system | |
JP2016126677A (en) | Load calculation method, load calculation program and load calculation device | |
US20210298033A1 (en) | Priority Control Method and Data Processing System | |
JP2012113380A (en) | Service provision device, service provision method, and program | |
US20210184926A1 (en) | Network management device and network management method | |
JP2010146260A (en) | Reproduction processing method, computer system, and program | |
JP2017091330A (en) | Computer system and task executing method of computer system | |
JP2009026221A (en) | Business process operation management system, method, process operation management device, and its program | |
JP6279816B2 (en) | Storage monitoring system and monitoring method thereof | |
JP2007328413A (en) | Method for distributing load | |
US20230040310A1 (en) | Cpu cluster shared resource management | |
JP5045576B2 (en) | Multiprocessor system and program execution method | |
JP5617586B2 (en) | Information processing program, relay device, and relay management device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20140204 |