JP2012113380A - Service provision device, service provision method, and program - Google Patents

Service provision device, service provision method, and program Download PDF

Info

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
Application number
JP2010259686A
Other languages
Japanese (ja)
Inventor
Takayuki Kuroda
貴之 黒田
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 JP2010259686A priority Critical patent/JP2012113380A/en
Publication of JP2012113380A publication Critical patent/JP2012113380A/en
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

PROBLEM TO BE SOLVED: To monitor memory usage of each tenant with high accuracy in a multi-tenant system.SOLUTION: A processing unit 112 executes a sub-process 151 and a main process 152 which process requests, each of which includes one of multiple properties, by securing memory needed for processing of the request. A sampling unit 111 associates one property among one or more properties which are monitoring candidates among the multiple properties with the sub-process 151. If an inputted request includes the associated property, the sampling unit 111 sends the request to the sub-process 151, and if it includes a property other than that, it sends the request to the main process 152. A sub-process monitor unit 113 acquires and outputs memory usage associated with the processing of the request in the sub-process 151, for each property of the request.

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 users 1, 2, 3,..., M are processed by threads 1, 2, 3,. Here, user 1 belongs to tenant 1, user 2 and user 3 belong to tenant 2, and user M belongs to tenant N, respectively. That is, thread 1 processes requests from tenant 1, threads 2 and 3 process requests from tenant 2, and thread M processes requests from tenant N. Such a correspondence relationship between the user and the thread is canceled every time one process is completed, and a certain thread processes a request from a user belonging to a different tenant at another timing.

このように、マルチテナント型システムでは、複数のテナント間でリソースを共有することにより、システムのテナントあたりの運用コストが軽減できる。一方、利用者であるテナントにとっては、可能な限り、他のテナントとリソースが共有されない一般的なシステムと同様の条件で、マルチテナント型システムを利用できることが望ましい。このような条件として、例えば、あるテナントに対するサービスの提供やサービス品質が、他のテナントによる共有リソースの使用量に影響されないようにすること、すなわち性能隔離がある。性能隔離を実現するためには、例えば、共有リソースを大量に使用するテナントに対しては、専用のリソースプールを割り当てる、或いは、リソースの使用制限を設けるというように、テナント毎のリソース使用量に応じた対応が行われる。このような性能隔離を行うためには、各テナントのリソース使用量を把握することが必要となる。   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 Document 1 describes a framework for performance isolation including resource monitoring functions and corresponding functions based on resource monitoring results in a multi-tenant system. However, Non-Patent Document 1 does not disclose a specific method for realizing resource monitoring.

ここで、監視対象のリソースをメモリ使用量とした場合の、マルチテナント型システムのリソース監視の問題点を説明する。   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 Patent Document 1, for example. The system described in Patent Document 1 monitors the memory usage of the entire process and the threads that have been executed, and apportions the memory usage of the entire process to each thread that has been executed at a predetermined ratio. Calculate the approximate memory usage for each thread.

特開2009−110213号公報JP 2009-110213 A

Xu Cheng, Yuliang Shi, Qingzhong Li, "A Multi-tenant Oriented Performance Monitoring, Detecting and Scheduling Architecture Based on SLA", 2009 Joint Conferences on Pervasive Computing (JCPC), pp.599-604, 2009.Xu Cheng, Yuliang Shi, Qingzhong Li, "A Multi-tenant Oriented Performance Monitoring, Detecting and Scheduling Architecture Based on SLA", 2009 Joint Conferences on Pervasive Computing (JCPC), pp.599-604, 2009.

しかしながら、特許文献1に記載の方法では、プロセス全体のメモリ使用量を各スレッドに案分することによりスレッド毎のメモリ使用量の概算値を算出するため、メモリ使用量の監視精度が低いという課題があった。特に、同時に実行されるスレッド数が多いシステムに適用した場合、各スレッドのメモリ使用量の概算値は、他のスレッドのメモリ使用量の影響を大きく受けるため、その監視精度は大幅に低下する。   However, in the method described in Patent Document 1, an approximate value of the memory usage for each thread is calculated by apportioning the memory usage of the entire process to each thread, so that the memory usage monitoring accuracy is low. was there. In particular, when applied to a system with a large number of threads executed simultaneously, the approximate value of the memory usage of each thread is greatly affected by the memory usage of other threads, and the monitoring accuracy is greatly reduced.

本発明の目的は、上述した課題を解決し、マルチテナント型システムにおいて、テナント毎のメモリ使用量を精度良く監視できるサービス提供装置、サービス提供方法、及び、プログラムを提供することにある。   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.

本発明の第一の実施の形態の特徴的な構成を示すブロック図である。It is a block diagram which shows the characteristic structure of 1st embodiment of this invention. 本発明の第一の実施の形態におけるマルチテナントシステムの構成を示すブロック図である。It is a block diagram which shows the structure of the multi-tenant system in 1st embodiment of this invention. 本発明の第一の実施の形態におけるサービス提供装置100のリクエスト処理の動作を示すフローチャートである。It is a flowchart which shows the operation | movement of the request process of the service provision apparatus 100 in 1st embodiment of this invention. 本発明の第一の実施の形態におけるサービス提供装置100のレスポンス処理の動作を示すフローチャートである。It is a flowchart which shows the operation | movement of the response process of the service provision apparatus 100 in 1st embodiment of this invention. 本発明の第一の実施の形態におけるサービス提供装置100のサブプロセス監視処理の動作を示すフローチャートである。It is a flowchart which shows the operation | movement of the sub process monitoring process of the service provision apparatus 100 in 1st embodiment of this invention. 本発明の第一の実施の形態におけるメモリ監視ログ131の例を示す図である。It is a figure which shows the example of the memory monitoring log 131 in 1st embodiment of this invention. 本発明の第一の実施の形態におけるメモリ監視結果情報132の例を示す図である。It is a figure which shows the example of the memory monitoring result information 132 in 1st embodiment of this invention. 本発明の第一の実施の形態における監視回数情報133の例を示す図である。It is a figure which shows the example of the monitoring frequency information 133 in 1st embodiment of this invention. 本発明の第一の実施の形態における監視回数情報133の他の例を示す図である。It is a figure which shows the other example of the monitoring frequency information 133 in 1st embodiment of this invention. 本発明の第一の実施の形態における監視対象情報134の例を示す図である。It is a figure which shows the example of the monitoring object information 134 in 1st embodiment of this invention. 本発明の第一の実施の形態におけるサービス提供装置100のメモリ使用量の変化の例を示す図である。It is a figure which shows the example of a change of the memory usage-amount of the service provision apparatus 100 in 1st embodiment of this invention. 本発明の第二の実施の形態におけるマルチテナントシステムの構成を示すブロック図である。It is a block diagram which shows the structure of the multi-tenant system in 2nd embodiment of this invention. 本発明の第二の実施の形態におけるサービス提供装置100のプロセス固有情報アクセス処理の動作を示すフローチャートである。It is a flowchart which shows the operation | movement of the process specific information access process of the service provision apparatus 100 in 2nd embodiment of this invention. 本発明の第三の実施の形態におけるマルチテナントシステムの構成を示すブロック図である。It is a block diagram which shows the structure of the multi-tenant system in 3rd embodiment of this invention. 本発明の第三の実施の形態における概算メモリ監視結果情報135の例を示す図である。It is a figure which shows the example of the rough memory monitoring result information 135 in 3rd embodiment of this invention. 本発明の第四の実施の形態におけるマルチテナントシステムの構成を示すブロック図である。It is a block diagram which shows the structure of the multi-tenant system in the 4th embodiment of this invention. 本発明の第四の実施の形態におけるサービス提供装置100のリクエスト処理の動作を示すフローチャートである。It is a flowchart which shows the operation | movement of the request process of the service provision apparatus 100 in the 4th embodiment of this invention. 本発明の第四の実施の形態におけるサービス提供装置100のサンプリングキュー処理の動作を示すフローチャートである。It is a flowchart which shows the operation | movement of the sampling queue process of the service provision apparatus 100 in 4th embodiment of this invention. 本発明の第五の実施の形態におけるマルチテナントシステムの構成を示すブロック図である。It is a block diagram which shows the structure of the multi-tenant system in the 5th embodiment of this invention. 本発明の第五の実施の形態におけるサービス提供装置100のリクエスト処理の動作を示すフローチャートである。It is a flowchart which shows the operation | movement of the request process of the service provision apparatus 100 in 5th embodiment of this invention. 本発明の第五の実施の形態におけるサービス提供装置100のレスポンス処理の動作を示すフローチャートである。It is a flowchart which shows the operation | movement of the response process of the service provision apparatus 100 in the 5th embodiment of this invention. 本発明の第五の実施の形態における監視対象情報140の例を示す図である。It is a figure which shows the example of the monitoring object information 140 in the 5th Embodiment of this invention. マルチテナント型システム上で稼働するスレッドとテナントとの対応関係の例を示す図である。It is a figure which shows the example of the correspondence of the thread | sled which operate | moves on a multitenant type | system | group, and a tenant. マルチテナント型システムのプロセスにおけるメモリ使用量の変化の例を示す図である。It is a figure which shows the example of the change of the memory usage in the process of a multi-tenant type 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 service providing apparatus 100 and a plurality of user terminals 200. The service providing apparatus 100 and the user terminal 200 are communicably connected via a network or the like.

サービス提供装置100は、サンプリング部111、処理部112、サブプロセス監視部113、メモリ監視ログ記憶部121、メモリ監視結果記憶部122、監視回数記憶部123、及び、監視対象記憶部124を含む。   The service providing apparatus 100 includes a sampling unit 111, a processing unit 112, a sub-process monitoring unit 113, a memory monitoring log storage unit 121, a memory monitoring result storage unit 122, a monitoring number storage unit 123, and a monitoring target storage unit 124.

ここで、サンプリング部111は、複数の利用者端末200のそれぞれからリクエストを受信し、そのリクエストの属性が監視候補であるか(監視すべきか)どうかを判定し、監視候補であれば、その属性を監視対象として、そのリクエストを処理部112上のサブプロセス151へ送信し、監視候補でなければ、そのリクエストを処理部112上のメインプロセス152に送信する。   Here, the sampling unit 111 receives a request from each of the plurality of user terminals 200, determines whether the attribute of the request is a monitoring candidate (or should be monitored), and if it is a monitoring candidate, the attribute The request is transmitted to the sub-process 151 on the processing unit 112, and if the request is not a monitoring candidate, the request is transmitted to the main process 152 on the processing unit 112.

なお、本発明の実施の形態では、各リクエストは、そのリクエストの属性として、テナントを識別するテナント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 sampling unit 111 determines whether each tenant is a monitoring candidate based on the tenant ID. Shall be determined.

また、各リクエストが、テナントIDの代わりに利用者を識別する利用者IDを含み、サンプリング部111が図示しない対応テーブルによりそれぞれの利用者IDが属するテナントのテナントIDを取得し、そのテナントIDをリクエストの属性としてもよい。   Each request includes a user ID for identifying the user instead of the tenant ID, and the sampling unit 111 acquires the tenant ID of the tenant to which each user ID belongs by a correspondence table (not shown). It may be a request attribute.

処理部112は、CPU(Central Processing Unit)であり、サブプロセス151とメインプロセス152との処理を実行する。   The processing unit 112 is a CPU (Central Processing Unit), and executes processing of the sub-process 151 and the main process 152.

なお、本発明の実施の形態において、サブプロセス151の処理、メインプロセス152の処理、または、各スレッドの処理は、実際には、処理部112が実行するものであるが、以下の説明においては、プロセスが実行、または、各スレッドが実行するものとして記載する。   In the embodiment of the present invention, the processing of the sub-process 151, the processing of the main process 152, or the processing of each thread is actually executed by the processing unit 112. In the following description, however, The process is described as being executed or executed by each thread.

メインプロセス152は、サンプリング部111から受信した監視対象以外のリクエストを処理する。メインプロセス152上では、図23に示したように、複数のスレッドが動作し、それぞれのスレッドが複数のリクエストのそれぞれを同時並行で処理する。   The main process 152 processes a request other than the monitoring target received from the sampling unit 111. On the main process 152, as shown in FIG. 23, a plurality of threads operate, and each thread processes a plurality of requests simultaneously in parallel.

サブプロセス151は、サンプリング部111から受信した監視対象のリクエストを処理する。サブプロセス151上でも、メインプロセス152と同様に、複数のスレッドが動作し、それぞれのスレッドが、複数のリクエストのそれぞれを同時並行で処理する。   The sub-process 151 processes the monitoring target request received from the sampling unit 111. Similarly to the main process 152, a plurality of threads operate on the sub-process 151, and each thread processes a plurality of requests simultaneously in parallel.

なお、メインプロセス152とサブプロセス151のそれぞれには、動作に必要な固有のメモリ空間が割り当てられており、各スレッドは、リクエストの処理に必要なメモリを確保し、そのリクエストを処理する。また、メインプロセス152上の各スレッドは、互いにプロセスに割り当てられたメモリ空間を共有しており、そのメモリ空間上のあるメモリ領域が、同時に複数のスレッドによって使用されることがあるものとする。同様に、サブプロセス151上の各スレッドも、互いにプロセスに割り当てられたメモリ空間を共有し、そのメモリ空間上のあるメモリ領域が同時に複数のスレッドによって使用されることがあるものとする。   Note that each of the main process 152 and the sub-process 151 is assigned a unique memory space necessary for the operation, and each thread secures a memory necessary for processing the request and processes the request. Also, it is assumed that the threads on the main process 152 share a memory space allocated to the processes, and a certain memory area on the memory space may be used simultaneously by a plurality of threads. Similarly, it is assumed that the threads on the sub-process 151 share the memory space allocated to the processes, and a certain memory area on the memory space may be used simultaneously by a plurality of threads.

サブプロセス監視部113は、サブプロセス151のメモリ使用量(サブプロセス151で確保されたメモリ量)を取得し、監視対象のテナントIDとともに、メモリ監視ログ記憶部121のメモリ監視ログ131に記録する。   The sub-process monitoring unit 113 acquires the memory usage amount of the sub-process 151 (the memory amount secured by the sub-process 151) and records it in the memory monitoring log 131 of the memory monitoring log storage unit 121 together with the monitoring target tenant ID. .

メモリ監視ログ記憶部121は、メモリ監視ログ131を記憶する。図6は、本発明の第一の実施の形態におけるメモリ監視ログ131の例を示す図である。メモリ監視ログ131は、図6に示すように、サブプロセス151における、テナントID毎の受付リクエスト数、開始時メモリ使用量、及び終了時メモリ使用量を含むレコード141を記録する。   The memory monitoring log storage unit 121 stores a memory monitoring log 131. FIG. 6 is a diagram illustrating an example of the memory monitoring log 131 according to the first embodiment of this invention. As illustrated in FIG. 6, the memory monitoring log 131 records a record 141 including the number of received requests for each tenant ID, the start memory usage, and the end memory usage in the sub-process 151.

メモリ監視結果記憶部122は、メモリ監視結果情報132を記憶する。図7は、本発明の第一の実施の形態におけるメモリ監視結果情報132の例を示す図である。メモリ監視結果情報132は、図7に示すように、テナントIDに対するメモリ使用量を含む。   The memory monitoring result storage unit 122 stores memory monitoring result information 132. FIG. 7 is a diagram illustrating an example of the memory monitoring result information 132 according to the first embodiment of this invention. As shown in FIG. 7, the memory monitoring result information 132 includes the memory usage for the tenant ID.

監視回数記憶部123は、監視回数情報133を記憶する。図8は、本発明の第一の実施の形態における監視回数情報133の例を示す図である。監視回数情報133は、テナントID毎の監視回数を含む。ここで、監視回数は、サブプロセス監視部113により、当該テナントID対するメモリ使用量の監視が行われた回数(メモリ監視ログ131に、当該テナントID対して生成されたレコード141の数)を示す。   The monitoring frequency storage unit 123 stores monitoring frequency information 133. FIG. 8 is a diagram illustrating an example of the monitoring frequency information 133 according to the first embodiment of this invention. The monitoring frequency information 133 includes the monitoring frequency for each tenant ID. Here, the number of times of monitoring indicates the number of times the memory usage for the tenant ID is monitored by the sub-process monitoring unit 113 (the number of records 141 generated for the tenant ID in the memory monitoring log 131). .

監視対象記憶部124は、監視対象情報134を記憶する。図10は、本発明の第一の実施の形態における監視対象情報134の例を示す図である。監視対象情報134は、サブプロセス151で処理中の(サブプロセス151に関連づけられた)監視対象のテナントIDを含む。   The monitoring target storage unit 124 stores monitoring target information 134. FIG. 10 is a diagram illustrating an example of the monitoring target information 134 according to the first embodiment of this invention. The monitoring target information 134 includes the tenant ID of the monitoring target being processed by the subprocess 151 (associated with the subprocess 151).

なお、本発明の実施の形態においては、スレッドは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 main process 152, and a plurality of threads are executed on each Java VM. Shall work. Further, as shown in FIG. 24, the memory usage by a thread increases cumulatively with the processing of a request, and is released by garbage collection provided by Java at a predetermined timing.

また、サービス提供装置100は、プログラムを記憶した記憶媒体を含み、プログラムに基づく制御によって動作するコンピュータであってもよい。この場合、サンプリング部111及びサブプロセス監視部113も、処理部112上でプログラムに基づく制御によって動作してもよい。また、メモリ監視ログ記憶部121と、監視回数記憶部123と、監視対象記憶部124とは、それぞれ個別の記憶媒体でも、1つの記憶媒体によって構成されてもよい。   Service providing apparatus 100 may be a computer that includes a storage medium storing a program and that operates by control based on the program. In this case, the sampling unit 111 and the sub-process monitoring unit 113 may also operate on the processing unit 112 by control based on a program. In addition, the memory monitoring log storage unit 121, the monitoring frequency storage unit 123, and the monitoring target storage unit 124 may be configured as individual storage media or a single storage medium.

次に、本発明の第一の実施の形態におけるサービス提供装置100の動作について説明する。   Next, the operation of the service providing apparatus 100 according to the first embodiment of the present invention will be described.

はじめに、本発明の第一の実施の形態におけるサービス提供装置100のリクエスト処理について説明する。図3は、本発明の第一の実施の形態におけるサービス提供装置100のリクエスト処理の動作を示すフローチャートである。   First, request processing of the service providing apparatus 100 according to the first embodiment of the present invention will be described. FIG. 3 is a flowchart showing the request processing operation of the service providing apparatus 100 according to the first embodiment of the present invention.

サンプリング部111は、利用者端末200からリクエストを受信する(ステップS101)。   The sampling unit 111 receives a request from the user terminal 200 (step S101).

サンプリング部111は、リクエストのテナントIDが監視候補かどうかを判定する(ステップS102)。ここで、サンプリング部111は、監視回数記憶部123の監視回数情報133を参照し、監視回数が所定値以下のテナントIDを監視候補と判定する。   The sampling unit 111 determines whether the tenant ID of the request is a monitoring candidate (step S102). Here, the sampling unit 111 refers to the monitoring number information 133 in the monitoring number storage unit 123 and determines a tenant ID whose monitoring number is equal to or less than a predetermined value as a monitoring candidate.

なお、テナント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 sampling unit 111 determines whether the request can be monitored (step S103).

ここで、サンプリング部111は、リクエストが監視可能かどうかを判定する条件(以下、監視可能条件とする)を、「監視可能監視対象記憶部124の監視対象情報134にテナントIDが設定されていない(サブプロセス151で処理中の他のリクエストが無い)」、または、「監視対象情報134に設定されているテナントIDが、そのリクエストのテナントIDと同じ(サブプロセス151で処理中のリクエストのテナントIDが、受信したリクエストのテナントIDと同じ)である」こととし、監視可能条件を満たす場合、そのリクエストを監視可能と判定する。   Here, the sampling unit 111 sets a condition for determining whether or not the request can be monitored (hereinafter referred to as a monitorable condition) as “the tenant ID is not set in the monitoring target information 134 of the monitorable monitoring target storage unit 124. (There is no other request being processed in the sub-process 151) ”or“ The tenant ID set in the monitoring target information 134 is the same as the tenant ID of the request (the tenant of the request being processed in the sub-process 151) The ID is the same as the tenant ID of the received request), and if the monitorable condition is satisfied, the request is determined to be monitorable.

なお、同じテナント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 monitoring target information 134 of the monitoring target monitoring target storage unit 124”. .

ステップ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 monitoring target information 134, the sampling unit 111 sets the tenant ID of the request in the monitoring target information 134. Is set (the tenant ID is associated with the sub-process 151) (step S104).

そして、サンプリング部111は、リクエストのテナントIDをサブプロセス監視部113に通知し(ステップS105)、リクエストをサブプロセス151に送信する(ステップS106)。   Then, the sampling unit 111 notifies the tenant ID of the request to the sub-process monitoring unit 113 (Step S105), and transmits the request to the sub-process 151 (Step S106).

例えば、監視回数記憶部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 frequency storage unit 123 and the tenant ID of the request is “tenant_B”. Here, when determining the tenant ID having the smallest number of monitoring times as the monitoring candidate, the sampling unit 111 sets the tenant ID “tenant_B” as the monitoring candidate because the number of monitoring times “5 times” of the tenant ID “tenant_B” is the smallest. Judgment.

ここで、監視対象情報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 monitoring target information 134, the sampling unit 111 determines that the tenant ID “tenant_B” can be monitored, and the tenant ID “tenant_B” in the monitoring target information 134 as illustrated in FIG. Set. Then, the sampling unit 111 notifies the sub-process monitoring unit 113 of the tenant ID “tenant_B” and transmits a request to the sub-process 151.

また、監視対象情報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 monitoring target information 134, the sampling unit 111 determines that the tenant ID “tenant_B” can be monitored and sets the tenant ID “tenant_B” to the sub-process monitoring unit. 113 is notified, and the request is transmitted to the sub-process 151.

サブプロセス151は、サンプリング部111から受信したリクエストの処理を行う。   The sub process 151 processes the request received from the sampling unit 111.

一方、ステップ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 sampling unit 111 transmits the request to the main process 152 (Step S107).

例えば、図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 count storage unit 123 and the tenant ID of the request is “tenant_A”, the sampling unit 111 monitors the monitoring count “tenant_A”. Since “10 times” is not the minimum, it is determined that the tenant ID “tenant_A” is not a monitoring candidate, and the request is transmitted to the main process 152.

また、図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 monitoring target information 134 and the tenant ID “tenant_C” of the request is determined as a monitoring candidate, the sampling unit 111 determines that the tenant ID “tenant_C”. Determines that monitoring is impossible, and sends a request to the main process 152.

次に、本発明の第一の実施の形態におけるサービス提供装置100のレスポンス処理について説明する。図4は、本発明の第一の実施の形態におけるサービス提供装置100のレスポンス処理の動作を示すフローチャートである。   Next, response processing of the service providing apparatus 100 in the first embodiment of the present invention will be described. FIG. 4 is a flowchart showing the response processing operation of the service providing apparatus 100 according to the first embodiment of the present invention.

サンプリング部111は、サブプロセス151、または、メインプロセス152からリクエストの処理結果であるレスポンスを受信する(ステップS121)。   The sampling unit 111 receives a response that is a processing result of the request from the sub-process 151 or the main process 152 (step S121).

レスポンスをサブプロセス151から受信した場合(ステップS122/Yes)、サンプリング部111は、サブプロセス151に送信した全てのリクエストに対してレスポンスを受信したかどうかを判定する(ステップS123)。   When a response is received from the sub-process 151 (step S122 / Yes), the sampling unit 111 determines whether a response has been received for all requests transmitted to the sub-process 151 (step S123).

ステップS123において、全てのリクエストに対してレスポンスを受信した場合(ステップS123/Yes)、サンプリング部111は、監視対象記憶部124の監視対象情報134からテナントIDを削除する(ステップS124)。   In step S123, when responses are received for all requests (step S123 / Yes), the sampling unit 111 deletes the tenant ID from the monitoring target information 134 of the monitoring target storage unit 124 (step S124).

例えば、図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 monitoring target information 134 and responses are received for all requests transmitted to the sub-process 151, the tenant ID “ Tenant_B "is deleted.

サンプリング部111は、レスポンスをリクエストの送信元の利用者端末200に送信する(ステップS125)。   The sampling unit 111 transmits a response to the user terminal 200 that is the transmission source of the request (step S125).

また、ステップ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 sampling unit 111 transmits a response to the user terminal 200 that is the transmission source of the request (step S125).

このように、サンプリング部111は、監視対象情報134に設定されるテナントIDを、そのテナントIDに対して同時に発生した複数のリクエストに対するレスポンスを全て受信してから削除する。これにより、サブプロセス151は、同時に同一のテナントIDだけが処理されるように、制御される。   As described above, the sampling unit 111 deletes the tenant ID set in the monitoring target information 134 after receiving all responses to a plurality of requests generated simultaneously for the tenant ID. Thereby, the sub-process 151 is controlled so that only the same tenant ID is processed at the same time.

次に、本発明の第一の実施の形態におけるサービス提供装置100のサブプロセス監視処理について説明する。図5は、本発明の第一の実施の形態におけるサービス提供装置100のサブプロセス監視処理の動作を示すフローチャートである。   Next, the sub-process monitoring process of the service providing apparatus 100 according to the first embodiment of the present invention will be described. FIG. 5 is a flowchart showing the operation of the sub-process monitoring process of the service providing apparatus 100 according to the first embodiment of the present invention.

サブプロセス監視部113は、サンプリング部111から、サブプロセス151に送信されたリクエストのテナントIDを受信する(ステップS201)。   The sub-process monitoring unit 113 receives the tenant ID of the request transmitted to the sub-process 151 from the sampling unit 111 (Step S201).

サブプロセス監視部113は、サブプロセス151のメモリ使用量を取得する(ステップS202)。   The sub-process monitoring unit 113 acquires the memory usage of the sub-process 151 (Step S202).

例えば、サブプロセス監視部113は、JavaVMが提供する、プロセスのメモリ使用量の測定機能を用いて、サブプロセス151全体のメモリ使用量を取得する。   For example, the sub-process monitoring unit 113 acquires the memory usage of the entire sub-process 151 by using a process memory usage measurement function provided by JavaVM.

サブプロセス監視部113は、ステップS201で受信したテナントIDが、メモリ監視ログ131に保存されている最新のレコード141のテナントIDと同じかどうかを判定する(ステップS203)。   The sub-process monitoring unit 113 determines whether or not the tenant ID received in step S201 is the same as the tenant ID of the latest record 141 stored in the memory monitoring log 131 (step S203).

ステップ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 sub-process monitoring unit 113 stores the end-time memory of the latest record 141 stored in the memory monitoring log 131. The usage amount is updated with the memory usage amount acquired in step S202 (step S204).

サブプロセス監視部113は、監視回数記憶部123の監視回数情報133における、最新のレコード141のテナントIDに対する監視回数に1を加算する(ステップS205)。   The sub-process monitoring unit 113 adds 1 to the number of monitoring times for the tenant ID of the latest record 141 in the monitoring number information 133 of the monitoring number storage unit 123 (step S205).

そして、サブプロセス監視部113は、メモリ監視ログ131に新たなレコード141を追加する(ステップS206)。ここで、サブプロセス監視部113は、追加した新たなレコード141のテナントIDにステップS201で受信したテナントIDを、受付リクエスト数に1を、また、開始時メモリ使用量と終了時メモリ使用量の双方にステップS202で取得したメモリ使用量を、それぞれ設定する。   Then, the sub-process monitoring unit 113 adds a new record 141 to the memory monitoring log 131 (Step S206). Here, the sub-process monitoring unit 113 sets the tenant ID received in step S201 to the tenant ID of the added new record 141, 1 for the number of received requests, and the start-time memory usage and the end-time memory usage. The memory usage acquired in step S202 is set for both.

例えば、メモリ監視ログ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 records 141a, b, and c in FIG. 6 are recorded in the memory monitoring log 131 and the received tenant ID is “tenant_B”, the sub-process monitoring unit 113 uses the memory at the end of the record 141c. The amount is updated with “250 MB”. Then, the sub-process monitoring unit 113 adds 1 to the number of monitoring times for the tenant ID “tenant_B” in the monitoring number information 133. Further, the sub-process monitoring unit 113 adds a record 141d whose tenant ID is “tenant_B”, and sets “250 MB” as the start-time memory usage and the end-time memory usage.

一方、ステップ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 sub-process monitoring unit 113 accepts the latest record 141 stored in the memory monitoring log 131. 1 is added to the number of requests (step S207).

例えば、メモリ監視ログ131に、図6のレコード141a、b、c、dが記録されており、受信したテナントIDが「tenant_B」であった場合、サブプロセス監視部113は、レコード141dの受付リクエスト数に1を加算する。   For example, when the records 141a, b, c, and d in FIG. 6 are recorded in the memory monitoring log 131 and the received tenant ID is “tenant_B”, the sub-process monitoring unit 113 requests the reception of the record 141d. Add 1 to the number.

ステップS206、または、ステップS207が終了すると、サブプロセス監視部113は、ステップS201〜ステップS207の処理を繰り返す。   When step S206 or step S207 ends, the sub-process monitoring unit 113 repeats the processing of step S201 to step S207.

これにより、メモリ監視ログ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 sub-process monitoring unit 113 aggregates the memory usage recorded in the memory monitoring log 131 for each tenant ID when requested by the administrator or at a predetermined timing set by the administrator. The monitoring result information 132 is stored in the memory monitoring result storage unit 122.

例えば、サブプロセス監視部113は、図6のメモリ監視ログ131の各レコード141について、終了時メモリ使用量と開始時メモリ使用量との差分を計算することにより、各レコード141に対応する期間における当該レコード141に対応するテナントIDの総メモリ使用量を算出し、それを受付リクエスト数で割ることで、メモリ使用量の平均値を算出する。そして、サブプロセス監視部113は、各レコード141のメモリ使用量の平均値を、テナントID毎に集計し、図7のようなメモリ監視結果情報132をメモリ監視結果記憶部122に保存する。   For example, the sub-process monitoring unit 113 calculates the difference between the end-time memory usage and the start-time memory usage for each record 141 of the memory monitoring log 131 in FIG. The total memory usage of the tenant ID corresponding to the record 141 is calculated, and the average value of the memory usage is calculated by dividing it by the number of received requests. Then, the sub-process monitoring unit 113 aggregates the average value of the memory usage of each record 141 for each tenant ID, and stores the memory monitoring result information 132 as illustrated in FIG. 7 in the memory monitoring result storage unit 122.

なお、サブプロセス監視部113は、メモリ監視ログ131の各レコード141に、監視の開始時間や終了時間を併せて記録し、所定の時間帯におけるメモリ使用量を計算したり、時間に対するメモリ使用量の推移を算出してもよい。   The sub-process monitoring unit 113 records the monitoring start time and end time together in each record 141 of the memory monitoring log 131, calculates the memory usage in a predetermined time zone, and uses the memory usage with respect to time. You may calculate transition of.

また、サブプロセス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 sampling unit 111, for example, while the tenant ID is set in the monitoring target information 134, Thus, it may be controlled not to perform garbage collection. In this case, when the memory shortage occurs in the sub-process 151, the sampling unit 111 stops sending the monitoring target tenant ID request to the sub-process 151, and after receiving all replies from the sub-process 151. , JavaVM is forcibly controlled to perform garbage collection.

ここで、本発明の第一の実施の形態におけるサービス提供装置100において監視されるメモリ使用量について説明する。図11は、本発明の第一の実施の形態におけるサービス提供装置100のメモリ使用量の変化の例を示す図である。   Here, the memory usage monitored in the service providing apparatus 100 according to the first embodiment of the present invention will be described. FIG. 11 is a diagram illustrating an example of a change in memory usage of the service providing apparatus 100 according to the first embodiment of this invention.

本発明の第一の実施の形態では、監視候補のテナント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 main process 152. Is done. Therefore, by monitoring the memory usage of the sub-process 151, the sub-process monitoring unit 113 can accurately acquire the memory usage of the monitoring candidate tenant from the memory usage of other tenants.

例えば、図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 thread 1 on the main process 152. Is done. The sub-process monitoring unit 113 can accurately monitor the memory usage of the tenant ID “tenant_B” by monitoring the memory usage of the sub-process 151.

以上により、本発明の第一の実施の形態の動作が完了する。   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 sub-process monitoring unit 113 detects the switching of the tenant ID processed by the sub-process 151 and adds the number of monitoring times of the monitoring number information 133. The sampling unit 111 may perform this.

また、本発明の第一の実施の形態においては、サンプリング部111が、テナント毎の監視回数をもとに、監視回数が所定値以下のテナントIDを監視候補としているが、監視候補は他の方法により与えられてもよい。   In the first embodiment of the present invention, the sampling unit 111 uses tenant IDs whose number of monitoring is a predetermined value or less as monitoring candidates based on the number of monitoring for each tenant. It may be given by a method.

例えば、サンプリング部111は、テナントID毎に、受信した全リクエスト数に対する監視回数を算出し、その値が所定値以下のテナントIDを監視候補としてもよい。   For example, the sampling unit 111 may calculate the number of times of monitoring for the total number of requests received for each tenant ID, and may select a tenant ID whose value is a predetermined value or less as a monitoring candidate.

図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 sampling unit 111 sets the tenant ID “tenant_A” as the monitoring candidate.

また、監視候補のテナント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 sampling unit 111 may preferentially select a tenant with a large memory usage as a monitoring candidate based on the history of the memory usage monitored during a predetermined period according to the first embodiment of the present invention. . Similarly, the sampling unit 111 selects a tenant having a large memory usage for each day, day of the week, or time period in a month based on the history of the memory usage monitored during a predetermined period. A tenant with a large memory usage may be preferentially selected as a monitoring candidate on the day, day of the week, or time period when the data is extracted and monitored.

次に、本発明の第一の実施の形態の特徴的な構成を説明する。図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 service providing apparatus 100 includes a sampling unit 111, a processing unit 112, and a sub-process monitoring unit 113.

ここで、処理部112は、それぞれが複数の属性のいずれかを含むリクエストを、当該リクエストの処理に必要なメモリを確保して処理する、サブプロセス151とメインプロセス152とを実行する。サンプリング部111は、複数の属性の中の、監視候補である1以上の属性の内のいずれか1つをサブプロセス151に関連づけ、入力されたリクエストが当該関連づけられた属性を含む場合、当該リクエストをサブプロセス151に送信し、それ以外の属性を含む場合、当該リクエストをメインプロセス152に送信する。サブプロセス監視部113は、サブプロセス151におけるリクエストの処理に伴うメモリ使用量を、リクエストの属性毎に取得して出力する。   Here, the processing unit 112 executes a sub-process 151 and a main process 152 that process a request including any of a plurality of attributes while securing a memory necessary for processing the request. The sampling unit 111 associates any one of one or more attributes that are monitoring candidates among the plurality of attributes with the sub-process 151, and when the input request includes the associated attribute, Is transmitted to the sub-process 151, and when the other attributes are included, the request is transmitted to the main process 152. The sub-process monitoring unit 113 acquires and outputs the memory usage associated with request processing in the sub-process 151 for each request attribute.

次に、本発明の第一の実施の形態の効果を説明する。   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 sampling unit 111 transmits the request to the sub-process 151, and the sub-process monitoring unit 113 uses the memory associated with the request processing in the sub-process 151. This is to get the amount. As a result, the memory usage of the acquired tenant of the monitoring candidate is distinguished from the memory usage of other tenants and is not affected by the number of threads operating on the process, so the monitoring accuracy is increased. .

また、本発明の第一の実施の形態によれば、特許文献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 Patent Document 1. The reason is that the sub-process 151 processes only the request of the monitoring candidate tenant, and the sub-process monitoring unit 113 records the memory usage of the sub-process 151 only for the request of the monitoring candidate tenant.

また、本発明の第一の実施の形態によれば、特定のテナントのメモリ使用量を取得するような柔軟な監視の制御を行うことができる。その理由は、サブプロセス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 sub-process monitoring unit 113 acquires the memory usage of the sub-process 151 only for the request of the monitoring candidate tenant. As a result, the administrator sets a specific tenant as a monitoring candidate, or the service providing apparatus 100 sets a monitoring candidate based on the monitoring history, whereby only the specific tenant can be efficiently acquired.

(第二の実施の形態)
次に、本発明の第二の実施の形態について図面を参照して詳細に説明する。
(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 main process 152.

プロセス固有情報とは、例えば、プロセス固有のメモリ領域に保持されたデータのように、プロセス内部からしかアクセスできないデータのうち、利用者からの複数のリクエストにまたがって参照、または、更新されるデータである。例えば、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 main process 152, the sub-process 151 and the main process 152 refer to the same process-specific information. The series of requests cannot be processed correctly.

本発明の第二の実施の形態においては、プロセス固有情報媒介部114が、サブプロセス151からの要求に応じて、メインプロセス152のメモリ空間に存在するプロセス固有情報の更新、参照を行う。   In the second embodiment of the present invention, the process specific information mediating unit 114 updates and references process specific information existing in the memory space of the main process 152 in response to a request from the sub-process 151.

次に、本発明の第二の実施の形態の構成について説明する。本発明の第二の実施の形態において、第一の実施の形態と同様の構成要素については、第一の実施の形態(図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 service providing apparatus 100 according to the second embodiment of the present invention includes a process-specific information mediating unit 114 in addition to the configuration of the first embodiment of the present invention.

プロセス固有情報媒介部114は、サブプロセス151からの要求に応じて、メインプロセス152のメモリ空間に存在するプロセス固有情報の更新、参照を行う。   In response to a request from the sub-process 151, the process-specific information mediating unit 114 updates and references process-specific information existing in the memory space of the main process 152.

次に、本発明の第二の実施の形態におけるサービス提供装置100の動作について説明する。   Next, the operation of the service providing apparatus 100 according to the second embodiment of the present invention will be described.

図13は、本発明の第二の実施の形態におけるサービス提供装置100のプロセス固有情報アクセス処理の動作を示すフローチャートである。   FIG. 13 is a flowchart showing the operation of the process specific information access process of the service providing apparatus 100 according to the second embodiment of the present invention.

ここで、プロセス固有情報媒介部114は、メインプロセス152とサブプロセス151との上で動作するプログラムにより実現されているものとする。   Here, it is assumed that the process-specific information mediating unit 114 is realized by a program that operates on the main process 152 and the sub-process 151.

サブプロセス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 information mediating unit 114 of the sub process 151 interrupts the access process, and the process of the main process 152 The unique information intermediary unit 114 is requested to perform access processing through inter-process communication (step S302). Here, the process specific information mediating unit 114 of the sub-process 151 notifies the variable name of the process specific information to be referred if the access process is a reference, and the variable name of the process specific information to be updated if the access process is an update. And the updated value.

メインプロセス152のプロセス固有情報媒介部114は、サブプロセス151のプロセス固有情報媒介部114からの要求に従って、メインプロセス152のメモリ空間上に存在する、指定された変数名のプロセス固有情報の参照や更新を実施する(ステップS303)。   In response to a request from the process unique information mediating unit 114 of the sub-process 151, the process unique information mediating unit 114 of the main process 152 refers to the process unique information of the specified variable name existing in the memory space of the main process 152, Update is performed (step S303).

メインプロセス152のプロセス固有情報媒介部114は、参照や更新の結果を、アクセス処理結果としてサブプロセス151のプロセス固有情報媒介部114に送信する(ステップS304)。   The process unique information mediating unit 114 of the main process 152 transmits the result of reference or update to the process unique information mediating unit 114 of the sub-process 151 as an access processing result (step S304).

サブプロセス151のプロセス固有情報媒介部114は、メインプロセス152から受信した処理結果を、スレッドで発生したアクセス処理の結果として返答する(ステップS305)。   The process specific information mediating unit 114 of the sub-process 151 returns the processing result received from the main process 152 as a result of the access processing that has occurred in the thread (step S305).

例えば、プロセス固有情報へのアクセス処理に対する割り込みとして、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 process 152 is defined. The process specific information mediating unit 114 of the subprocess 151 cancels execution of getState () requested by the thread on the subprocess 151, and requests process specific state information from the main process 152 through interprocess communication. In response to this request, the process specific information mediating unit 114 of the main process 152 executes the getState () method and returns the result to the sub-process 151 by inter-process communication. Then, the process specific information mediating unit 114 of the subprocess 151 returns the received result as the result of the getState () method.

以上により、本発明の第二の実施の形態の動作が完了する。   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 information mediating unit 114 updates and references process specific information existing in the memory space of the main process 152 in response to a request from the sub-process 151.

(第三の実施の形態)
次に、本発明の第三の実施の形態について図面を参照して詳細に説明する。
(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 sampling unit 111 determines the monitoring candidate tenant based on the estimated memory usage for each tenant in the main process 152. The form is different.

次に、本発明の第三の実施の形態の構成について説明する。本発明の第三の実施の形態において、第一の実施の形態と同様の構成要素については、第一の実施の形態(図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 service providing apparatus 100 according to the third embodiment of the present invention includes a main process monitoring unit 115 and an approximate memory monitoring result storage unit 125 in addition to the configuration of the first embodiment of the present invention. Including.

メインプロセス監視部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 result storage unit 125 is stored.

概算メモリ使用量は、サブプロセス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 sub-process monitoring unit 113. Further, it is desirable that the approximate memory usage amount is obtained by a simple method with little influence on the main process 152. In the third embodiment of the present invention, the main process monitoring unit 115 acquires the approximate memory usage for each tenant in the main process 152 by a method similar to the method described in Patent Document 1. . That is, the main process monitoring unit 115 monitors the memory usage of the entire main process 152 and the tenant that is executing processing in the main process 152, and the memory usage of the entire main process 152 is monitored for each tenant that has been executing. Approximate memory usage for each tenant is calculated by prorated distribution at a predetermined rate.

概算メモリ監視結果記憶部125は、概算メモリ監視結果情報135を記憶する。図15は、本発明の第三の実施の形態における概算メモリ監視結果情報135の例を示す図である。概算メモリ監視結果情報135は、図15に示すように、メインプロセス152におけるテナントID毎の累積概算メモリ使用量、総リクエスト数、及び、概算メモリ使用量を含む。   The approximate memory monitoring result storage unit 125 stores approximate memory monitoring result information 135. FIG. 15 is a diagram illustrating an example of the approximate memory monitoring result information 135 according to the third embodiment of this invention. As shown in FIG. 15, the approximate memory monitoring result information 135 includes a cumulative approximate memory usage amount, a total number of requests, and an approximate memory usage amount for each tenant ID in the main process 152.

サンプリング部111は、概算メモリ監視結果情報135を参照し、メインプロセス152の概算メモリ使用量をもとに、監視候補のテナントIDを決定する。   The sampling unit 111 refers to the approximate memory monitoring result information 135 and determines a monitoring candidate tenant ID based on the approximate memory usage of the main process 152.

次に、本発明の第三の実施の形態におけるサービス提供装置100の動作について説明する。   Next, the operation of the service providing apparatus 100 according to the third embodiment of the present invention will be described.

はじめに、メインプロセス監視部115は、特許文献1と同様の方法により、メインプロセス152におけるテナント毎の概算メモリ使用量を取得する。   First, the main process monitoring unit 115 acquires the approximate memory usage amount for each tenant in the main process 152 by the same method as in Patent Document 1.

例えば、メインプロセス監視部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 information 135, and 1 is added to the total number of requests of each tenant. Then, the main process monitoring unit 115 calculates the approximate memory usage per request by dividing the accumulated approximate memory usage of each tenant by the total number of requests at a predetermined timing, and saves it in the approximate memory monitoring result information 135. To do. As a result, the approximate memory monitoring result storage unit 125 stores the approximate memory usage as shown in FIG.

次に、本発明の第三の実施の形態におけるリクエスト処理について説明する。本発明の第三の実施の形態におけるリクエスト処理の動作は、テナント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 sampling unit 111 refers to the approximate memory monitoring result information 135 in the approximate memory monitoring result storage unit 125, and sets a tenant ID whose approximate memory usage is a predetermined value or less as a monitoring candidate.

例えば、概算メモリ監視結果記憶部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 result storage unit 125 and the tenant ID having the maximum approximate memory usage is determined as a monitoring candidate, the sampling unit 111 Since the estimated memory usage “30 MB” of the ID “tenant_A” is the maximum, the tenant ID “tenant_A” is set as a monitoring candidate.

また、サンプリング部111は、監視回数記憶部123の監視回数情報133を参照し、監視回数あたりの概算メモリ使用量が所定値以上のテナントIDを監視候補としてもよい。   Further, the sampling unit 111 may refer to the monitoring number information 133 in the monitoring number storage unit 123, and may select a tenant ID whose approximate memory usage per monitoring number is a predetermined value or more as a monitoring candidate.

例えば、監視回数記憶部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 frequency storage unit 123 and the approximate memory monitoring result information 135 as shown in FIG. 15 is stored in the approximate memory monitoring result storage unit 125, the sampling unit 111 Since the estimated memory usage “28 MB / 7 = 4 MB” per number of monitoring of the ID “tenant_C” is the maximum, the tenant ID “tenant_C” is set as a monitoring candidate.

このように、本発明の第一の実施形態のように、監視回数をもとに監視候補を決定した場合には、テナント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 main process 152 is determined as a monitoring candidate.

以上により、本発明の第三の実施の形態の動作が完了する。   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 sampling unit 111 uses tenant IDs whose estimated memory usage in the main process 152 is a predetermined value or more as a monitoring candidate. However, the sampling unit 111 uses the estimated memory usage. The monitoring candidate may be determined by another method using the measurement result.

例えば、メインプロセス監視部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 main process 152, and the sampling unit 111 increases the approximate memory as the number of tenants processed simultaneously increases. A tenant with a low accuracy of the usage amount and a low accuracy of the approximate memory usage may be preferentially selected as a monitoring candidate.

また、サンプリング部111は、概算メモリ使用量とその概算メモリ使用量の精度との両方を用い、例えば、概算メモリ使用量に対するその概算メモリ使用量の精度が低いテナントを優先的に監視候補としてもよい。   Further, the sampling unit 111 uses both the approximate memory usage and the accuracy of the approximate memory usage. For example, a tenant having a low accuracy of the approximate memory usage relative to the approximate memory usage may be preferentially selected as a monitoring candidate. Good.

本発明の第三の実施の形態によれば、メインプロセス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 main process 152. This is because the sampling unit 111 calculates the approximate memory usage in the main process 152, and the sampling unit 111 determines the tenant ID of the monitoring candidate based on the approximate memory usage.

(第四の実施の形態)
次に、本発明の第四の実施の形態について図面を参照して詳細に説明する。
(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 sampling unit 111 stores and processes a request including the monitoring candidate tenant ID in the sampling queue 116.

次に、本発明の第四の実施形態の構成について説明する。本発明の第四の実施の形態において、第一の実施の形態と同様の構成要素については、第一の実施の形態(図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 service providing apparatus 100 according to the fourth embodiment of the present invention includes a sampling queue 116 in addition to the configuration of the first embodiment of the present invention.

サンプリングキュー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 sampling unit 111 stores the request in the sampling queue 116. When the request stored in the sampling queue 116 can be monitored, the sampling unit 111 transmits the request to the sub-process 151.

次に、本発明の第四の実施の形態におけるサービス提供装置100の動作について説明する。   Next, the operation of the service providing apparatus 100 according to the fourth embodiment of the present invention will be described.

はじめに、本発明の第四の実施の形態におけるサービス提供装置100のリクエスト処理について説明する。図17は、本発明の第四の実施の形態におけるサービス提供装置100のリクエスト処理の動作を示すフローチャートである。   First, request processing of the service providing apparatus 100 according to the fourth embodiment of the present invention will be described. FIG. 17 is a flowchart showing an operation of request processing of the service providing apparatus 100 according to the fourth embodiment of the present invention.

はじめに、サンプリング部111は、利用者端末200からリクエストを受信する(ステップS401)。   First, the sampling unit 111 receives a request from the user terminal 200 (step S401).

サンプリング部111は、リクエストのテナントIDが監視候補かどうかを判定する(ステップS402)。   The sampling unit 111 determines whether the tenant ID of the request is a monitoring candidate (step S402).

ステップ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 sampling unit 111 stores the request in the sampling queue 116 (step S403).

一方、ステップ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 sampling unit 111 transmits the request to the main process 152 (step S404).

次に、本発明の第四の実施の形態におけるサービス提供装置100のサンプリングキュー処理について説明する。図18は、本発明の第四の実施の形態におけるサービス提供装置100のサンプリングキュー処理の動作を示すフローチャートである。   Next, sampling queue processing of the service providing apparatus 100 according to the fourth embodiment of the present invention will be described. FIG. 18 is a flowchart showing the sampling queue processing operation of the service providing apparatus 100 according to the fourth embodiment of the present invention.

サンプリング部111が、リクエストをサンプリングキュー116に格納(ステップS403)、または、監視対象情報134からナントIDを削除(ステップS124)した場合、サンプリング部111は、サンプリングキュー116のリクエストを先頭から順番に1つ読み出す(ステップS441)。   When the sampling unit 111 stores the request in the sampling queue 116 (step S403) or deletes the Nantes ID from the monitoring target information 134 (step S124), the sampling unit 111 sequentially requests the sampling queue 116 from the top. One is read (step S441).

サンプリング部111は、リクエストが監視可能かどうかを判定する(ステップS442)。ここで、サンプリング部111は、本発明の第一の実施の形態と同様の監視可能条件により、リクエストが監視可能かどうかを判定する。   The sampling unit 111 determines whether the request can be monitored (step S442). Here, the sampling unit 111 determines whether or not the request can be monitored based on the monitoring conditions similar to those in the first embodiment of the present invention.

ステップ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 monitoring target information 134, the sampling unit 111 sets the tenant ID of the request in the monitoring target information 134. Is set (step S443).

そして、サンプリング部111は、リクエストのテナントIDをサブプロセス監視部113に通知し(ステップS444)、リクエストをサブプロセス151に送信する(ステップS445)。   Then, the sampling unit 111 notifies the tenant ID of the request to the sub-process monitoring unit 113 (Step S444), and transmits the request to the sub-process 151 (Step S445).

ステップS442において、リクエストが監視不可能であると判定された場合(ステップS442/No)、サンプリング部111は、そのリクエストが所定時間以上サンプリングキュー116に滞留しているかどうかを判定する(ステップS447)。   If it is determined in step S442 that the request cannot be monitored (step S442 / No), the sampling unit 111 determines whether or not the request remains in the sampling queue 116 for a predetermined time or more (step S447). .

ステップ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 sampling unit 111 transmits a request to the main process 152 (step S448).

また、ステップ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 sampling unit 111 holds the request in the sampling queue 116 as it is.

リクエストがサブプロセス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 sampling unit 111 deletes the request from the sampling queue 116 (Step S446).

サンプリング部111は、ステップS441〜S447を、サンプリングキュー116に格納されている全てのリクエストを処理するまで繰り返す(ステップS449)。   The sampling unit 111 repeats steps S441 to S447 until all requests stored in the sampling queue 116 are processed (step S449).

なお、本発明の第四の実施の形態におけるサービス提供装置100のレスポンス処理、及び、サブプロセス監視処理の動作は、本発明の第一の実施の形態(図4、図5)と同様となる。   Note that the response processing and sub-process monitoring processing operations of the service providing apparatus 100 in the fourth embodiment of the present invention are the same as those in the first embodiment (FIGS. 4 and 5) of the present invention. .

以上により、本発明の第四の実施の形態の動作が完了する。   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 sampling unit 111 holds the request including the tenant ID of the monitoring candidate in the sampling queue 116 and transmits the request to the sub-process 151 when the request stored in the sampling queue 116 can be monitored. Because. As a result, even when a request from another tenant is received while a tenant is being monitored in the sub-process 151, it is possible to start monitoring other tenants after waiting for the monitoring of the tenant being monitored to end. Can be monitored efficiently.

(第五の実施の形態)
次に、本発明の第五の実施の形態について図面を参照して詳細に説明する。
(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 sub-processes 151 operate on the processing unit 112 and each of the plurality of tenants is monitored by each sub-process 151. The form is different.

次に、本発明の第五の実施形態の構成について説明する。本発明の第五の実施の形態において、第一の実施の形態と同様の構成要素については、第一の実施の形態(図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 processing unit 112 executes processing of a plurality of subprocesses 151. In the fifth embodiment of the present invention, the service providing apparatus 100 includes a plurality of sub-process monitoring units 113. Each of the plurality of sub-process monitoring units 113 acquires the memory usage of each of the plurality of sub-processes 151.

サンプリング部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 subprocesses 151, the sampling unit 111 transmits the request to the subprocess 151 that satisfies the monitorable condition. If the monitorable condition is not satisfied, the request is transmitted to the main process 152.

サブプロセス監視部113は、各サブプロセス151のメモリ使用量を取得し、メモリ監視ログ131に記録する。   The sub-process monitoring unit 113 acquires the memory usage of each sub-process 151 and records it in the memory monitoring log 131.

図22は、本発明の第五の実施の形態における監視対象情報134の例を示す図である。監視対象情報134は、サブプロセス151を識別するサブプロセスID毎に、そのサブプロセス151で処理中の(そのサブプロセス151に関連づけられた)監視対象のテナントIDを含む。   FIG. 22 is a diagram showing an example of the monitoring target information 134 in the fifth embodiment of the present invention. The monitoring target information 134 includes, for each sub-process ID that identifies the sub-process 151, a monitoring-target tenant ID being processed by the sub-process 151 (associated with the sub-process 151).

次に、本発明の第五の実施の形態におけるサービス提供装置100の動作について説明する。   Next, the operation of the service providing apparatus 100 according to the fifth embodiment of the present invention will be described.

はじめに、本発明の第五の実施の形態におけるサービス提供装置100のリクエスト処理について説明する。図20は、本発明の第五の実施の形態におけるサービス提供装置100のリクエスト処理の動作を示すフローチャートである。   First, request processing of the service providing apparatus 100 according to the fifth embodiment of the present invention will be described. FIG. 20 is a flowchart showing the request processing operation of the service providing apparatus 100 according to the fifth embodiment of the present invention.

サンプリング部111は、利用者端末200からリクエストを受信する(ステップS501)。   The sampling unit 111 receives a request from the user terminal 200 (step S501).

サンプリング部111は、リクエストのテナントIDが監視候補かどうかを判定する(ステップS502)。   The sampling unit 111 determines whether the tenant ID of the request is a monitoring candidate (step S502).

ステップ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 sampling unit 111 determines whether the request can be monitored in any of the plurality of subprocesses 151 ( Step S503).

ここで、サンプリング部111は、複数のサブプロセス151のいずれかにおいて、上述の監視可能条件を満たす場合、そのリクエストは、そのサブプロセス151で監視可能と判定する。なお、サンプリング部111は、監視可能条件の判定において、処理中のリクエストが無いサブプロセス151があっても、リクエストのテナントIDと同一のテナントIDのリクエストを処理しているサブプロセス151がある場合は、そのサブプロセス151を監視可能なサブプロセス151と判定する。   Here, the sampling unit 111 determines that the request can be monitored by the sub-process 151 when any of the plurality of sub-processes 151 satisfies the above-described monitoring condition. In the determination of the monitorable condition, the sampling unit 111 has a sub-process 151 that is processing a request with the same tenant ID as the tenant ID of the request even if there is a sub-process 151 that has no request being processed. Determines that the sub-process 151 is a sub-process 151 that can be monitored.

ステップ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 monitoring target information 134, the sampling unit 111 sets the tenant ID of the request for the subprocess ID (associates the tenant ID with the subprocess ID) (step S504).

そして、サンプリング部111は、リクエストのテナントIDを監視可能と判定されたサブプロセス151を監視するサブプロセス監視部113に通知し(ステップS505)、リクエストを監視可能と判定されたサブプロセス151に送信する(ステップS506)。   Then, the sampling unit 111 notifies the subprocess monitoring unit 113 that monitors the subprocess 151 determined to be able to monitor the tenant ID of the request (step S505), and transmits the request to the subprocess 151 that is determined to be monitorable. (Step S506).

一方、ステップ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 subprocesses 151. In the case (step S503 / No), the sampling unit 111 transmits a request to the main process 152 (step S507).

次に、本発明の第五の実施の形態におけるサービス提供装置100のレスポンス処理について説明する。図21は、本発明の第五の実施の形態におけるサービス提供装置100のレスポンス処理の動作を示すフローチャートである。   Next, response processing of the service providing apparatus 100 according to the fifth embodiment of the present invention will be described. FIG. 21 is a flowchart showing the response processing operation of the service providing apparatus 100 according to the fifth embodiment of the present invention.

サンプリング部111は、サブプロセス151、又は、メインプロセス152からリクエストに対するレスポンスを受信する(ステップS521)。   The sampling unit 111 receives a response to the request from the sub-process 151 or the main process 152 (step S521).

レスポンスをサブプロセス151から受信した場合(ステップS522/Yes)、サンプリング部111は、そのサブプロセス151に送信した全てのリクエストに対してレスポンスを受信したかどうかを判定する(ステップS523)。   When a response is received from the sub-process 151 (step S522 / Yes), the sampling unit 111 determines whether a response has been received for all requests transmitted to the sub-process 151 (step S523).

ステップ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 sampling unit 111 reads the subprocess 151 from the monitoring target information 134 of the monitoring target storage unit 124. The tenant ID for is deleted (step S524).

サンプリング部111は、レスポンスをリクエストの送信元の利用者端末200に送信する(ステップS525)。   The sampling unit 111 transmits a response to the user terminal 200 that is the transmission source of the request (step S525).

また、ステップ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 sampling unit 111 also transmits a response to the user terminal 200 that is the transmission source of the request (step S525).

次に、本発明の第五の実施の形態におけるサービス提供装置100のサブプロセス監視処理について説明する。本発明の第五の実施の形態におけるサブプロセス監視処理は、本発明の第一の実施の形態におけるサブプロセス監視処理(図5)と同様の処理を、それぞれのサブプロセス監視部113が行う。   Next, sub-process monitoring processing of the service providing apparatus 100 according to the fifth embodiment of the present invention will be described. In the sub-process monitoring process in the fifth embodiment of the present invention, each sub-process monitoring unit 113 performs the same process as the sub-process monitoring process (FIG. 5) in the first embodiment of the present invention.

以上により、本発明の第五の実施の形態の動作が完了する。   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 sub-processes 151 operate on the processing unit 112, the sampling unit 111 transfers a request including the tenant ID of the monitoring candidate to one of the plurality of sub-processes 151, and the sub-process monitoring unit 113 This is because the memory usage of each sub-process 151 is acquired. Thereby, a plurality of tenants can be monitored simultaneously and efficiently.

以上、実施の形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。   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 sub-process monitoring unit 113 may periodically monitor the memory usage of the sub-process 151 and set the maximum value as the memory usage in each record 141 of the memory monitoring log 131.

100 サービス提供装置
111 サンプリング部
112 処理部
113 サブプロセス監視部
114 プロセス固有情報媒介部
115 メインプロセス監視部
116 サンプリングキュー
121 メモリ監視ログ記憶部
122 メモリ監視結果記憶部
123 監視回数記憶部
124 監視対象記憶部
125 概算メモリ監視結果記憶部
131 メモリ監視ログ
132 メモリ監視結果情報
133 監視回数情報
134 監視対象情報
135 概算メモリ監視結果情報
141 レコード
151 サブプロセス
152 メインプロセス
200 利用者端末
DESCRIPTION OF SYMBOLS 100 Service provision apparatus 111 Sampling part 112 Processing part 113 Sub process monitoring part 114 Process specific information mediation part 115 Main process monitoring part 116 Sampling queue 121 Memory monitoring log memory | storage part 122 Memory monitoring result memory | storage part 123 Monitoring frequency memory part 124 Monitoring object memory | storage Unit 125 Estimated memory monitoring result storage unit 131 Memory monitoring log 132 Memory monitoring result information 133 Monitoring frequency information 134 Monitoring target information 135 Approximate memory monitoring result information 141 Record 151 Subprocess 152 Main process 200 User terminal

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.
JP2010259686A 2010-11-22 2010-11-22 Service provision device, service provision method, and program Withdrawn JP2012113380A (en)

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)

* Cited by examiner, † Cited by third party
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

Cited By (4)

* Cited by examiner, † Cited by third party
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