JP2018136681A - Performance management program, performance management method, and management device - Google Patents
Performance management program, performance management method, and management device Download PDFInfo
- Publication number
- JP2018136681A JP2018136681A JP2017030013A JP2017030013A JP2018136681A JP 2018136681 A JP2018136681 A JP 2018136681A JP 2017030013 A JP2017030013 A JP 2017030013A JP 2017030013 A JP2017030013 A JP 2017030013A JP 2018136681 A JP2018136681 A JP 2018136681A
- Authority
- JP
- Japan
- Prior art keywords
- performance
- factor
- service
- server
- container
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
【課題】性能悪化要因の処理を特定できるようにする。
【解決手段】管理装置10は、複数の処理を連携させることで提供されるサービス1の性能を示す性能情報が、サービス1に求められる性能を示す性能要件を満たしているか否かを判断する。性能情報が性能要件を満たしていない場合、管理装置10は、直近の所定期間における複数の処理それぞれの動作状態を示す第1状態情報を取得する。さらに管理装置10は、サービス1の性能が性能要件を満たしているときの複数の処理それぞれの動作状態を示す第2状態情報11aと、第1状態情報とに基づいて、性能要件が満たされているときと満たされてないときとの動作状態の差を、複数の処理それぞれについて計算する。そして管理装置10は、複数の処理それぞれの動作状態の差に基づいて、サービス1の性能悪化要因となっている処理を判定する。
【選択図】図1The present invention makes it possible to specify the processing of a performance deterioration factor.
A management apparatus determines whether performance information indicating performance of a service provided by linking a plurality of processes satisfies a performance requirement indicating performance required for the service. When the performance information does not satisfy the performance requirement, the management apparatus 10 acquires first state information indicating the operation state of each of the plurality of processes in the latest predetermined period. Further, the management device 10 satisfies the performance requirement based on the second state information 11a indicating the operation state of each of the plurality of processes when the performance of the service 1 satisfies the performance requirement, and the first state information. The difference in operation state between when the condition is satisfied and when the condition is not satisfied is calculated for each of the plurality of processes. And the management apparatus 10 determines the process which is the performance deterioration factor of the service 1 based on the difference of the operation state of each of the plurality of processes.
[Selection] Figure 1
Description
本発明は、性能管理プログラム、性能管理方法、および管理装置に関する。 The present invention relates to a performance management program, a performance management method, and a management apparatus.
クラウドコンピューティング技術により、ユーザが望む量のコンピュータリソースをネットワーク経由でユーザに提供することが容易となっている。クラウドコンピューティングのなかには、例えばアプリケーションソフトウェア(以下、アプリケーションと呼ぶ)を稼働させるためのプラットフォームの利用環境を、ネットワークを介してユーザに提供するPaaS(Platform as a Service)がある。 Cloud computing technology makes it easy to provide users with the amount of computer resources they want through the network. Among cloud computing, for example, there is PaaS (Platform as a Service) that provides a user with a platform usage environment for operating application software (hereinafter referred to as an application) via a network.
PaaSを利用したサービスは、例えばマイクロサービスアーキテクチャと呼ばれる技術思想に基づいて構築することができる。マイクロサービスアーキテクチャでは、1つのサービスを提供するソフトウェアが、コンポーネントと呼ばれる複数の小さなアプリケーションに分割して作成される。複数のコンポーネントを組み合わせて1つのサービスを提供することによって、処理能力の増強を、コンポーネント単位で実施することができる。これにより、あるコンポーネントの処理負荷が過大となった場合、そのコンポーネントについて処理能力の増強を行えばよく、他のコンポーネントは変更せずにすむ。 A service using PaaS can be constructed based on a technical idea called a micro service architecture, for example. In the micro service architecture, software providing one service is created by dividing it into a plurality of small applications called components. By combining a plurality of components to provide one service, the processing capacity can be increased on a component basis. As a result, when the processing load of a certain component becomes excessive, the processing capacity of the component may be increased, and other components need not be changed.
コンポーネントの実行単位はコンテナと呼ばれる。コンポーネントの処理能力を増強する場合、管理者は、例えば増強対象のコンポーネント用のコンテナ数を増加(スケールアウト)させる。コンテナ数の増減でサービスの性能調整ができることにより、システムのリソースを効率的に利用することができる。このようなコンテナを利用したPaaSシステムは、Container-based PaaS Platformと呼ばれる。 The execution unit of a component is called a container. When increasing the processing capacity of a component, the manager increases (scales out) the number of containers for the component to be increased, for example. By adjusting the service performance by increasing or decreasing the number of containers, system resources can be used efficiently. A PaaS system using such a container is called a Container-based PaaS Platform.
リソース利用の効率化に関する技術としては、例えば状況変化に対応して、リソースの利用効率を高めることができるリソース管理システムがある。またコンポーネントの管理に関する技術としては、例えばアプリケーションプログラムのコンポーネントの生産性を損なうことなく当該コンポーネントの監視および監視結果にもとづいた処理を行なう技術がある。 As a technology related to efficient use of resources, for example, there is a resource management system that can improve the use efficiency of resources in response to a change in situation. In addition, as a technology related to component management, for example, there is a technology that performs monitoring based on the monitoring of the component and processing based on the monitoring result without impairing the productivity of the component of the application program.
クラウドコンピューティングシステムの管理者は、サービスの品質が保てるように、サービスを実現するコンポーネントの性能を適宜調整する。例えば管理者は、性能要件として、サービスを提供する際のレイテンシの最大値を定め、サービスのレイテンシが最大値を超えた場合、そのサービスの提供に利用しているコンポーネントを実行する処理能力を増強することとなる。 The administrator of the cloud computing system appropriately adjusts the performance of the component that implements the service so that the quality of the service can be maintained. For example, the administrator determines the maximum value of the latency when providing a service as a performance requirement, and if the latency of the service exceeds the maximum value, the administrator increases the processing capacity to execute the component used to provide the service Will be.
しかし、サービスのレイテンシが最大値を超えたというだけでは、性能要件を満たさなくなったサービスで利用している複数のコンポーネントのうち、どのコンポーネントに性能悪化の要因あるのかが分からない。特にPaaSでは、PaaSの利用者がコンポーネントを作成しており、システムの管理者は、コンポーネントの具体的な処理内容を知ることができない。そのためシステムの管理者が、性能悪化の要因となっているコンポーネントを適確に特定するのは困難である。 However, just because the service latency exceeds the maximum value, it is not known which component causes the performance deterioration among a plurality of components used in the service that does not satisfy the performance requirement. In particular, in PaaS, a PaaS user creates a component, and the system administrator cannot know the specific processing contents of the component. Therefore, it is difficult for the system administrator to accurately identify the component that causes the performance deterioration.
なお、性能悪化の要因となっている処理の特定が難しいという問題は、マイクロサービスアーキテクチャに準じて作成されたサービスに限らず、複数の処理を連携させることで提供されるサービスの性能を調整する場合に同様に生じる問題である。 In addition, the problem that it is difficult to identify the process causing performance degradation is not limited to services created according to the micro service architecture, but the performance of services provided by coordinating multiple processes is adjusted. This is a problem that occurs in the same way.
1つの側面では、本件は、性能悪化要因の処理を特定できるようにすることを目的とする。 In one aspect, the purpose of this case is to make it possible to specify the processing of the performance deterioration factor.
1つの案では、コンピュータに以下の処理を実行させる性能管理プログラムが提供される。
性能管理プログラムに基づいて、コンピュータは、複数の処理を連携させることで提供されるサービスの性能を示す性能情報を取得する。次にコンピュータは、性能情報が、サービスに求められる性能を示す性能要件を満たしているか否かを判断する。次にコンピュータは、性能情報が性能要件を満たしていない場合、直近の所定期間における複数の処理それぞれの動作状態を示す第1状態情報を取得する。次にコンピュータは、サービスの性能が性能要件を満たしているときの複数の処理それぞれの動作状態を示す第2状態情報と、第1状態情報とに基づいて、性能要件が満たされているときと満たされてないときとの動作状態の差を、複数の処理それぞれについて計算する。そしてコンピュータは、複数の処理それぞれの動作状態の差に基づいて、サービスの性能悪化要因となっている処理を判定する。
In one proposal, a performance management program that causes a computer to execute the following processing is provided.
Based on the performance management program, the computer acquires performance information indicating the performance of a service provided by linking a plurality of processes. Next, the computer determines whether or not the performance information satisfies a performance requirement indicating the performance required for the service. Next, when the performance information does not satisfy the performance requirements, the computer acquires first state information indicating the operation states of the plurality of processes in the most recent predetermined period. Next, the computer, when the performance requirement is satisfied, based on the second state information indicating the operation state of each of the plurality of processes when the performance of the service satisfies the performance requirement, and the first state information, The difference in operating state from when it is not satisfied is calculated for each of a plurality of processes. Then, the computer determines the process that causes the performance deterioration of the service based on the difference between the operation states of the plurality of processes.
1態様によれば、性能悪化要因の処理を特定できる。 According to one aspect, it is possible to specify the processing of the performance deterioration factor.
以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第1の実施の形態〕
まず、第1の実施の形態について説明する。
Hereinafter, the present embodiment will be described with reference to the drawings. Each embodiment can be implemented by combining a plurality of embodiments within a consistent range.
[First Embodiment]
First, the first embodiment will be described.
図1は、第1の実施の形態に係るシステムの構成例を示す図である。複数の処理(「処理a」、「処理b」、「処理c」)を連携して動作させることで提供されるサービス1が、複数のサーバ2〜4に実装されている。例えばサーバ2では「処理a」が実行され、サーバ3では「処理c」が実行され、サーバ4では「処理b」が実行されている。
FIG. 1 is a diagram illustrating a configuration example of a system according to the first embodiment. A
例えば端末装置5からのサービス1のリクエストがサーバ2に入力される。するとサーバ2が「処理a」を実行する。サーバ2は、「処理a」の実行過程で、サーバ4に対して「処理b」の処理要求を送信する。するとサーバ4が「処理b」を実行する。サーバ4は、「処理b」の実行過程で、サーバ3に対して「処理c」の処理要求を送信する。するとサーバ3が「処理c」を実行する。サーバ3は、「処理c」の処理結果をサーバ4に送信する。サーバ4は、「処理c」の処理結果を用いて「処理b」の処理を実行し、「処理b」の処理結果をサーバ2に送信する。サーバ2は、「処理b」の処理結果を用いて「処理a」の処理を実行し、「処理a」の処理結果を、端末装置5からのリクエストに対するレスポンスとして端末装置5に送信する。
For example, a
管理装置10は、サーバ2〜4で提供されているサービス1を管理する。例えば管理装置10は、サービス1の性能調整を行う。具体的には、管理装置10は、サービス1の性能が悪化した場合、サービス1の性能悪化要因となる処理を特定する。そして管理装置10は、性能悪化が解消するように、サーバ2〜4に実行させる処理を制御する。
The
ここで、サービス1の性能悪化要因となる処理を特定することの困難性について説明する。図1に示すように、複数の処理を連携させることで提供されるサービス1の場合、サービス1の性能が悪化したというだけでは、どのコンポーネントに性能悪化の要因があるのかが分からない。
Here, the difficulty of specifying the process that causes the performance deterioration of the
そこでコンポーネントごとに性能要件を定めることが考えられる。しかしながら、各コンポーネントにどのような性能要件を定めれば、サービスの性能要件を満たすことが可能なのかを、的確に判断するのは困難である。例えばサービスのレイテンシを100ミリ秒以内にするために,コンポーネントごとのCPU(Central Processing Unit)使用率、メモリ使用率、ディスクI/Oレートなどの値がいくつであれば適当なのかを、正確に決定することは困難である。しかも、サービスの利用者が作成したコンポーネントの場合、管理者は、コンポーネントの具体的な処理内容を知ることができない。コンポーネントの処理内容を知らずに、そのコンポーネントの性能要件を定めるのは困難である。 Therefore, it is conceivable to define performance requirements for each component. However, it is difficult to accurately determine what kind of performance requirement is defined for each component and whether the performance requirement of the service can be satisfied. For example, in order to keep the service latency within 100 milliseconds, it is necessary to accurately determine the appropriate value of CPU (Central Processing Unit) usage rate, memory usage rate, disk I / O rate, etc. for each component. It is difficult to decide. In addition, in the case of a component created by a service user, the administrator cannot know the specific processing contents of the component. It is difficult to determine the performance requirements of a component without knowing the processing content of the component.
そこで管理装置10により、各サーバ2〜4での処理の動作状態に基づいて、性能悪化要因となる処理を適確に特定する性能管理方法を実現する。そのために、管理装置10は、以下のような記憶部11と処理部12とを有する。記憶部11は、例えば管理装置10が有するメモリまたはストレージ装置である。処理部12は、例えば管理装置10が有する1または複数のプロセッサである。処理部12が実行する処理は、例えばその処理の手順が記述された性能管理プログラムをプロセッサに実行させることで実現できる。
Therefore, the
記憶部11は、複数の処理を連携させることで提供されるサービス1の性能が、サービス1に求められる性能を示す性能要件を満たしているときの、複数の処理それぞれの動作状態を示す第2状態情報11aを記憶する。第2状態情報11aは、例えば、各処理のCPU使用率、各処理実行時のメモリI/Oレートなどの複数種の情報である。このような動作状態を示す情報は、メトリックと呼ばれる。なお、記憶部11は、各種メトリックの統計処理を施した結果の値を、第2状態情報11aとして記憶していてもよい。例えば処理ごとのCPU使用率のパーセンタイル値を、第2状態情報11aとすることもできる。
The storage unit 11 indicates the operation state of each of the plurality of processes when the performance of the
処理部12は、サービス1の性能を示す性能情報を取得する。例えば処理部12は、端末装置5とサーバ2との間の通信を監視し、リクエストからレスポンスまでの時間(レイテンシ)を取得する。処理部12は、例えば複数のリクエストに対するレイテンシに基づいて、Apdexなどの性能の指標値を算出する。Apdexについて後述する。
The
処理部12は、取得した性能情報が、性能要件を満たしているか否かを判断する。例えば性能要件として、Apdexが0.8以上であることが指定されているものとする。この場合、処理部12は、取得した性能情報に基づいて算出したApdex値が、0.8以上か否かを判断する。
The
処理部12は、性能情報が性能要件を満たしていない場合、サーバ2〜4から、直近の所定期間における複数の処理それぞれの動作状態を示す第1状態情報を取得する。例えば処理部12は、各処理のCPU使用率、各処理実行時のメモリI/Oレートなどのメトリックの値を取得する。
When the performance information does not satisfy the performance requirement, the
処理部12は、取得した第1状態情報と第2状態情報11aとに基づいて、性能要件が満たされているときと満たされてないときとの動作状態の差を、複数の処理それぞれについて計算する。例えば処理部12は、取得した第1状態情報に基づいて、直近の所定期間のメトリックの値の代表値(例えばパーセンタイル値)を計算する。そして処理部12は、第1状態情報から算出した代表値を第2状態情報11aから算出した代表値との差を計算する。
Based on the acquired first state information and
そして処理部12は、複数の処理それぞれの動作状態の差に基づいて、サービス1の性能悪化要因となっている処理を判定する。例えば、処理部12は、動作状態の差が最も大きな処理を、性能悪化要因の処理と判定する。
And the
処理部12は、さらに性能悪化要因と判定された要因処理の動作状態の差に基づいて、性能悪化に対する対処方法を決定し、決定した対処方法による対処を実施する。例えば処理部12は、要因処理のスケールアウトを行う。
The
このようにして、サービス1の提供に使用する処理のうち、その処理が性能悪化要因となっているのかを、判定することができる。その結果、サービス1の性能悪化に対して、迅速に対処することができる。また、各処理について、メトリックごとの性能要件を設定するといった手間が不要となり、システムの管理負担が軽減される。
In this way, it is possible to determine whether the process used to provide the
なお、処理部12は、第2状態情報11aを、適宜更新することで、第2状態情報11aの精度を向上させることもできる。例えば処理部12は、サービス1の性能情報が性能要件を満たしている場合、直近の所定期間における複数の処理それぞれの動作状態を示す第3状態情報を取得する。そして処理部12は、取得した第3状態情報に基づいて、第2状態情報11aを更新する。例えば処理部12は、複数の期間の第3状態情報に基づき、現在に近い期間の第3状態情報に示される動作状態ほど、更新後の第2状態情報11aに強く反映させる。このように、最新の性能情報によって第2状態情報11aを更新すると共に、新しい更新情報の重みを重くして第2状態情報11aを更新することで、システムの最近の運用状況を反映させた精度の高い第2状態情報11aを生成することができる。
In addition, the
記憶部11は、第2状態情報11aとして、例えばサービス1の性能が性能要件を満たしているときに複数の処理それぞれが使用しているリソースの稼働状況の時系列変化を示す第2リソース情報の所定の代表値である第2代表値を記憶してもよい。この場合、処理部12は、第1状態情報として、直近の所定期間に複数の処理それぞれが使用しているリソースの稼働状況の時系列変化を示す第1リソース情報を取得し、第1リソース情報の所定の代表値を、第1代表値として算出する。そして処理部12は、複数の処理それぞれについて、第1代表値と第2代表値との差を計算し、差が最も大きい処理を、性能悪化の要因である要因処理であると判定する。このようにリソースの稼働状況を代表値で表すことで、動作状態の差を容易に数値化することができる。その結果、リソース1の性能悪化の前後で動作状態が大きく変化した処理を、容易に特定することができる。
For example, when the performance of the
なお、第1状態情報および第2状態情報11aとして、複数種メトリック(CPU使用率、メモリI/Oレートなど)の値を取得している場合、処理部12は、メトリック種別ごとに代表値の差を計算する。また処理部12は、1種のメトリックについて複数種の代表値(例えば50パーセンタイル、90パーセンタイル、99パーセンタイルなど)を算出することもできる。この場合、処理部12は、各処理について、第1状態情報と第2状態情報11aとの同種のメトリックの同種の代表値間の差を計算する。そして処理部12は、各処理のメトリック種別(例えばCPU使用率)ごとに、代表値間の差(例えば絶対値)を合計し、対応する処理の該当メトリック種別に関する動作状態の差とする。また処理部12は、性能悪化時に値が増加した代表値の差(第2の実施の形態では「正の要因度」と呼ぶ)と、性能悪化時に値が減少した代表値の差(第2の実施の形態では「負の要因度」と呼ぶ)とを個別に算出してもよい。
Note that when the values of multiple types of metrics (CPU usage rate, memory I / O rate, etc.) are acquired as the first status information and the
処理部12は、サービス1の性能悪化に対する対処方法としては、例えば要因処理のスケールアウトを行うことができる。また処理部12は、要因処理を現在実行しているサーバにおける、要因処理以外の処理の影響でサービス1の性能が悪化している場合、要因処理を実行するサーバを変更することもできる。例えば処理部12は、要因処理の第2状態情報11a(性能悪化時の状態情報)の方が、要因処理の第1状態情報(正常時の状態情報)よりも負荷が大きい動作状態を表している場合、要因処理のスケールアウトを行う。また処理部12は、要因処理の第1状態情報の方が、要因処理の第2状態情報11aよりも負荷が大きい動作状態を表している場合、要因処理を実行するサーバを変更する。これにより、無駄なスケールアウトの実行を抑止することができる。
For example, the
さらに処理部12は、要因処理の変更とスケールアウトとを同時の行った後、スケールアウトが余分であることを確認できたとき、スケールインを実施してもよい。例えば処理部12は、まず、要因処理を現在実行している第1サーバでの要因処理の実行を停止し、第1サーバとは異なる複数の第2サーバそれぞれで要因処理を実行させる。そして処理部12は、対処実施後の複数の第2サーバが要因処理を実行するための処理負荷が、所定値以下の場合、複数の第2サーバの一部における要因処理の実行を停止させる。これにより、サービス1の性能悪化状態を迅速に解消し、かつ無駄なリソースの消費を抑制することができる。
Further, the
〔第2の実施の形態〕
次に第2の実施の形態について説明する。第2の実施の形態は、マイクロサービスアーキテクチャに基づいて構築されたPaaSの運用管理を行う際に、サービスのレイテンシが最大値を超えたとき、負荷が過大となったコンポーネントを的確に判断できるコンピュータシステムである。
[Second Embodiment]
Next, a second embodiment will be described. The second embodiment is a computer that can accurately determine a component having an excessive load when the service latency exceeds the maximum value when performing operation management of PaaS constructed based on the micro service architecture. System.
図2は、第2の実施の形態のシステム構成例を示す図である。クラウドコンピューティングシステム40には、ネットワーク20を介して複数の端末装置31,32,・・・が接続されている。クラウドコンピューティングシステム40は、複数の端末装置31,32,・・・に対して、PaaSによるサービスを提供する。
FIG. 2 is a diagram illustrating a system configuration example according to the second embodiment. A plurality of
クラウドコンピューティングシステム40には、ゲートウェイ41、管理サーバ100、および複数のサーバ42〜44が含まれる。ゲートウェイ41は、ネットワーク20に接続されており、複数の端末装置31,32,・・・からの要求を受け付ける。管理サーバ100は、ゲートウェイ41と複数のサーバ42〜44とに接続されており、複数のサーバ42〜44を管理する。複数のサーバ42〜44は、複数の端末装置31,32,・・・からの要求に応じて、情報処理のサービスを提供する。
The
図3は、本実施の形態に用いる管理サーバのハードウェアの一構成例を示す図である。管理サーバ100は、プロセッサ101によって装置全体が制御されている。プロセッサ101には、バス109を介してメモリ102と複数の周辺機器が接続されている。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、例えばCPU、MPU(Micro Processing Unit)、またはDSP(Digital Signal Processor)である。プロセッサ101がプログラムを実行することで実現する機能の少なくとも一部を、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)などの電子回路で実現してもよい。
FIG. 3 is a diagram illustrating a configuration example of hardware of the management server used in the present embodiment. The
メモリ102は、管理サーバ100の主記憶装置として使用される。メモリ102には、プロセッサ101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ102には、プロセッサ101による処理に必要な各種データが格納される。メモリ102としては、例えばRAM(Random Access Memory)などの揮発性の半導体記憶装置が使用される。
The
バス109に接続されている周辺機器としては、ストレージ装置103、グラフィック処理装置104、入力インタフェース105、光学ドライブ装置106、機器接続インタフェース107およびネットワークインタフェース108がある。
Peripheral devices connected to the bus 109 include a
ストレージ装置103は、内蔵した記録媒体に対して、電気的または磁気的にデータの書き込みおよび読み出しを行う。ストレージ装置103は、コンピュータの補助記憶装置として使用される。ストレージ装置103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、ストレージ装置103としては、例えばHDD(Hard Disk Drive)やSSD(Solid State Drive)を使用することができる。
The
グラフィック処理装置104には、モニタ21が接続されている。グラフィック処理装置104は、プロセッサ101からの命令に従って、画像をモニタ21の画面に表示させる。モニタ21としては、CRT(Cathode Ray Tube)を用いた表示装置や液晶表示装置などがある。
A monitor 21 is connected to the
入力インタフェース105には、キーボード22とマウス23とが接続されている。入力インタフェース105は、キーボード22やマウス23から送られてくる信号をプロセッサ101に送信する。なお、マウス23は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
A keyboard 22 and a mouse 23 are connected to the
光学ドライブ装置106は、レーザ光などを利用して、光ディスク24に記録されたデータの読み取りを行う。光ディスク24は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク24には、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。
The
機器接続インタフェース107は、管理サーバ100に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース107には、メモリ装置25やメモリリーダライタ26を接続することができる。メモリ装置25は、機器接続インタフェース107との通信機能を搭載した記録媒体である。メモリリーダライタ26は、メモリカード27へのデータの書き込み、またはメモリカード27からのデータの読み出しを行う装置である。メモリカード27は、カード型の記録媒体である。
The
ネットワークインタフェース108は、ネットワーク20に接続されている。ネットワークインタフェース108は、ネットワーク20を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
The
以上のようなハードウェア構成によって、第2の実施の形態における管理サーバ100の処理機能を実現することができる。なお、端末装置31,32,・・・、ゲートウェイ41、およびサーバ42〜44も、管理サーバ100と同様のハードウェアによって実現できる。また、第1の実施の形態に示した管理装置10も、図3に示した管理サーバ100と同様のハードウェアにより実現することができる。
With the hardware configuration as described above, the processing function of the
管理サーバ100は、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第2の実施の形態の処理機能を実現する。管理サーバ100に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、管理サーバ100に実行させるプログラムをストレージ装置103に格納しておくことができる。プロセッサ101は、ストレージ装置103内のプログラムの少なくとも一部をメモリ102にロードし、プログラムを実行する。また管理サーバ100に実行させるプログラムを、光ディスク24、メモリ装置25、メモリカード27などの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ101からの制御により、ストレージ装置103にインストールされた後、実行可能となる。またプロセッサ101が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
The
なお、第2の実施の形態では、マイクロサービスアーキテクチャに基づいて、サービスを提供するソフトウェアがサーバ42〜44に実装される。
図4は、マイクロサービスアーキテクチャの概念を示す図である。ユーザに提供するサービス50は、複数のコンポーネント51〜53を用いて実現される。例えばコンポーネント51はプレゼンテーション層の処理を実行するソフトウェアであり、コンポーネント52はロジック層の処理を実行するソフトウェアであり、コンポーネント53はデータ層の処理を実行するソフトウェアである。
In the second embodiment, software providing a service is installed in the
FIG. 4 is a diagram illustrating the concept of the micro service architecture. The
コンポーネント51〜53は、複数のサーバ42〜44のいずれか1以上で実行される。コンポーネント51〜53を実行することでサーバ42〜44上に構築される処理機能がコンテナである。第2の実施の形態では、コンテナを「Cxy」と表している。添字の「x」は、そのコンテナを含むコンポーネントの識別番号(コンポーネント番号)である。添字の「y」は、そのコンテナを含むコンポーネント内でのコンテナの識別番号(コンテナ番号)である。
The
このように、マイクロサービスアーキテクチャでは、一つのサービス50を提供するためのソフトウェアが、複数の小さなコンポーネント51〜53に分割して作成される。各コンポーネント51〜53は疎に結合している。結合が疎であるとは、コンポーネント51〜53同士の結びつきが比較的緩やかであり、独立性が強い状態にあることである。コンポーネント51〜53の結合が疎であることにより、新たなコンポーネントの追加や一部のコンポーネントの拡張による他のコンポーネントの変更が少なくてすむという利点がある。
As described above, in the micro service architecture, software for providing one
マイクロサービスアーキテクチャに準じて作成されたサービスのコンポーネント51〜53は、コンテナによって実行される。コンポーネント51〜53とコンテナは1対多の関係にある。
The
ユーザに提供するサービス50に求められる性能要件は、例えばレイテンシを用いて表すことができる。従って、システムの管理者は、サービス50に求められるレイテンシが得られるような処理能力のコンポーネント51〜53を用意することになる。コンポーネント51〜53の処理能力は、コンポーネント51〜53を実行するコンテナを増やしたり、減らしたりすることで調整することができる。
The performance requirement required for the
ここで、サービス50に求められる性能要件を管理者が規定することは容易である。それに対して、サービス50に求められるレイテンシを満たすように、各コンポーネントにどの程度のリソースを割り当てればよいのかを、管理者が判断するのは困難である。そこで第2の実施の形態では、管理サーバ100が、性能が不足しているコンポーネントを検出し、そのコンポーネントを実行するコンテナを追加することで、サービス50に対する性能要件を満たすようなコンポーネントへのリソースの割り当てを実現する。
Here, it is easy for the administrator to specify performance requirements required for the
図5は、性能調整のためにゲートウェイと管理サーバが有する機能を示すブロック図である。ゲートウェイ41は、レイテンシ計測部41aとレイテンシ記憶部41bとを有する。レイテンシ計測部41aは、端末装置31,32,・・・から要求を受信してから、その要求に対応する応答を端末装置31,32,・・・に送信するまでの時間を計測する。レイテンシ計測部41aは、計測した時間を、その要求に応じたサービスについてのレイテンシとして、レイテンシ記憶部41bに格納する。レイテンシ記憶部41bは、レイテンシ計測部41aが計測したレイテンシを記憶する。
FIG. 5 is a block diagram illustrating functions of the gateway and the management server for performance adjustment. The
管理サーバ100は、サービス情報記憶部110、メトリック情報記憶部120、正常時振る舞い記憶部130、リソース情報記憶部140、および性能調整エンジン150を有する。サービス情報記憶部110は、提供するサービスに関する情報を記憶する。メトリック情報記憶部120は、サーバ42〜44やコンテナによるリソースの稼働状況に関する情報(メトリック)を記憶する。正常時振る舞い記憶部130は、複数のコンテナそれぞれと複数のサーバそれぞれとの正常動作時の振る舞いを示す情報を記憶する。リソース情報記憶部140は、サーバ42〜44の使用リソースに関する情報を記憶する。性能調整エンジン150は、サービス情報記憶部110、メトリック情報記憶部120、正常時振る舞い記憶部130、およびリソース情報記憶部140に記憶された情報を用いて、コンポーネント単位での性能調整を行う。
The
なお、以下の説明において、コンポーネントの処理を実行するコンテナをサーバに実装することを、コンテナの配置と呼ぶ。コンテナの配置は、具体的には、コンポーネントを実行するためのプログラムをサーバにインストールし、そのプログラムに基づいてコンポーネントの処理を実行するプロセスを起動する処理である。また、コンテナがサーバに実装されているとき、そのコンテナがそのサーバに配置されていると呼ぶ。 In the following description, mounting a container that executes component processing on a server is referred to as container arrangement. Specifically, the container arrangement is a process of installing a program for executing a component in a server and starting a process for executing the component process based on the program. Also, when a container is mounted on a server, it is said that the container is placed on that server.
図5の例では、各サーバ42〜44には、異なるコンポーネントの複数のコンテナが配置されている。例えばサーバ42には、コンテナC11,C22,C31が配置されている。
以下、図6〜図10を参照して、サービス情報記憶部110、メトリック情報記憶部120、正常時振る舞い記憶部130、およびリソース情報記憶部140が記憶する情報について、詳細に説明する。
In the example of FIG. 5, each of the
Hereinafter, the information stored in the service
図6は、レイテンシ記憶部が記憶する情報の一例を示す図である。レイテンシ記憶部41bは、例えばレイテンシ管理テーブル41cを記憶している。レイテンシ管理テーブル41cは、タイムスタンプ、リクエストID、サービス名、およびレイテンシの欄を有している。
FIG. 6 is a diagram illustrating an example of information stored in the latency storage unit. The
タイムスタンプの欄には、レイテンシを計測した日時が設定される。リクエストIDの欄には、レイテンシを計測した要求の識別情報(リクエストID)が設定される。サービス名の欄には、レイテンシを計測した要求に対応するサービスの名称(サービス名)が設定される。レイテンシの欄には、計測したレイテンシが設定される。 In the time stamp column, the date and time when the latency is measured is set. In the request ID column, identification information (request ID) of a request for measuring latency is set. In the service name column, the name of the service (service name) corresponding to the request whose latency has been measured is set. The measured latency is set in the latency column.
図7は、サービス情報記憶部が記憶する情報の一例を示す図である。サービス情報記憶部110は、例えばサービス管理テーブル111を記憶している。サービス管理テーブル111は、サービス名、Apdex(Application performance index)、Satisfied Time、およびコンポーネント名の欄が設けられている。サービス名の欄には、提供しているサービスの名称(サービス名)が設定される。Apdexの欄には、対応するサービスに求められる性能要件が、Apdexによって設定される。Apdexは、レイテンシについてのユーザの満足度を示す指標である。Satisfied Timeの欄には、対応するサービスを利用するユーザが満足すると思われる最大のレイテンシの値(T)が設定される。コンポーネント名の欄には、サービスの提供に用いられるコンポーネントの名称が設定される。
FIG. 7 is a diagram illustrating an example of information stored in the service information storage unit. The service
ここで、Apdexについて詳細に説明する。Apdexは、「The Alliance」によって標準化された指標であり、以下の式によって計算される。
Apdex=((satisfied counts)+(tolerating counts)/2)/(total counts)
「satisfied counts」は、レイテンシがT以下のリクエスト回数である。すなわち「satisfied counts」は、ユーザが満足できるレイテンシが得られたリクエストの回数である。
Here, the Index will be described in detail. Addex is an index standardized by “The Alliance” and is calculated by the following equation.
Addex = ((satisfied counts) + (tolerating counts) / 2) / (total counts)
“Satisfied counts” is the number of requests whose latency is T or less. In other words, “satisfied counts” is the number of requests for which a latency satisfying the user is obtained.
「tolerating counts」は、レイテンシがT以上、かつ4×T以下のリクエスト回数である。すなわち「tolerating counts」は、ユーザが満足できるレイテンシではないものの、許容できるレイテンシが得られたリクエストの回数である。 “Tollating counts” is the number of requests with a latency of T or more and 4 × T or less. In other words, “tolerating counts” is the number of requests for which an acceptable latency is obtained, although the latency is not satisfactory for the user.
なお、レイテンシが4×Tより大きなリクエスト回数は、「frustrated」と呼ばれる。この「frustrated」は、ユーザが不満に感じるレイテンシとなったリクエストの回数である。 The number of requests with a latency greater than 4 × T is called “frustrated”. This “frustrated” is the number of requests that resulted in a latency that the user felt dissatisfied with.
第2の実施の形態では、サービスのレイテンシに基づいて計算したApdexの値が、性能要件として設定されたApdex値以上であれば、性能要件を満たしていると判断される。逆にサービスのレイテンシに基づいて計算したApdexの値が、性能要件として設定されたApdex値未満であれば、性能要件を満たしていないと判断される。 In the second embodiment, if the value of the Index calculated based on the service latency is equal to or higher than the Index value set as the performance requirement, it is determined that the performance requirement is satisfied. Conversely, if the value of the Index calculated based on the service latency is less than the Index value set as the performance requirement, it is determined that the performance requirement is not satisfied.
図8は、メトリック情報記憶部が記憶する情報の一例を示す図である。メトリック情報記憶部120は、例えばメトリック管理テーブル121を記憶している。メトリック管理テーブル121は、タイムスタンプ、サーバ/コンテナ名、メトリック種別、および値の欄を有している。タイムスタンプの欄には、メトリックの値を計測した日時が設定される。サーバ/コンテナ名の欄には、メトリックの値を計測したサーバまたはコンテナの名称が設定される。メトリック種別の欄には、計測したメトリックの種別(メトリック種別)が設定される。値の欄には、計測したメトリックの値が設定される。
FIG. 8 is a diagram illustrating an example of information stored in the metric information storage unit. The metric
図9は、正常時振る舞い記憶部が記憶する情報の一例を示す図である。正常時振る舞い記憶部130は、例えば振る舞い測定周期ごとの複数のコンテナ振る舞い管理テーブル131a,131b,・・・と、振る舞い測定周期ごとの複数のサーバ振る舞い管理テーブル132a,132b,・・・とを記憶している。
FIG. 9 is a diagram illustrating an example of information stored in the normal behavior storage unit. The normal
複数のコンテナ振る舞い管理テーブル131a,131b,・・・は、それぞれコンテナの振る舞いの測定周期に対応付けて設けられている。複数のコンテナ振る舞い管理テーブル131a,131b,・・・は、コンテナ、メトリック種別、パーセンタイル種別、パーセンタイル値、および重み付きパーセンタイル値の欄を有している。コンテナの欄には、振る舞いの測定対象であるコンテナの名称(コンテナ名)が設定される。メトリック種別の欄には、振る舞いを測定したメトリックの種別が設定される。パーセンタイル種別の欄には、メトリックの値について求めるパーセンタイルの種別が設定される。例えば50パーセンタイル、90パーセンタイル、99パーセンタイルなどが、パーセンタイルの種別として設定される。パーセンタイル値の欄には、対応するメトリックについてのパーセンタイルの種別で示されるパーセンタイルの値が設定される。重み付きパーセンタイル値の欄には、過去数周期分のメトリック値に基づく、コンテナのメトリックごとの重み付きパーセンタイル値が設定される。重み付きパーセンタイル値の詳細は、後述する(図15参照)。 The plurality of container behavior management tables 131a, 131b,... Are provided in association with the measurement cycle of the container behavior. The plurality of container behavior management tables 131a, 131b,... Have columns for containers, metric types, percentile types, percentile values, and weighted percentile values. In the container column, the name (container name) of the container whose behavior is to be measured is set. In the metric type column, the type of metric whose behavior is measured is set. In the percentile type field, the percentile type to be obtained for the metric value is set. For example, the 50th percentile, 90th percentile, 99th percentile, etc. are set as the type of percentile. In the percentile value column, the percentile value indicated by the type of the percentile for the corresponding metric is set. In the column of weighted percentile values, weighted percentile values for each metric of the container based on metric values for the past several cycles are set. Details of the weighted percentile value will be described later (see FIG. 15).
複数のサーバ振る舞い管理テーブル132a,132b,・・・は、それぞれサーバの振る舞いの測定周期に対応付けて設けられている。複数のサーバ振る舞い管理テーブル132a,132b,・・・は、サーバ、メトリック種別、パーセンタイル種別、パーセンタイル値、および重み付きパーセンタイル値の欄を有している。サーバの欄には、振る舞いの測定対象であるサーバの名称(サーバ名)が設定される。メトリック種別の欄には、振る舞いを測定したメトリックの種別が設定される。パーセンタイル種別の欄には、メトリックの値について求めるパーセンタイルの種別が設定される。例えば50パーセンタイル、90パーセンタイル、99パーセンタイルなどが、パーセンタイルの種別として設定される。パーセンタイル値の欄には、対応するサーバについてのパーセンタイルの種別で示されるパーセンタイルの値が設定される。重み付きパーセンタイル値の欄には、過去数周期分のメトリック値に基づく、サーバのメトリックごとの重み付きパーセンタイル値が設定される。 The plurality of server behavior management tables 132a, 132b,... Are provided in association with the server behavior measurement cycle. The plurality of server behavior management tables 132a, 132b,... Have columns of server, metric type, percentile type, percentile value, and weighted percentile value. In the server column, the name (server name) of the server whose behavior is to be measured is set. In the metric type column, the type of metric whose behavior is measured is set. In the percentile type field, the percentile type to be obtained for the metric value is set. For example, the 50th percentile, 90th percentile, 99th percentile, etc. are set as the type of percentile. In the percentile value column, the percentile value indicated by the percentile type for the corresponding server is set. In the column of weighted percentile values, weighted percentile values for each metric of the server based on metric values for the past several cycles are set.
なお、パーセンタイルは、統計の代表値の一種である。複数のデータを大きさの順に並べたとき、値x(xは実数)より小さなデータの割合がp%以下(pは0以上100以下の実数)、それより大きなデータの割合が「100−p」%となる値xが、pパーセンタイルである。pパーセンタイルは、第p百分位数とも呼ばれる。 The percentile is a kind of representative value of statistics. When a plurality of data are arranged in order of size, the proportion of data smaller than the value x (x is a real number) is less than p% (p is a real number of 0 to 100), and the proportion of data larger than that is “100−p The value x that is “%” is the p percentile. The p percentile is also called the pth percentile.
図10は、リソース情報記憶部が記憶する情報の一例を示す図である。リソース情報記憶部140は、例えばコンテナ配置管理テーブル141、サーバリソース管理テーブル142、およびコンテナリソース管理テーブル143を記憶している。
FIG. 10 is a diagram illustrating an example of information stored in the resource information storage unit. The resource
コンテナ配置管理テーブル141は、サーバ42〜44へのコンテナの配置状況を管理するデータテーブルである。コンテナ配置管理テーブル141は、サーバ名とコンテナ名との欄を有している。サーバ名の欄には、コンテナが実装されているサーバの名称(サーバ名)が設定される。コンテナ名の欄には、対応するサーバに実装されているコンテナの名称(コンテナ名)が設定される。
The container placement management table 141 is a data table that manages the placement status of containers on the
サーバリソース管理テーブル142は、サーバ42〜44のリソースの空き量を管理するデータテーブルである。サーバリソース管理テーブル142は、サーバ名と残余リソース量との欄を有している。サーバ名の欄には、サービスの提供に使用しているサーバの名称(サーバ名)が設定される。残余リソース量の欄には、対応するサーバのリソースの空き量(残余リソース量)が、リソースの種別ごとに設定される。図9の例では、CPU、メモリ、ネットワークの残余リソース量が設定されている。
The server resource management table 142 is a data table for managing the amount of free resources of the
コンテナリソース管理テーブル143は、各コンポーネントのコンテナが使用するリソースの量を管理するデータテーブルである。コンテナリソース管理テーブル143は、コンポーネントとコンテナ使用リソース量との欄を有している。コンポーネントの欄には、サービスの提供に使用されるコンポーネントの名称(コンポーネント名)が設定される。コンテナ使用リソース量の欄には、対応するコンポーネントのコンテナが使用するリソースの量が、リソースの種別ごとに設定される。図9の例では、CPU、メモリ、ネットワークについてのコンテナの使用リソース量が設定されている。 The container resource management table 143 is a data table for managing the amount of resources used by each component container. The container resource management table 143 has columns of components and container usage resource amounts. In the component column, the name of the component (component name) used for providing the service is set. The amount of resource used by the container of the corresponding component is set for each resource type in the column for the amount of resource used by the container. In the example of FIG. 9, the used resource amount of the container for the CPU, memory, and network is set.
次に、性能調整エンジン150について詳細に説明する。
図11は、性能調整エンジンの機能を示すブロック図である。性能調整エンジン150は、サービス管理部151、メトリック情報収集部152、レイテンシ検査部153、振る舞い計算部154、異常要因推定部155、およびコンテナ配置制御部156を有する。
Next, the
FIG. 11 is a block diagram illustrating functions of the performance adjustment engine. The
サービス管理部151は、サービスの構成や性能要件を管理する。メトリック情報収集部152は、サーバ42〜44からメトリックの値を定期的に収集し、メトリック情報記憶部120に格納する。レイテンシ検査部153は、サービスのレイテンシが性能要件を満たしているか検査する。振る舞い計算部154は、コンテナとサーバとの正常時および異常時の振る舞いを計算する。振る舞い計算部154は、正常時の振る舞いを、正常時振る舞い記憶部130に格納する。異常要因推定部155は、レイテンシが性能要件を満たしていないサービスの異常要因となっているコンポーネント(要因コンポーネント)を推定する。コンテナ配置制御部156は、要因コンポーネントのスケールアウト、または要因コンポーネントを実行するコンテナの配置変更を行う。
The
なお、図11に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。また、図11に示した各要素の機能は、例えば、その要素に対応するプログラムモジュールをコンピュータに実行させることで実現することができる。 In addition, the line which connects between each element shown in FIG. 11 shows a part of communication path, and communication paths other than the illustrated communication path can also be set. Moreover, the function of each element shown in FIG. 11 can be realized, for example, by causing a computer to execute a program module corresponding to the element.
次に、性能調整エンジン150における、各サービスが性能要件を満たしているか否かの判定処理について説明する。
図12は、性能要件の判定処理の一例を示す図である。サービス管理部151は、管理者の入力に従って、サービス50の性能要件として、Apdex値をサービス情報記憶部110に登録する。例えばサービス管理部151は、管理者からのApdex値とSatisfied Time(T)との入力を受け付ける。そしてサービス管理部151は、入力されたApdex値とSatisfied Time(T)とを、サービス管理テーブル111に、サービス50のサービス名に対応付けて格納する。
Next, the determination process in the
FIG. 12 is a diagram illustrating an example of a performance requirement determination process. The
レイテンシ検査部153は、ゲートウェイ41から定期的に、直近の所定期間内のサービス50へのリクエストに関するレイテンシを収集する。サービスのレイテンシは、端末装置31から発行されたリクエストのゲートウェイ41での受信時刻と、端末装置31へのゲートウェイ41からの応答の送信時刻との差である。レイテンシ検査部153は、取得したレイテンシに基づいて、所定期間におけるApdex値を計算する。そしてレイテンシ検査部153は、計算したApdex値が、性能要件として指定されたApdex値以上であれば、性能要件を満たしていると判断する。またレイテンシ検査部153は、計算したApdex値が、性能要件として指定されたApdex値未満であれば、性能要件を満たしていないと判断する。
The
次にメトリック情報収集部152によって、コンテナとサーバとのメトリック情報が収集され、メトリック情報記憶部120に格納される。収集されるメトリック情報には、例えばCPUの使用率、メモリのI/Oレートやページフォルト数、ディスク(ファイルシステム)のI/Oレート、ネットワークの送受信レートなどが含まれる。収集されたメトリック情報に基づいて、振る舞い計算部154によって、直近の所定期間におけるコンテナとサーバとの振る舞いが計算される。
Next, metric information of the container and the server is collected by the metric
図13は、コンテナの振る舞いの計算例を示す図である。図13の例では、コンテナC11の振る舞いを計算するものとする。振る舞い計算部154は、メトリック情報記憶部120から、コンテナ名が「C11」であるレコードを抽出する。次に振る舞い計算部154は、抽出したレコードをメトリック種別で分類する。次に振る舞い計算部154は、同じメトリック種別のレコードに設定されている値(メトリック値)が0〜100となるように正規化し、度数分布を生成する。例えば振る舞い計算部154は、各メトリック値の理論上の最大値が「100」となるように正規化する。そして振る舞い計算部154は、度数分布に基づいて、メトリック種別ごとに、50パーセンタイル値、90パーセンタイル値、および99パーセンタイル値を計算する。
FIG. 13 is a diagram illustrating a calculation example of the behavior of the container. In the example of FIG. 13, it is assumed to calculate the behavior of the container C 11. The
振る舞い計算部154は、サービス50のコンポーネントを実行するすべてのコンテナの振る舞いを計算する。そして、レイテンシ検査部153によってサービス50の性能要件が満たされていると判断されている場合、振る舞い計算部154は、直近の周期のコンテナ振る舞い管理テーブル131aを作成し、そのコンテナ振る舞い管理テーブル131aを正常時振る舞い記憶部130に格納する。
The
図14は、サーバの振る舞いの計算例を示す図である。図14の例では、サーバ名「サーバ1」のサーバ42の振る舞いを計算するものとする。振る舞い計算部154は、メトリック情報記憶部120から、サーバ名が「サーバ1」であるレコードを抽出する。次に振る舞い計算部154は、抽出したレコードをメトリック種別で分類する。次に振る舞い計算部154は、同じメトリック種別のレコードに設定されている値(メトリック値)が0〜100となるように正規化し、度数分布を生成する。そして振る舞い計算部154は、度数分布に基づいて、メトリック種別ごとに、50パーセンタイル値、90パーセンタイル値、および99パーセンタイル値を計算する。
FIG. 14 is a diagram illustrating a calculation example of the behavior of the server. In the example of FIG. 14, it is assumed that the behavior of the
振る舞い計算部154は、すべてのサーバ42〜44の振る舞いを計算する。そして、レイテンシ検査部153によってサービス50の性能要件が満たされていると判断されている場合、振る舞い計算部154は、直近の周期のサーバ振る舞い管理テーブル132aを作成し、そのサーバ振る舞い管理テーブル132aを正常時振る舞い記憶部130に格納する。
The
レイテンシ検査部153によってサービス50の性能要件が満たされてないと判断された場合、振る舞い計算部154は、計算したコンテナとサーバとのパーセンタイル値を、異常時の振る舞いを示す情報として、異常要因推定部155に送信する。すると異常要因推定部155は、異常時の振る舞いと正常時の振る舞いとを比較して、サービスのレイテンシ低下の要因となっているコンポーネントを推定する。
When the
例えば異常要因推定部155は、正常時振る舞い記憶部130から、新しい方からn周期分(nは1以上の整数)のコンテナのメトリックごとのパーセンタイル値を取得する。そして異常要因推定部155は、取得したパーセンタイル値に基づいて、各メトリックの正常時の振る舞いを決定する。このとき異常要因推定部155は、現在に近い周期の振る舞いほど今後の振る舞いに近いとみなすようにするため、パーセンタイル値の取得元の周期の古さに応じて、パーセンタイル値に重み付けを行う。
For example, the abnormality
図15は、パーセンタイル値への重み付けの例を示す図である。図15に示した例では、周期t〜t+2周期の3周期分の正常時のパーセンタイル値を取得したものとする。このとき異常要因推定部155は、最新の周期t+2のパーセンタイル値の重みを「3」とする。また異常要因推定部155は、1つ前の周期t+1のパーセンタイル値の重みを「2」とする。さらに異常要因推定部155は、2つ前の周期tのパーセンタイル値の重みを「2」とする。
FIG. 15 is a diagram illustrating an example of weighting the percentile value. In the example illustrated in FIG. 15, it is assumed that the percentile values at the normal time for three periods of the period t to t + 2 are acquired. At this time, the abnormality
このように異常要因推定部155は、現在に近い周期のパーセンタイル値ほど重みを大きくして、n周期分の期間のパーセンタイル値(重み付きパーセンタイル値)をメトリックごとに算出する。例えば、以下のようにして、重み付きパーセンタイル値を算出する。
As described above, the abnormality
正常時のパーセンタイル値として、以下のデータが得られたものとする。S1は最新の周期のデータの集合である。S2は、S1の1つ前の周期のデータ集合である。S3は、S2の1つ前の周期のデータ集合である。
S1:{1,2}
S2:{3,4}
S3:{5,6}
この例では、重み付けの処理を分かりやすくするため、データの値を単純化している。S1,S2,S3に対する重み付パーセンタイル値を求めるとき、重みの分だけ、各正常データの数を増やす。例えば、集合S1,S2,S3それぞれに対する重みを、「3」、「2」、「1」とする。この場合、集合S1,S2,S3は、以下の集合に置き換えられる。
S1’=S1×3:{1,1,1,2,2,2}
S2’=S2×2:{3,3,4,4}
S3’=S3×1:{5,6}
集合S1’は、集合S1を3倍したものである。すなわち集合S1と同じ3つの集合を1つに纏めたものが、集合S1’である。集合S2’は、集合S2を2倍したものである。すなわち集合S2と同じ2つの集合を1つに纏めたものが、集合S2’である。集合S3’は、集合S3と同じである。異常要因推定部155は、これらの集合S1’,S2’S3’を1つの集合にまとめ、データを昇順ソートする。すなわち異常要因推定部155は、周期ごとの各集合について、その集合と同じ集合を重みの数だけ生成し、生成した集合を1つに纏めて、データを昇順にソートする。ソートの結果、以下の集合Sが得られる。
S=:{1,1,1,2,2,2,3,3,4,4,5,6}
異常要因推定部155は、この集合Sに基づいて得られたパーセンタイル値を、重み付きパーセンタイル値とする。すると、50パーセンタイルは「2」となる。また90パーセンタイルは「4」となる。
It is assumed that the following data is obtained as the percentile value at the normal time. S1 is a set of data of the latest cycle. S2 is a data set of the cycle immediately before S1. S3 is a data set of the cycle immediately before S2.
S1: {1, 2}
S2: {3, 4}
S3: {5, 6}
In this example, the data value is simplified to make the weighting process easier to understand. When obtaining weighted percentile values for S1, S2, and S3, the number of each normal data is increased by the weight. For example, the weights for the sets S1, S2, and S3 are “3”, “2”, and “1”, respectively. In this case, the sets S1, S2, and S3 are replaced with the following sets.
S1 ′ = S1 × 3: {1, 1, 1, 2, 2, 2}
S2 ′ = S2 × 2: {3, 3, 4, 4}
S3 ′ = S3 × 1: {5, 6}
The set S1 ′ is a triple of the set S1. That is, the set S1 ′ is a set of the same three sets as the set S1. The set S2 ′ is a double of the set S2. That is, a set S2 ′ is a set of the same two sets as the set S2. The set S3 ′ is the same as the set S3. The abnormality
S =: {1, 1, 1, 2, 2, 2, 3, 3, 4, 4, 5, 6}
The abnormality
異常要因推定部155は、正常時の重み付きパーセンタイル値と、異常時の振る舞いを示す最新のパーセンタイル値とを、メトリック種別ごとに比較し、そのメトリック種別に関する要因度を求める。異常要因推定部155は、例えば要因度として、正の要因度と負の要因度とを求める。
The abnormality
図16は、要因度の計算例を示す図である。図16の例では、正常時の振る舞いを示す重み付きパーセンタイル値では、50パーセンタイル値が「15」、90パーセンタイル値が「71」、99パーセンタイル値が「90」である。また異常時の振る舞いを示す最新のパーセンタイル値では、50パーセンタイル値が「6」、90パーセンタイル値が「92」、99パーセンタイル値が「98」である。 FIG. 16 is a diagram illustrating a calculation example of the factor degree. In the example of FIG. 16, in the weighted percentile value indicating the normal behavior, the 50th percentile value is “15”, the 90th percentile value is “71”, and the 99th percentile value is “90”. In the latest percentile value indicating the behavior at the time of abnormality, the 50th percentile value is “6”, the 90th percentile value is “92”, and the 99th percentile value is “98”.
ここで、正の要因度と負の要因度とを、以下のように定める。
・正の要因度F+=Σ(値が増加するPパーセンタイルのPの増分)×(パーセンタイル値の差)
・負の要因度F-=Σ(値が減少するPパーセンタイルのPの増分)×(パーセンタイル値の差)
Pはパーセンタイル種別を示す数値であり、50パーセンタイルの場合P=50である。値が増加するPパーセンタイルとは、正常時のパーセンタイル値より異常時のパーセンタイル値の方が大きいパーセンタイル種別である。値が減少するPパーセンタイルとは、異常時のパーセンタイル値より正常時のパーセンタイル値の方が大きいパーセンタイル種別である。
Here, the positive factor degree and the negative factor degree are determined as follows.
-Positive factor F + = Σ (increment of P of P percentile with increasing value) × (difference of percentile value)
Negative factor F − = Σ (increment of P of P percentile for which value decreases) × (difference of percentile value)
P is a numerical value indicating the type of percentile, and P = 50 for the 50th percentile. The P percentile whose value increases is a percentile type in which the percentile value at the time of abnormality is larger than the percentile value at the time of normality. The P percentile whose value decreases is a percentile type in which the normal percentile value is larger than the normal percentile value.
PパーセンタイルのPの増分とは、パーセンタイル種別をPの値が小さい順に並べたときの、各パーセンタイル種別についての、直前のパーセンタイル種別からのPの値の増加量である。図16の例では、50パーセンタイル、90パーセンタイル、99パーセンタイルがある。その場合、50パーセンタイルについてのPの増分は、「50」である。90パーセンタイルについてのPの増分は、「40」(90−50)である。99パーセンタイルについてのPの増分は、「9」(99−90)である。 The P increment of the P percentile is the amount of increase in the P value from the previous percentile type for each percentile type when the percentile types are arranged in ascending order of the P value. In the example of FIG. 16, there are 50th percentile, 90th percentile, and 99th percentile. In that case, the increment of P for the 50th percentile is “50”. The increment of P for the 90th percentile is “40” (90-50). The increment of P for the 99th percentile is “9” (99-90).
サービスのレイテンシが性能要件を満たしていないとき、コンテナやサーバの負荷が平常時より増加していれば、メトリック値が高い値に集中し、正の要因度が高くなる。またサービスのレイテンシが性能要件を満たしていないとき、コンテナやサーバの負荷が平常時より低下していれば、メトリック値が低い値に集中し、負の要因度が高くなる。サービスのレイテンシが性能要件を満たしているのに、コンテナまたはサーバの正の要因度よりも負の要因度の方が高い場合、そのコンテナまたはサーバとは別の要因で性能が劣化していると判断できる。 When the service latency does not meet the performance requirement, if the load on the container or server is increased than usual, the metric value is concentrated on a high value, and the positive factor is high. Also, when the service latency does not satisfy the performance requirements, if the load on the container or server is lower than normal, the metric value is concentrated at a low value, and the negative factor is high. If the service latency meets the performance requirements but the negative factor is higher than the positive factor of the container or server, the performance is degraded due to a factor other than that of the container or server. I can judge.
図16に示した例では、要因度は以下の通りとなる。
・正の要因度F+=(90−50)×(92−71)+(99−90)×(98−90)=912
・負の要因度F-=50×(15−6)=450
異常要因推定部155は、このような要因度の計算を、メトリック種別ごとに行う。そして異常要因推定部155は、最大の要因度の算出元のコンテナが実行しているコンポーネントを、異常の要因である要因コンポーネントとして推定する。
In the example shown in FIG. 16, the factor degrees are as follows.
Positive factor F + = (90−50) × (92−71) + (99−90) × (98−90) = 912
・ Negative factor F − = 50 × (15−6) = 450
The abnormality
図17は、要因コンポーネントの推定例を示す図である。図17に示すように、すべてのコンテナについて、メトリック種別ごとに、正の要因度と負の要因度とが算出される。異常要因推定部155は、算出された要因度の中から、最大の要因度を抽出する。図17の例では、コンテナC11のCPU使用率についての正の要因度の値が最大となっている。異常要因推定部155は、抽出した要因度の算出元となっているコンテナC11で実行しているコンポーネント(コンポーネント名「コンポーネント1」)を、要因コンポーネントとして推定する。このとき異常要因推定部155は、最大の要因度に対応するメトリック種別「CPU使用率」を、要因メトリックとする。また異常要因推定部155は、最大の要因度が正の要因度なのか負の要因度なのかを示すコンテナ要因度符号を、正とする。
FIG. 17 is a diagram illustrating an example of estimating the factor component. As shown in FIG. 17, the positive factor and the negative factor are calculated for each metric type for all containers. The abnormality
さらに異常要因推定部155は、コンテナ配置管理テーブル141から、最大の要因度の算出元となったコンテナが実装されているサーバのサーバ名を取得する。そして異常要因推定部155は、取得したサーバ名を、コンテナ稼働サーバのサーバ名とする。図17の例では、コンテナ稼働サーバは「サーバ1」である。
Furthermore, the abnormality
また異常要因推定部155は、サーバについても、メトリック種別ごとの要因度を計算する。そして異常要因推定部155は、サーバのメトリック種別それぞれについて、正の要因度と負の要因度とを比較する。異常要因推定部155は、正の要因度が負の要因度以上であれば、そのメトリック種別の要因度符号を「正」とする。異常要因推定部155は、正の要因度が負の要因度未満であれば、そのメトリック種別の要因度符号を「負」とする。
Also, the abnormality
そして、異常要因推定部155は、コンテナ稼働サーバの要因メトリックの要因度符号を、サーバ要因度符号とする。
図18は、サーバ要因度符号の判定例を示す図である。図18の例では、コンテナ稼働サーバ「サーバ1」の要因メトリック「CPU使用率」の要因度符号は「正」であるため、サーバ要因度符号は「正」となる。
Then, the abnormality
FIG. 18 is a diagram illustrating a determination example of the server factor degree code. In the example of FIG. 18, since the factor degree code of the factor metric “CPU usage rate” of the container operation server “
なおサーバの要因度についても、コンテナと同じ手順で計算することができるが、サーバについては、各メトリック種別の要因度符号が判明すればよい。そこで例えば、正の要因度と負の要因度とを分けずに、メトリック種別の要因度を以下の式で計算してもよい。
・要因度F=Σ(PパーセンタイルのPの増分)×(パーセンタイル値の差)
このときのパーセンタイル値の差は、正常値のパーセンタイル値から異常時のパーセンタイル値を減算した値である。このようにして計算した要因度Fが0以上の値であれば、要因度符号は「正」である。要因度Fが負の値であれば、要因度符号は「負」である。
The server factor can also be calculated in the same procedure as the container, but for the server, the factor code for each metric type only needs to be known. Therefore, for example, the factor degree of the metric type may be calculated by the following formula without dividing the positive factor degree and the negative factor degree.
・ Factor factor F = Σ (increment of P of P percentile) × (difference of percentile value)
The difference between the percentile values at this time is a value obtained by subtracting the abnormal percentile value from the normal percentile value. If the factor F calculated in this way is a value of 0 or more, the factor code is “positive”. If the factor F is a negative value, the factor sign is “negative”.
異常要因推定部155が、要因コンポーネント、要因メトリック、最大要因符号、およびサーバ要因度符号を決定すると、コンテナ配置制御部156が、レイテンシを改善するようにコンテナの追加、またはコンテナの配置先の変更などの性能改善処理を行う。
When the abnormal
コンテナ配置制御部156は、例えば、コンテナ要因度符号が正の場合、要因コンポーネントのリソースが不足していると判断し、要因コンポーネントのスケールアウトを行う。またコンテナ配置制御部156は、要因コンポーネントの要因度が負の場合であり、かつサーバ要因度符号が「正」の場合、要因コンポーネント以外のコンポーネントによるリソースの負荷が大きい影響で、要因コンポーネントの性能が低下していると判断する。この場合、コンテナ配置制御部156は、コンテナの配置変換を行う。コンテナの配置変換は、コンテナを稼働させるサーバを、別のサーバに変更する処理である。
For example, when the container factor degree code is positive, the container
なお、コンポーネントのコンテナが使用するリソース量が規定されている場合がある。この場合、コンテナ配置制御部156は、コンポーネントのスケールアウトまたは配置変換のとき、コンテナを収容できるサーバを配置先候補とする。配置先候補となるサーバが複数ある場合、コンテナ配置制御部156は、コンテナが各配置先候補に配備されたと仮定したとき、サーバの最小残余リソース量が最大となる配置先候補を、配置先に決定する。
Note that the amount of resources used by a component container may be specified. In this case, the container
図19は、コンテナの配置例を示す図である。図19の例では、要因コンポーネントが「コンポーネント1」であり、コンテナ要因度符号が「正」である。この場合、コンテナ配置制御部156は、「コンポーネント1」のスケールアウトを行う。
FIG. 19 is a diagram illustrating an exemplary arrangement of containers. In the example of FIG. 19, the factor component is “
このときコンテナ配置制御部156は、サーバリソース管理テーブル142を参照し、各サーバの残余リソース量を確認する。図19の例では、「サーバ1」の残余リソース量は、CPU「50」、メモリ「30」、ネットワーク「40」である。「サーバ2」の残余リソース量は、CPU「30」、メモリ「50」、ネットワーク「60」である。
At this time, the container
またコンテナ配置制御部156は、コンテナリソース管理テーブル143を参照し、要因コンポーネントのコンテナ1つ当たりに使用するリソース量を確認する。図19の例では、要因コンポーネントである「コンポーネント1」のコンテナの使用リソースは、CPU「10」、メモリ「20」、ネットワーク「10」である。
Further, the container
ここで「コンポーネント1」のコンテナを配置できるだけの残余リソース量を有しているサーバが、サーバ名「サーバ1」のサーバ42と、サーバ名「サーバ2」のサーバ43のみであるものとする。この場合、サーバ42とサーバ43とが、配置先候補となる。
Here, it is assumed that only the
サーバ名「サーバ1」のサーバ42にコンテナを配置した場合の残余リソース量は、CPU「40」、メモリ「10」、ネットワーク「30」である。サーバ名「サーバ2」のサーバ43にコンテナを配置した場合の残余リソース量は、CPU「20」、メモリ「30」、ネットワーク「50」である。この場合、サーバ名「サーバ1」のサーバ42の最小残余リソース量は、メモリの「10」である。それに対して、サーバ名「サーバ2」のサーバ43の最小残余リソース量は、CPUの「20」である。
The remaining resource amount when the container is arranged in the
コンテナ配置制御部156は、最小残余リソース量が最大となる、サーバ名「サーバ2」のサーバ43を配置先として選択する。そしてコンテナ配置制御部156は、サーバ43に、スケールアウト処理として。「コンポーネント1」を実行するためのコンテナC13を配置する。
The container
コンテナ配置制御部156は、Apdex値が目標値に達するまで、性能調整を継続する。そして、コンテナ配置制御部156は、Apdex値が目標値に達すると、性能調整を終了する。
The container
図20は、性能調整結果の一例を示す図である。図20の例では、Apdex値の目標値は0.8以上である。性能調整前はApdex値が「0.75」であったのが、性能調整を行うことで、Apdex値が「0.83」まで向上している。 FIG. 20 is a diagram illustrating an example of the performance adjustment result. In the example of FIG. 20, the target value of the Index value is 0.8 or more. Before the performance adjustment, the Apdex value was “0.75”, but by performing the performance adjustment, the Index value is improved to “0.83”.
次に性能調整処理の手順について詳細に説明する。
図21は、性能調整処理の手順の一例を示すフローチャートである。なお図21に示す処理は、1つのサービスについて性能調整を行う場合の処理である。複数のサービスについて性能調整を行う場合、図21に示す処理が、複数のサービスそれぞれについて実行される。以下、図21に示す処理をステップ番号に沿って説明する。
Next, the procedure of the performance adjustment process will be described in detail.
FIG. 21 is a flowchart illustrating an example of the procedure of the performance adjustment process. Note that the processing shown in FIG. 21 is processing when performance adjustment is performed for one service. When performance adjustment is performed for a plurality of services, the process illustrated in FIG. 21 is performed for each of the plurality of services. In the following, the process illustrated in FIG. 21 will be described in order of step number.
[ステップS101]性能調整エンジン150は、例えば管理者により、サービスの性能調整処理の開始指示の入力が行われると、繰り返し回数を示す変数Rの値を「0」に初期化する。
[Step S101] The
[ステップS102]レイテンシ検査部153は、性能調整対象のサービスについてのサービス情報と、そのサービスのレイテンシとを取得する。例えばレイテンシ検査部153は、サービス情報記憶部110からサービス情報を取得する。取得するサービス情報には、性能要件として指定されているApdexの値、Apdexの算出に用いるSatisfied Time(T)が含まれる。またレイテンシ検査部153は、ゲートウェイ41のレイテンシ記憶部41bから、直近の所定期間内に計測された、性能調整対象のサービスに対するリクエストのレイテンシを取得する。
[Step S102] The
[ステップS103]レイテンシ検査部153は、複数のリクエストのレイテンシに基づいて、サービスのApdexを計算する。
[ステップS104]レイテンシ検査部153は、ステップS103で計算したApdexの値が、性能要件を満たしているか否かを判断する。例えばレイテンシ検査部153は、算出したApdex値が性能要件として指定されたApdex値以上であれば、性能要件を満たしていると判断する。レイテンシ検査部153は、性能要件を満たしている場合、処理をステップS105に進める。またレイテンシ検査部153は、性能要件を満たしていない場合、処理をステップS107に進める。
[Step S103] The
[Step S104] The
[ステップS105]振る舞い計算部154は、コンテナとサーバとの正常時の振る舞いを計算して、正常時振る舞い記憶部130に保存する。例えば振る舞い計算部154は、メトリック情報記憶部120から、コンテナとサーバとの直近の所定期間分のメトリックの値を取得し、複数のパーセンタイル種別についてのパーセンタイル値を計算する。そして振る舞い計算部154は、コンテナのパーセンタイル値を設定したコンテナ振る舞い管理テーブルを、そのコンテナの正常時の振る舞いを示す情報として、正常時振る舞い記憶部130に格納する。また振る舞い計算部154は、サーバのパーセンタイル値を設定したサーバ振る舞い管理テーブルを、そのサーバの正常時の振る舞いを示す情報として、正常時振る舞い記憶部130に格納する。
[Step S105] The
[ステップS106]性能調整エンジン150は、繰り返し回数を示す変数Rを「0」にリセットする。その後、性能調整エンジン150は、処理をステップS102に進める。
[Step S106] The
[ステップS107]振る舞い計算部154は、コンテナとサーバとの異常時の振る舞いを計算する。例えば振る舞い計算部154は、メトリック情報記憶部120から、コンテナとサーバとの直近の所定期間分のメトリックの値を取得し、複数のパーセンタイル種別についてのパーセンタイル値を計算する。複数のコンテナそれぞれについて算出したパーセンタイル値が、対応するコンテナの異常時の振る舞いを示す情報である。また複数のサーバそれぞれについて算出したパーセンタイル値が、対応するサーバの異常時の振る舞いを示す情報である。
[Step S107] The
[ステップS108]異常要因推定部155は、性能調整対象のサービスの提供に使用されるコンポーネントを実行するコンテナの正常時と異常時との振る舞いの差を、メトリック種別ごとに計算する。例えば異常要因推定部155は、正常時振る舞い記憶部130から重み付きパーセンタイル値を取得する。次に異常要因推定部155は、正常時の振る舞いを示す重み付きパーセンタイル値と、ステップS107で計算した異常時の振る舞いを示すパーセンタイル値とを比較して、メトリック種別ごとに正の要因度と負の要因度を計算する。
[Step S108] The abnormality
[ステップS109]異常要因推定部155は、ステップS108における計算結果に基づいて、要因コンポーネントを推定する。例えば異常要因推定部155は、メトリック種別ごとの正の要因度と負の要因度との中から、最も大きな値の要因度を抽出する。そして異常要因推定部155は、抽出した要因度を算出元となったコンテナで実行されているコンポーネントを、要因コンポーネントとして推定する。
[Step S109] The abnormality
[ステップS110]性能調整エンジン150は、繰り返し回数を示す変数Rの値が、閾値X(Xは、1以上の整数)に達したか否かを判断する。性能調整エンジン150は、繰り返し回数が閾値Xに達した場合、性能調整を断念し、処理を終了する。またコンテナ配置制御部156は、繰り返し回数が閾値Xに達していなければ、処理をステップS111に進める。
[Step S110] The
[ステップS111]コンテナ配置制御部156は、ステップS109において抽出した要因度の符号(コンテナ要因度符号)が正か否かを判断する。コンテナ配置制御部156は、正の要因度であれば、処理をステップS112に進める。またコンテナ配置制御部156は、負の要因度であれば、処理をステップS113に進める。
[Step S111] The container
[ステップS112]コンテナ配置制御部156は、要因コンポーネントのスケールアウトを実施する。すなわちコンテナ配置制御部156は、要因コンポーネントを実行するコンテナを、いずれかのサーバに追加で配置する。例えばコンテナ配置制御部156は、コンテナを配置可能なサーバのうち、配置後の空きリソース量が最も多いサーバに、コンテナを配置する。その後、コンテナ配置制御部156は、処理をステップS115に進める。
[Step S112] The container
[ステップS113]コンテナ配置制御部156は、サーバ要因度符号が正か否かを判断する。コンテナ配置制御部156は、サーバ要因度符号が正の場合、処理をステップS114に進める。またコンテナ配置制御部156は、サーバ要因度符号が負の場合、性能調整を断念し、処理を終了する。
[Step S113] The container
[ステップS114]コンテナ配置制御部156は、コンテナの配置変更を行う。すなわちコンテナ配置制御部156は、ステップS109で抽出した要因度の計算元となったコンテナの配置先を、現在のサーバから別のサーバに変更する。
[Step S114] The container
[ステップS115]性能調整エンジン150は、繰り返し回数を示す変数Rの値を1だけカウントアップし、処理をステップS102に進める。
このようにして、性能要件を満たさないサービスにおいて、どのコンポーネントがボトルネックになっているのかを適切に判断し、そのコンポーネントの処理能力が向上するように性能調整をすることができる。これにより、コンポーネントごとの性能要件を定めなくても、コンポーネントの性能が不足した場合、コンポーネントの機能が自動で拡張される。その結果、例えばシステムの運用管理コストが削減される。またコンポーネントの性能調整が自動で行われることにより、コンポーネントの開発時にそのコンポーネントの発揮性能を意識せずにすみ、開発コストが削減される。
[Step S115] The
In this way, it is possible to appropriately determine which component is a bottleneck in a service that does not satisfy the performance requirement, and perform performance adjustment so that the processing capability of the component is improved. Thereby, even if the performance requirement for each component is not defined, the component function is automatically expanded when the performance of the component is insufficient. As a result, for example, system operation management costs are reduced. Moreover, by automatically adjusting the performance of the component, it is not necessary to be aware of the performance of the component when developing the component, and the development cost is reduced.
また第2の実施の形態では、コンテナの正常時と異常時との振る舞いの差に基づいて、レイテンシ悪化の要因となっているコンポーネントを判断している。これにより、レイテンシ悪化の要因のコンポーネントを適切に判断することができる。 In the second embodiment, the component causing the latency deterioration is determined based on the difference in behavior between the normal state and the abnormal state of the container. This makes it possible to appropriately determine the component that causes the latency deterioration.
しかも第2の実施の形態では、メトリックの度数分布からパーセンタイル値を求めることで、メトリックの度数分布で示される状態が、比較容易な数値に置き換えられている。これにより、正常時と異常時との振る舞いの差を数値化でき、複数のコンテナの中から、振る舞いの差が最も大きいコンテナを容易に特定可能となっている。 Moreover, in the second embodiment, the percentile value is obtained from the metric frequency distribution, whereby the state indicated by the metric frequency distribution is replaced with an easily comparable numerical value. As a result, the difference in behavior between normal time and abnormal time can be quantified, and the container having the largest difference in behavior can be easily identified from among a plurality of containers.
さらに第2の実施の形態では、重み付きパーセンタイル値を用いることで、正常時の状態に対して、最近の状態を強く反映させている。これにより、正常時の振る舞いを正しく計算することができる。すなわち、クラウドコンピューティングシステムでは、サーバの追加やソフトウェアの追加などのシステム構成の変更が頻繁に行われる。そのため、コンテナやサーバの遠い過去の正常時の振る舞いは、最近の正常時の振る舞いと大きく異なる可能性がある。また、最近の短い期間の振る舞いを正常時の振る舞いとしてしまうと、ある一時期に発生した特殊要因(例えばサーバ故障)などが振る舞いに反映されてしまい、正常時の振る舞いとしての正確性に欠ける。そこで性能調整エンジン150は、最近の正常時の振る舞いを強く反映させて、ある程度長い期間の振る舞いに基づいて正常時の振る舞いを計算している。その結果、正常時の振る舞いの正確性が向上する。
In the second embodiment, the weighted percentile value is used to strongly reflect the latest state with respect to the normal state. As a result, normal behavior can be calculated correctly. That is, in the cloud computing system, system configuration changes such as addition of servers and addition of software are frequently performed. For this reason, the normal behavior of containers and servers in the past in the past may be significantly different from the recent normal behavior. Further, if the behavior in the short period of time is regarded as the normal behavior, a special factor (for example, server failure) that occurs at a certain time is reflected in the behavior, and the accuracy as the normal behavior is lacking. Therefore, the
また第2の実施の形態では、性能調整エンジン150は、性能劣化の要因であるコンテナの要因度の符号(コンテナ要因度符号)が正であれば、そのコンテナに対応するコンポーネントのスケールアウトを行うが、コンテナ要因度符号が負であれば配置変更を行う。コンテナ要因度符号が負の場合、性能劣化の要因であるコンテナは、そのコンテナ自身の問題ではなく、コンテナが実装されたサーバの問題(例えば別のソフトウェアの実行による過負荷)によって、性能が劣化している可能性がある。そこで性能調整エンジン150は、コンテナの配置変更により、コンテナを何らかの問題を抱えたサーバから別のサーバに移動させ、コンテナが正しく性能を発揮できるようにしている。これにより、無駄なスケールアウトによるリソースの過大消費が抑止される。
In the second embodiment, the
〔第3の実施の形態〕
次に第3の実施の形態について説明する。第3の実施の形態は、スケールアウト後に、スケールインが可能であれば、スケールインを実施するものである。
[Third Embodiment]
Next, a third embodiment will be described. In the third embodiment, if scale-in is possible after scale-out, scale-in is performed.
すなわち、性能要件を満たすようにすることが主目的であるが、できるだけ少ないリソースでこれを実現させることも重要である。単純にスケールアウトすると、リソースの消費量が増加し、本来は不要なリソースが使用される可能性がある。そこで、第3の実施の形態では、不要なリソース使用量の増加を抑制するため、性能調整エンジン150は、可能であればスケールアウト後にスケールインを実施する。
That is, the main purpose is to satisfy the performance requirements, but it is also important to achieve this with as few resources as possible. If you simply scale out, the amount of resource consumption increases, and resources that are originally unnecessary may be used. Therefore, in the third embodiment, in order to suppress an increase in unnecessary resource usage, the
具体的には、性能調整エンジン150は、要因コンポーネントのコンテナが稼働しているサーバよりも負荷の小さいサーバが2つある場合には、現在稼動中のコンテナを削除して、負荷の小さい2つのサーバでコンテナを稼働させる。このスケールアウト(2増1減のスケールアウト)後のコンポーネントの総負荷(コンテナの負荷の合計)が正常時の総負荷よりも小さい場合、性能調整エンジン150は、コンテナが稼働しているサーバの中で最小の負荷であるサーバを選択し、選択したサーバ上のコンテナを削除する。これにより、コンテナ数を増加させることなく性能要件を満たすように性能が調整される。
Specifically, if there are two servers with a smaller load than the server on which the factor component container is running, the
以下、図22〜図24を参照して、第3の実施の形態における性能調整処理の手順について詳細に説明する。
図22は、第3の実施の形態における性能調整処理の手順の一例を示すフローチャートの前半である。図22に示す処理のうち、ステップS201〜S204、ステップS206〜S210は、それぞれ図21に示した第2の実施の形態におけるステップS101〜S109の処理と同じである。異なるステップS205の処理は、以下の通りである。
Hereinafter, the performance adjustment processing procedure according to the third embodiment will be described in detail with reference to FIGS. 22 to 24.
FIG. 22 is the first half of a flowchart showing an example of the procedure of the performance adjustment process in the third embodiment. Among the processes shown in FIG. 22, steps S201 to S204 and steps S206 to S210 are the same as the processes of steps S101 to S109 in the second embodiment shown in FIG. The process of different step S205 is as follows.
[ステップS205]ステップS204において性能要件を満たしていると判断した場合、コンテナ配置制御部156はスケールイン処理を行う。コンテナ配置制御部156は、スケールイン処理が終了すると、処理をステップS206に進める。
[Step S205] If it is determined in step S204 that the performance requirement is satisfied, the container
図23は、スケールイン処理の手順の一例を示すフローチャートである。以下、図23に示す処理をステップ番号に沿って説明する。
[ステップS221]コンテナ配置制御部156は、2増1減のスケールアウトを実施済みであることを示すフラグ「SCALE_FLAG」の値が「true」か否かを判断する。フラグ「SCALE_FLAG」は初期値が「false」であり、2増1減のスケールアウトの実施後に「true」に更新される。コンテナ配置制御部156は、フラグ「SCALE_FLAG」の値が「true」であれば、処理をステップS222に進める。またコンテナ配置制御部156は、フラグ「SCALE_FLAG」の値が「true」でなければ、スケールイン処理を終了する。
FIG. 23 is a flowchart illustrating an example of the procedure of the scale-in process. In the following, the process illustrated in FIG. 23 will be described in order of step number.
[Step S221] The container
[ステップS222]コンテナ配置制御部156は、2増1減のスケールアウトを実施時の要因コンポーネントの総負荷が、正常時の総負荷以下か否かを判断する。要因コンポーネントの総負荷は、例えばそのコンポーネントを実行しているコンテナの、スケールアウト時に最大の要因度となったメトリック種別の最新のメトリック値の合計である。正常時の総負荷は、例えば要因コンポーネントを実行しているコンテナの、スケールアウト時に最大の要因度となったメトリック種別の、過去の平常動作時のメトリック値の合計である。コンテナ配置制御部156は、要因コンポーネントの総負荷が正常時の総負荷以下であれば、処理をステップS223に進める。またコンテナ配置制御部156は、要因コンポーネントの総負荷が正常時の総負荷より大きければ、処理をステップS224に進める。
[Step S222] The container
[ステップS223]コンテナ配置制御部156は、要因コンポーネントのスケールインを実施する。すなわちコンテナ配置制御部156は、要因コンポーネントを実行するコンテナのうちの1つをサーバから削除する。その後、スケールイン処理が終了する。
[Step S223] The container
[ステップS224]コンテナ配置制御部156は、フラグ「SCALE_FLAG」を「false」に設定する。その後、スケールイン処理が終了する。
このようにして、スケールイン処理が行われる。
[Step S224] The container
In this way, the scale-in process is performed.
図24は、第3の実施の形態における性能調整処理の手順の一例を示すフローチャートの後半である。以下、図24に示す処理をステップ番号に沿って説明する。
[ステップS231]コンテナ配置制御部156は、フラグ「SCALE_FLAG」の値が「true」か否かを判断する。コンテナ配置制御部156は、フラグ「SCALE_FLAG」の値が「true」であれば、処理をステップS232に進める。またコンテナ配置制御部156は、フラグ「SCALE_FLAG」の値が「true」でなければ、処理をステップS233に進める。
FIG. 24 is the latter half of the flowchart showing an example of the procedure of the performance adjustment process in the third embodiment. In the following, the process illustrated in FIG. 24 will be described in order of step number.
[Step S231] The container
[ステップS232]コンテナ配置制御部156は、要因コンポーネントを実行するコンテナを1つ増加させるスケールアウトを実施する。その後、コンテナ配置制御部156は、処理をステップS241に進める。
[Step S232] The container
[ステップS233]性能調整エンジン150は、繰り返し回数を示す変数Rの値が、閾値Xに達したか否かを判断する。性能調整エンジン150は、繰り返し回数が閾値Xに達した場合、性能調整を断念し、処理を終了する。またコンテナ配置制御部156は、繰り返し回数が閾値Xに達していなければ、処理をステップS234に進める。
[Step S233] The
[ステップS234]コンテナ配置制御部156は、ステップS210において抽出した要因度の符号(コンテナ要因度符号)が正か否かを判断する。コンテナ配置制御部156は、正の要因度であれば、処理をステップS237に進める。またコンテナ配置制御部156は、負の要因度であれば、処理をステップS235に進める。
[Step S234] The container
[ステップS235]コンテナ配置制御部156は、サーバ要因度符号が正か否かを判断する。コンテナ配置制御部156は、サーバ要因度符号が正の場合、処理をステップS236に進める。またコンテナ配置制御部156は、サーバ要因度符号が負の場合、性能調整を断念し、処理を終了する。
[Step S235] The container
[ステップS236]コンテナ配置制御部156は、コンテナの配置変更を行う。すなわちコンテナ配置制御部156は、ステップS210で抽出した要因度の計算元となったコンテナの配置先を、現在のサーバから別のサーバに変更する。
[Step S236] The container
[ステップS237]コンテナ配置制御部156は、サーバ要因度符号が正か否かを判断する。コンテナ配置制御部156は、サーバ要因度符号が正の場合、処理をステップS238に進める。またコンテナ配置制御部156は、サーバ要因度符号が負の場合、処理をステップS240に進める。
[Step S237] The container
[ステップS238]コンテナ配置制御部156は、2増1減のスケールアウト処理を行う。
[ステップS239]コンテナ配置制御部156は、フラグ「SCALE_FLAG」を「true」に設定する。その後、コンテナ配置制御部156は、処理をステップS241に進める。
[Step S238] The container
[Step S239] The container
[ステップS240]コンテナ配置制御部156は、1増のスケールアウト処理を行う。
[ステップS241]性能調整エンジン150は、繰り返し回数を示す変数Rの値を1だけカウントアップし、処理をステップS202(図22参照)に進める。
[Step S240] The container
[Step S241] The
このようにして、2増1減のスケールアップをした場合、スケールインが可能であれば、スケールインを行うことができる。その結果、無駄にリソースを消費せずにすみ、リソースの有効利用が図れる。 In this way, when the scale-up is increased by 2 and 1 and the scale-in is possible, the scale-in can be performed. As a result, it is possible to effectively use resources without consuming resources unnecessarily.
〔その他の実施の形態〕
第2および第3の実施の形態では、コンテナごとに正の要因度と負の要因度とを計算しているが、例えば正の要因度と負の要因度との合計を、そのコンテナの要因度としてもよい。
[Other Embodiments]
In the second and third embodiments, the positive factor and the negative factor are calculated for each container. For example, the sum of the positive factor and the negative factor is calculated as the factor of the container. It may be a degree.
また第2および第3の実施の形態では、リソースのメトリック情報の代表値としてパーセンタイル値を用いているが、平均値、中央値などの他の代表値を用いてもよい。
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
In the second and third embodiments, the percentile value is used as the representative value of the resource metric information, but other representative values such as an average value and a median value may be used.
As mentioned above, although embodiment was illustrated, the structure of each part shown by embodiment can be substituted by the other thing which has the same function. Moreover, other arbitrary structures and processes may be added. Further, any two or more configurations (features) of the above-described embodiments may be combined.
1 サービス
2〜4 サーバ
5 端末装置
10 管理装置
11 記憶部
11a 第2状態情報
12 処理部
DESCRIPTION OF
Claims (9)
複数の処理を連携させることで提供されるサービスの性能を示す性能情報を取得し、
前記性能情報が、前記サービスに求められる性能を示す性能要件を満たしているか否かを判断し、
前記性能情報が前記性能要件を満たしていない場合、直近の所定期間における前記複数の処理それぞれの動作状態を示す第1状態情報を取得し、
前記サービスの性能が前記性能要件を満たしているときの前記複数の処理それぞれの動作状態を示す第2状態情報と、前記第1状態情報とに基づいて、前記性能要件が満たされているときと満たされてないときとの動作状態の差を、前記複数の処理それぞれについて計算し、
前記複数の処理それぞれの動作状態の差に基づいて、前記サービスの性能悪化要因となっている処理を判定する、
処理を実行させる性能管理プログラム。 On the computer,
Acquire performance information indicating the performance of services provided by linking multiple processes,
Determining whether the performance information satisfies a performance requirement indicating performance required for the service;
If the performance information does not satisfy the performance requirements, obtain first state information indicating the operation state of each of the plurality of processes in the latest predetermined period,
When the performance requirement is satisfied based on the second state information indicating the operation state of each of the plurality of processes when the performance of the service satisfies the performance requirement, and the first state information; Calculating the difference in operating state from when not satisfied for each of the plurality of processes;
Based on the difference between the operation states of each of the plurality of processes, the process that causes the performance deterioration of the service is determined.
Performance management program that executes processing.
前記性能情報が前記性能要件を満たしている場合、直近の所定期間における前記複数の処理それぞれの動作状態を示す第3状態情報を取得し、前記第3状態情報に基づいて、前記第2状態情報を更新する、
処理を実行させる請求項1記載の性能管理プログラム。 In addition to the computer,
When the performance information satisfies the performance requirement, third state information indicating an operation state of each of the plurality of processes in the latest predetermined period is acquired, and the second state information is obtained based on the third state information. Update,
The performance management program according to claim 1, wherein the process is executed.
請求項2記載の性能管理プログラム。 In the update of the second state information, based on the third state information of a plurality of periods, the operation state indicated by the third state information in a period closer to the present is more strongly reflected in the updated second state information. ,
The performance management program according to claim 2.
前記第1状態情報の取得では、直近の前記所定期間に前記複数の処理それぞれが使用している前記リソースの稼働状況の時系列変化を示す第1リソース情報の所定の代表値を、第1代表値として算出し、
動作状態の差の計算では、前記複数の処理それぞれについて、前記第1代表値と前記第2代表値との差を計算する、
請求項1ないし3のいずれかに記載の性能管理プログラム。 The second state information is a predetermined representative value of second resource information indicating a time-series change in the operating status of resources used by each of the plurality of processes when the performance of the service satisfies the performance requirement. Is a second representative value,
In the acquisition of the first state information, a predetermined representative value of the first resource information indicating a time-series change in the operation status of the resource used by each of the plurality of processes in the most recent predetermined period is used as a first representative As a value,
In the calculation of the difference between the operating states, the difference between the first representative value and the second representative value is calculated for each of the plurality of processes.
The performance management program according to any one of claims 1 to 3.
前記性能悪化要因と判定された要因処理の動作状態の差に基づいて、性能悪化に対する対処方法を決定し、
決定した前記対処方法による対処を実施する、
処理を実行させる請求項1ないし4のいずれかに記載の性能管理プログラム。 In addition to the computer,
Based on the difference in operating state of the factor processing determined as the performance deterioration factor, determine a method for dealing with the performance deterioration,
Implementing the countermeasure according to the determined countermeasure method,
The performance management program according to claim 1, wherein the process is executed.
請求項5記載の性能管理プログラム。 In the determination of the coping method, when the second state information of the factor processing represents an operating state having a load greater than the first state information of the factor processing, the factor processing is used as the coping method. If the first state information of the factor processing indicates an operating state having a larger load than the second state information of the factor processing, the factor processing is performed as the coping method. Decide to change the server running
The performance management program according to claim 5.
前記コンピュータに、さらに、
決定した前記対処方法による対処を実施後の、前記複数の第2サーバが前記要因処理を実行するための処理負荷が、所定値以下の場合、前記複数の第2サーバの一部における前記要因処理の実行を停止させる、
処理を実行させる請求項5記載の性能管理プログラム。 In the determination of the coping method, execution of the factor processing at the first server that is currently executing the factor processing is stopped, and the factor processing is executed at each of a plurality of second servers different from the first server. To decide
In addition to the computer,
If the processing load for the plurality of second servers to execute the factor processing after performing the countermeasure according to the determined countermeasure method is less than or equal to a predetermined value, the factor processing in a part of the plurality of second servers Stop running,
The performance management program according to claim 5, wherein the process is executed.
複数の処理を連携させることで提供されるサービスの性能を示す性能情報を取得し、
前記性能情報が、前記サービスに求められる性能を示す性能要件を満たしているか否かを判断し、
前記性能情報が前記性能要件を満たしていない場合、直近の所定期間における前記複数の処理それぞれの動作状態を示す第1状態情報を取得し、
前記サービスの性能が前記性能要件を満たしているときの前記複数の処理それぞれの動作状態を示す第2状態情報と、前記第1状態情報とに基づいて、前記性能要件が満たされているときと満たされてないときとの動作状態の差を、前記複数の処理それぞれについて計算し、
前記複数の処理それぞれの動作状態の差に基づいて、前記サービスの性能悪化要因となっている処理を判定する、
性能管理方法。 Computer
Acquire performance information indicating the performance of services provided by linking multiple processes,
Determining whether the performance information satisfies a performance requirement indicating performance required for the service;
If the performance information does not satisfy the performance requirements, obtain first state information indicating the operation state of each of the plurality of processes in the latest predetermined period,
When the performance requirement is satisfied based on the second state information indicating the operation state of each of the plurality of processes when the performance of the service satisfies the performance requirement, and the first state information; Calculating the difference in operating state from when not satisfied for each of the plurality of processes;
Based on the difference between the operation states of each of the plurality of processes, the process that causes the performance deterioration of the service is determined.
Performance management method.
前記サービスの性能を示す性能情報を取得し、前記性能情報が前記性能要件を満たしているか否かを判断し、前記性能情報が前記性能要件を満たしていない場合、直近の所定期間における前記複数の処理それぞれの動作状態を示す第1状態情報を取得し、前記第1状態情報と前記第2状態情報とに基づいて、前記性能要件が満たされているときと満たされてないときとの動作状態の差を、前記複数の処理それぞれについて計算し、前記複数の処理それぞれの動作状態の差に基づいて、前記サービスの性能悪化要因となっている処理を判定する処理部と、
を有する管理装置。 Stores second state information indicating the operating state of each of the plurality of processes when the performance of the service provided by linking the plurality of processes satisfies the performance requirement indicating the performance required for the service A storage unit;
Obtaining performance information indicating the performance of the service, determining whether the performance information satisfies the performance requirement, and when the performance information does not satisfy the performance requirement, First state information indicating the operation state of each process is acquired, and based on the first state information and the second state information, the operation state when the performance requirement is satisfied and when the performance requirement is not satisfied A processing unit that calculates the difference of each of the plurality of processes, and determines a process that is a factor that degrades the performance of the service, based on a difference in operation state of each of the plurality of processes.
A management device.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2017030013A JP2018136681A (en) | 2017-02-21 | 2017-02-21 | Performance management program, performance management method, and management device |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2017030013A JP2018136681A (en) | 2017-02-21 | 2017-02-21 | Performance management program, performance management method, and management device |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2018136681A true JP2018136681A (en) | 2018-08-30 |
Family
ID=63366816
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2017030013A Pending JP2018136681A (en) | 2017-02-21 | 2017-02-21 | Performance management program, performance management method, and management device |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2018136681A (en) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2020217441A1 (en) * | 2019-04-26 | 2020-10-29 | 三菱電機株式会社 | Data processing device, data processing method, and program |
| KR20210112930A (en) * | 2020-03-06 | 2021-09-15 | 한국전자통신연구원 | Apparatus for managing virtual network function and method for the same |
| JP2021196912A (en) * | 2020-06-15 | 2021-12-27 | ヤフー株式会社 | Execution apparatus, execution method, and execution program |
-
2017
- 2017-02-21 JP JP2017030013A patent/JP2018136681A/en active Pending
Cited By (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2020217441A1 (en) * | 2019-04-26 | 2020-10-29 | 三菱電機株式会社 | Data processing device, data processing method, and program |
| JPWO2020217441A1 (en) * | 2019-04-26 | 2021-05-06 | 三菱電機株式会社 | Data processing equipment, data processing methods and programs |
| CN113728311A (en) * | 2019-04-26 | 2021-11-30 | 三菱电机株式会社 | Data processing device, data processing method, and program |
| KR20210112930A (en) * | 2020-03-06 | 2021-09-15 | 한국전자통신연구원 | Apparatus for managing virtual network function and method for the same |
| KR102697183B1 (en) * | 2020-03-06 | 2024-08-21 | 한국전자통신연구원 | Apparatus for managing virtual network function and method for the same |
| JP2021196912A (en) * | 2020-06-15 | 2021-12-27 | ヤフー株式会社 | Execution apparatus, execution method, and execution program |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP7004902B2 (en) | Performance evaluation program and performance evaluation method | |
| US10896055B2 (en) | Capacity risk management for virtual machines | |
| US10225333B2 (en) | Management method and apparatus | |
| US11533238B2 (en) | Capacity management of computing resources based on time series analysis | |
| US10887199B2 (en) | Performance adjustment method, apparatus for performance adjustment, and non-transitory computer-readable storage medium for storing program | |
| US8285841B2 (en) | Service quality evaluator having adaptive evaluation criteria | |
| AU2019201625B2 (en) | Elastic storage volume type selection and optimization engine for public cloud environments | |
| US20160117199A1 (en) | Computing system with thermal mechanism and method of operation thereof | |
| US20120317069A1 (en) | Throughput sustaining support system, device, method, and program | |
| US11165665B2 (en) | Apparatus and method to improve precision of identifying a range of effects of a failure in a system providing a multilayer structure of services | |
| US20160306727A1 (en) | Operation management apparatus and operation management method | |
| CN111897706A (en) | Server performance prediction method, device, computer system and medium | |
| JP2018136681A (en) | Performance management program, performance management method, and management device | |
| US11385700B2 (en) | Estimation of power consumption for a job based on adjusted calculation of similarities between jobs | |
| CN113469576B (en) | High-load cell identification method, device, storage medium and electronic device | |
| US20180285168A1 (en) | Information processing apparatus and information processing system | |
| US20260017166A1 (en) | Management method for storage system and management system | |
| US20190065337A1 (en) | Log management apparatus, and log management method | |
| JP2019133246A (en) | Order control program, order control method, and information processing apparatus | |
| JP2025104293A (en) | Method, computer device, and computer program for accurately predicting and utilizing future system usage | |
| JP2018190333A (en) | Server control system and server control method | |
| CN119668857A (en) | Data processing method, system, device and medium | |
| CN121300994A (en) | Load assessment method, device, equipment and storage medium | |
| CN118981410A (en) | Information monitoring method, device, equipment and storage medium | |
| CN115827401A (en) | Prediction-based method for analyzing performance impact due to software system component content changes |