Nothing Special   »   [go: up one dir, main page]

JP2019135598A - 性能評価プログラム、および性能評価方法 - Google Patents

性能評価プログラム、および性能評価方法 Download PDF

Info

Publication number
JP2019135598A
JP2019135598A JP2018018215A JP2018018215A JP2019135598A JP 2019135598 A JP2019135598 A JP 2019135598A JP 2018018215 A JP2018018215 A JP 2018018215A JP 2018018215 A JP2018018215 A JP 2018018215A JP 2019135598 A JP2019135598 A JP 2019135598A
Authority
JP
Japan
Prior art keywords
load
performance
service
factor
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2018018215A
Other languages
English (en)
Other versions
JP7004902B2 (ja
Inventor
浩一 尾上
Koichi Onoue
浩一 尾上
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2018018215A priority Critical patent/JP7004902B2/ja
Priority to US16/239,594 priority patent/US10819603B2/en
Publication of JP2019135598A publication Critical patent/JP2019135598A/ja
Application granted granted Critical
Publication of JP7004902B2 publication Critical patent/JP7004902B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5003Managing SLA; Interaction between SLA and QoS
    • H04L41/5009Determining service level performance parameters or violations of service level contracts, e.g. violations of agreed response time or mean time between failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3433Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment for load management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3452Performance evaluation by statistical analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3495Performance evaluation by tracing or monitoring for systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • H04L41/0659Management of faults, events, alarms or notifications using network fault recovery by isolating or reconfiguring faulty entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0677Localisation of faults
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0893Assignment of logical groups to network elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/14Network analysis or design
    • H04L41/142Network analysis or design using statistical or mathematical methods
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5003Managing SLA; Interaction between SLA and QoS
    • H04L41/5009Determining service level performance parameters or violations of service level contracts, e.g. violations of agreed response time or mean time between failures [MTBF]
    • H04L41/5012Determining service level performance parameters or violations of service level contracts, e.g. violations of agreed response time or mean time between failures [MTBF] determining service availability, e.g. which services are available at a certain point in time
    • H04L41/5016Determining service level performance parameters or violations of service level contracts, e.g. violations of agreed response time or mean time between failures [MTBF] determining service availability, e.g. which services are available at a certain point in time based on statistics of service availability, e.g. in percentage or over a given time
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/04Processing captured monitoring data, e.g. for logfile generation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/091Measuring contribution of individual network components to actual service level
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/16Threshold monitoring
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/20Traffic policing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/508Network service management, e.g. ensuring proper service fulfilment according to agreements based on type of value added network service under agreement
    • H04L41/5096Network service management, e.g. ensuring proper service fulfilment according to agreements based on type of value added network service under agreement wherein the managed service relates to distributed or central networked applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0817Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Environmental & Geological Engineering (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Probability & Statistics with Applications (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Pure & Applied Mathematics (AREA)
  • Algebra (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Evolutionary Biology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】性能悪化要因の処理を特定できるようにする。【解決手段】コンピュータは、サービス1の性能を示す性能情報が性能要件を満たしていない場合、複数の処理それぞれについての、直近の所定期間における、データ受信負荷を示す第1負荷直近値、データ送信負荷を示す第2負荷直近値、および受信したデータに応じた処理負荷を示す第3負荷直近値を取得する。またコンピュータは、複数の処理それぞれについての、サービス1の性能が性能要件を満たしているときの、データ受信負荷を示す第1負荷正常値、データ送信負荷を示す第2負荷正常値、および受信したデータに応じた処理負荷を示す第3負荷正常値を取得する。そしてコンピュータは、第1負荷直近値が第1負荷正常値より大きく、第2負荷直近値が第2負荷正常値より小さく、第3負荷直近値が第3負荷正常値より大きいという要件に合致する要件合致処理の処理名を出力する。【選択図】図1

Description

本発明は、性能評価プログラム、および性能評価方法に関する。
クラウドコンピューティング技術により、ユーザが望む量のコンピュータリソースをネットワーク経由でユーザに提供することが容易となっている。クラウドコンピューティングのなかには、例えばアプリケーションソフトウェア(以下、アプリケーションと呼ぶ)を稼働させるためのプラットフォームの利用環境を、ネットワークを介してユーザに提供するPaaS(Platform as a Service)がある。
PaaSを利用したサービスは、例えばマイクロサービスアーキテクチャと呼ばれる技術思想に基づいて構築することができる。マイクロサービスアーキテクチャでは、1つのサービスを提供するソフトウェアが、コンポーネントと呼ばれる複数の小さなアプリケーションに分割して作成される。複数のコンポーネントを組み合わせて1つのサービスを提供することによって、処理能力の増強を、コンポーネント単位で実施することができる。これにより、あるコンポーネントの処理負荷が過大となった場合、そのコンポーネントについて処理能力の増強を行えばよく、他のコンポーネントは変更せずにすむ。
コンポーネントの実行単位はコンテナと呼ばれる。コンポーネントの処理能力を増強する場合、管理者は、例えば増強対象のコンポーネント用のコンテナ数を増加(スケールアウト)させる。コンテナ数の増減でサービスの性能調整ができることにより、システムのリソースを効率的に利用することができる。このようなコンテナを利用したPaaSシステムは、Container-based PaaS Platformと呼ばれる。
クラウドコンピューティングシステムの管理者は、サービスの品質が保てるように、サービスを実現するコンポーネントの性能を適宜調整する。例えば管理者は、性能要件として、サービスを提供する際のレイテンシの最大値を定め、サービスのレイテンシが最大値を超えた場合、そのサービスの提供に利用しているコンポーネントを実行する処理能力を増強することとなる。
システムの管理技術としては、例えば複数の情報処理装置を有する情報処理システムの中から異常の生じた情報処理装置を効率的に検出する技術がある。
特開2008−027061号公報
マイクロサービスアーキテクチャにおいて、サービスのレイテンシが最大値を超えたというだけでは、性能要件を満たさなくなったサービスで利用している複数のコンポーネントのうち、どのコンポーネントに性能悪化の要因があるのかが分からない。特にPaaSでは、PaaSの利用者がコンポーネントを作成しており、システムの管理者は、コンポーネントの具体的な処理内容を知ることができない。そのためシステムの管理者が、性能悪化の要因となっているコンポーネントを適確に特定するのは困難である。
なお、性能悪化の要因となっている処理の特定が難しいという問題は、マイクロサービスアーキテクチャに準じて作成されたサービスに限らず、複数の処理を連係させることで提供されるサービスの性能を調整する場合に同様に生じる問題である。
1つの側面では、本件は、性能悪化要因の処理を特定できるようにすることを目的とする。
1つの案では、コンピュータに以下の処理を実行させる性能評価プログラムが提供される。
性能評価プログラムに基づいて、コンピュータは、複数の処理を連係させることで提供されるサービスの性能を示す性能情報を取得する。次にコンピュータは、性能情報が、サービスに求められる性能を示す性能要件を満たしているか否かを判断する。次にコンピュータは、性能情報が性能要件を満たしていない場合、複数の処理それぞれについての、直近の所定期間における、データ受信負荷を示す第1負荷直近値、データ送信負荷を示す第2負荷直近値、および受信したデータに応じた処理負荷を示す第3負荷直近値を取得する。次にコンピュータは、複数の処理それぞれについての、サービスの性能が性能要件を満たしているときの、データ受信負荷を示す第1負荷正常値、データ送信負荷を示す第2負荷正常値、および受信したデータに応じた処理負荷を示す第3負荷正常値を、メモリから取得する。そしてコンピュータは、第1負荷直近値が第1負荷正常値より大きく、第2負荷直近値が第2負荷正常値より小さく、第3負荷直近値が第3負荷正常値より大きいという要件に合致する要件合致処理の処理名を、サービスの性能悪化要因として出力する。
1態様によれば、性能悪化要因の処理を特定できる。
第1の実施の形態に係るシステムの構成例を示す図である。 第2の実施の形態のシステム構成例を示す図である。 管理サーバのハードウェアの一構成例を示す図である。 マイクロサービスアーキテクチャの概念を示す図である。 性能調整のためにゲートウェイと管理サーバが有する機能を示すブロック図である。 レイテンシ記憶部が記憶する情報の一例を示す図である。 サービス情報記憶部が記憶する情報の一例を示す図である。 メトリック情報記憶部が記憶する情報の一例を示す図である。 正常時振る舞い記憶部が記憶する情報の一例を示す図である。 リソース情報記憶部が記憶する情報の一例を示す図である。 性能調整エンジンの機能を示すブロック図である。 性能要件の判定処理の一例を示す図である。 コンテナの振る舞いの計算例を示す図である。 サーバの振る舞いの計算例を示す図である。 パーセンタイル値への重み付けの例を示す図である。 要因度の計算例を示す図である。 要因度最大コンポーネントの特定例を示す図である。 コンテナ要因度符号が負の場合の要因コンポーネント推定例を示す図である。 サーバ要因度符号の判定例を示す図である。 コンテナの配置例を示す図である。 性能調整結果の一例を示す図である。 性能調整処理の手順の一例を示すフローチャートである。 要因コンポーネント推定処理の手順の一例を示すフローチャートである。
以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第1の実施の形態〕
まず、第1の実施の形態について説明する。
図1は、第1の実施の形態に係るシステムの構成例を示す図である。複数の処理(「処理a」、「処理b」、「処理c」)を連係して動作させることで提供されるサービス1が、複数のサーバ2〜4に実装されている。例えばサーバ2では「処理a」が実行され、サーバ3では「処理c」が実行され、サーバ4では「処理b」が実行されている。
例えば端末装置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に送信する。
管理装置10は、サーバ2〜4で提供されているサービス1を管理する。例えば管理装置10は、サービス1の性能調整を行う。具体的には、管理装置10は、サービス1の性能が悪化した場合、サービス1の性能悪化要因となる処理を特定する。そして管理装置10は、性能悪化が解消するように、サーバ2〜4に実行させる処理を制御する。
ここで、サービス1の性能悪化要因となる処理を特定することの困難性について説明する。
まず、性能悪化要因の第1の特定方法として、サービス1の提供に使用されている処理のうち、性能低下が発生したとき(異常時)の負荷が、性能低下が発生していないとき(正常時)の負荷に比べ、最も増加している処理を、性能悪化要因とみなす方法が考えられる。処理の負荷の値としては、例えばその処理を実行する際のCPU(Central Processing Unit)使用率などの、リソースの動作状況を示す測定値を用いることができる。
この方法の場合、サービス1に利用される処理を実行しているサーバにおける他の処理の影響で、サービス1に利用される処理の速度が低下し、サービス1の性能が低下した場合に、性能低下要因を特定することができない。すなわち、同じサーバで実行されている他の処理の処理量が過大となり、サーバの処理能力が限界に達すると、サービス1の提供に使用されている処理は、その処理によるCPU使用率が低下し、処理効率が低下する。その結果、サービス1の性能が劣化する。しかし、サービス1の提供に使用されている処理のCPU使用率が、正常時より高くなっているわけではないため、上記の第1の特定方法では、サービス1の性能劣化要因となっている処理を正しく特定することができない。
そこで性能悪化要因の第2の特定方法として、正常時と異常時との負荷の差が最も大きな処理を、サービス1の性能を悪化させた要因とみなす方法が考えられる。この方法であれば、サービス1の提供に使用されている処理と同じサーバで実行されている他の処理の影響で、サービス1の提供に利用される処理のCPU使用率が大幅に低下した場合、その処理がサービス1の悪化要因であると特定できる。この場合、サービス1の性能悪化時には、サービス1に利用される処理を実行しているサーバの負荷が正常時よりも増加しているという条件を加えることで、より正確な性能悪化要因の特定が可能となる。
しかし、第2の特定方法であっても、性能悪化要因の処理を、正しく特定できない場合がある。例えば、呼び出し元の処理の性能が不足した結果、呼び出し先の処理へ処理対象のデータを送信できず、呼び出し先の処理の負荷が低下する場合がある。このような場合には、呼び出し先の処理によるCPU使用率は正常時に比べて低下するが、この処理自身は、サービス1の性能低下の要因ではない。このように、サービス1の性能悪化要因となる処理を特定するのは容易ではない。
そこで管理装置10により、各サーバ2〜4での処理の動作状態に基づいて、性能悪化要因となる処理を適確に特定する性能管理方法を実現する。そのために、管理装置10は、以下のような記憶部11と処理部12とを有する。記憶部11は、例えば管理装置10が有するメモリまたはストレージ装置である。処理部12は、例えば管理装置10が有する1または複数のプロセッサである。処理部12が実行する処理は、例えばその処理の手順が記述された性能評価プログラムをプロセッサに実行させることで実現できる。
記憶部11は、複数の処理それぞれについての、サービス1の性能が所定の性能要件を満たしているときの動作状況を示す情報(負荷平常値)を記憶する。処理の動作状況を示す情報は、具体的には、データ受信負荷を示す第1負荷正常値、データ送信負荷を示す第2負荷正常値、および受信したデータに応じた処理負荷を示す第3負荷正常値である。第1負荷平常値は、例えば平常時の単位時間当たりのデータ受信量である。第2負荷平常値は、例えば平常時の単位時間当たりのデータ送信量である。第3負荷平常値は、例えばCPU使用率、平常時のメモリ使用率などの、データ処理量に応じて値が変動する計測値の平常時の値である。なお記憶部11は、第3負荷平常値として、複数の計測値を記憶していてもよい。
処理部12は、複数の処理を連係させることで提供されるサービス1の性能を示す性能情報を取得する。例えば処理部12は、端末装置5とサーバ2との間の通信を監視し、リクエストからレスポンスまでの時間(レイテンシ)を取得する。処理部12は、例えば複数のリクエストに対するレイテンシに基づいて、Apdex(Application performance index)などの性能の指標値を算出する。Apdexについては後述する。
処理部12は、取得した性能情報が、性能要件を満たしているか否かを判断する。例えば性能要件として、Apdexが0.8以上であることが指定されているものとする。この場合、処理部12は、取得した性能情報に基づいて算出したApdex値が、0.8以上か否かを判断する。
性能情報が性能要件を満たしていない場合、処理部12は、複数の処理それぞれについての、直近の所定期間におけるサーバ2〜4での各処理の動作状況を示す情報(負荷直近値)を、サーバ2〜4から取得する。動作状況を示す情報は、具体的には、データ受信負荷を示す第1負荷直近値、データ送信負荷を示す第2負荷直近値、および受信したデータに応じた処理負荷を示す第3負荷直近値である。第1負荷直近値は、例えば直近の単位時間当たりのデータ受信量である。第2負荷直近値は、例えば直近の単位時間当たりのデータ送信量である。第3負荷直近値は、例えばCPU使用率、メモリ使用率などの、データ処理量に応じて値が変動する計測値の直近の値である。なお処理部12は、第3負荷直近値として、複数の計測値を取得してもよい。
次に処理部12は、複数の処理それぞれについての、負荷平常値(第1負荷平常値、第2負荷平常値、第3負荷平常値)を、記憶部11から取得する。
次に処理部12は、第1負荷直近値が第1負荷正常値より大きく、第2負荷直近値が第2負荷正常値より小さく、第3負荷直近値が第3負荷正常値より大きいという要件に合致する要件合致処理の処理名を、サービス1の性能悪化要因として出力する。なお第3負荷直近値と第3負荷正常値とを、それぞれ複数取得している場合、処理部12は、同種のリソースに関する第3負荷直近値と第3負荷正常値とを比較する。そして処理部12は、ある処理の少なくとも1つのリソースに関し、第3負荷直近値の方が第3負荷正常値よりも大きければ、その処理について、第3負荷直近値が第3負荷正常値より大きいと判断してもよい。
なお処理部12は、複数の処理のうち、直近の処理負荷と正常時の処理負荷との差が最も大きい負荷差最大処理を判断し、負荷差最大処理の正常時の処理負荷の方が直近の処理負荷より大きい場合に限り、要件合致処理の処理名を出力するようにしてもよい。また処理部12は、負荷差最大処理の直近の処理負荷の方が正常時の処理負荷より大きい場合、負荷差最大処理の処理名を、サービス1の性能悪化要因として出力してもよい。
なお、サービス1の性能悪化要因となっている処理が特定できない場合もある。この場合、処理部12は、例えば、負荷差最大処理の正常時の処理負荷の方が直近の処理負荷より大きく、要件合致処理が存在しない場合、負荷差最大処理を実行しているサーバについて、サービス1の性能が性能要件を満たしていないときの負荷が、サービス1の性能が性能要件を満たしているときの負荷よりも大きい場合、サーバのサーバ名を、サービス1の性能悪化要因として出力する。
このようにして管理装置10は、サービス1の提供に使用されている処理のうち、どの処理が性能悪化要因となっているのかを、適確に判定することができる。すなわち管理装置10は、処理するデータ量が増加し、データを処理しきれなくなった処理を、サービス1の性能悪化要因として適確に特定し、その処理の処理名を出力することができる。その結果、例えば出力された処理名を管理者が確認し、管理者が、性能悪化要因の処理のスケールアウトの操作を行うことで、サービス1の性能悪化に対して、迅速に対処することができる。また管理装置10がサーバ2〜4を制御し、出力した処理名の処理のスケールアウトを自動で行ってもよい。
なお性能悪化要因としてサーバ名が出力された場合、管理者は、サービス1の提供に使用されている処理を、性能悪化要因のサーバとは別のサーバで実行させるように、処理に機能移動指示を行う。
〔第2の実施の形態〕
次に第2の実施の形態について説明する。第2の実施の形態は、マイクロサービスアーキテクチャに基づいて構築されたPaaSの運用管理を行う際に、サービスのレイテンシが最大値を超えたとき、負荷が過大となったコンポーネントを適確に判断できるコンピュータシステムである。
マイクロサービスアーキテクチャによるサービスの性能が低下している状況において、平常時より大きく負荷が低下しているコンポーネントがある場合、性能低下の原因は、そのコンポーネントとは別のコンポーネントである可能性が高い。例えば、負荷が低下しているコンポーネントに対して処理要求を送信するコンポーネントにおいて、処理量が過大となって、処理が停滞している場合が考えられる。
このとき、サービスの提供に使用されるコンポーネント間の呼び出し順序が分かれば、その負荷が極端に低下したコンポーネントの呼び出し元を辿ることで、サービスの性能低下の要因となるコンポーネントを見つけ出せる可能性がある。しかし、PaaSでは、サービスの提供に使用されるコンポーネント間の呼び出し順序は、管理者には簡単には分からない。
例えば、呼び出しを追跡できるようにコンポーネントのソースコードを修正すれば、コンポーネント間の呼び出し関係を管理者が把握することも可能となる。しかし、PaaSでは、コンポーネントのソースプログラムは、PaaS利用者の管理下にあり、PaaSの管理者が書き換えることはできない。
またコンテナが接続されている仮想スイッチで通信を捕捉・解析して、コンポーネント間の呼び出し関係を把握することも可能である。しかし、システム内にこのような捕捉・解析機能を導入すると、コンポーネントの性能が大きく低下してしまう。
このように、PaaSの管理者がサービスの提供に使用されるコンポーネント間の呼び出し順序を常に把握できるようにすることは、現実的には難しい。
そこで第2の実施の形態では、管理サーバにより、サービスの性能が性能要件を満たしているときの各コンポーネントの動作状態と、サービスの性能が性能要件を満たしていないときの各コンポーネントの動作状態とを比較して、解析する。そして管理サーバは、解析結果に基づいて、サービスの性能が低下した要因であるコンポーネントを、適切に判断する。例えば管理サーバは、コンポーネント内で処理量が増加し、処理しきれなくなってしまっているコンポーネントを、サービスの性能が低下した要因と判断する。
図2は、第2の実施の形態のシステム構成例を示す図である。クラウドコンピューティングシステム40には、ネットワーク20を介して複数の端末装置31,32,・・・が接続されている。クラウドコンピューティングシステム40は、複数の端末装置31,32,・・・に対して、PaaSによるサービスを提供する。
クラウドコンピューティングシステム40には、ゲートウェイ41、管理サーバ100、および複数のサーバ42〜44が含まれる。ゲートウェイ41は、ネットワーク20に接続されており、複数の端末装置31,32,・・・からの要求を受け付ける。管理サーバ100は、ゲートウェイ41と複数のサーバ42〜44とに接続されており、複数のサーバ42〜44を管理する。複数のサーバ42〜44は、複数の端末装置31,32,・・・からの要求に応じて、情報処理のサービスを提供する。
図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)などの電子回路で実現してもよい。
メモリ102は、管理サーバ100の主記憶装置として使用される。メモリ102には、プロセッサ101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ102には、プロセッサ101による処理に必要な各種データが格納される。メモリ102としては、例えばRAM(Random Access Memory)などの揮発性の半導体記憶装置が使用される。
バス109に接続されている周辺機器としては、ストレージ装置103、グラフィック処理装置104、入力インタフェース105、光学ドライブ装置106、機器接続インタフェース107およびネットワークインタフェース108がある。
ストレージ装置103は、内蔵した記録媒体に対して、電気的または磁気的にデータの書き込みおよび読み出しを行う。ストレージ装置103は、コンピュータの補助記憶装置として使用される。ストレージ装置103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、ストレージ装置103としては、例えばHDD(Hard Disk Drive)やSSD(Solid State Drive)を使用することができる。
グラフィック処理装置104には、モニタ21が接続されている。グラフィック処理装置104は、プロセッサ101からの命令に従って、画像をモニタ21の画面に表示させる。モニタ21としては、CRT(Cathode Ray Tube)を用いた表示装置や液晶表示装置などがある。
入力インタフェース105には、キーボード22とマウス23とが接続されている。入力インタフェース105は、キーボード22やマウス23から送られてくる信号をプロセッサ101に送信する。なお、マウス23は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
光学ドライブ装置106は、レーザ光などを利用して、光ディスク24に記録されたデータの読み取りを行う。光ディスク24は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク24には、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。
機器接続インタフェース107は、管理サーバ100に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース107には、メモリ装置25やメモリリーダライタ26を接続することができる。メモリ装置25は、機器接続インタフェース107との通信機能を搭載した記録媒体である。メモリリーダライタ26は、メモリカード27へのデータの書き込み、またはメモリカード27からのデータの読み出しを行う装置である。メモリカード27は、カード型の記録媒体である。
ネットワークインタフェース108は、ネットワーク20に接続されている。ネットワークインタフェース108は、ネットワーク20を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
以上のようなハードウェア構成によって、第2の実施の形態における管理サーバ100の処理機能を実現することができる。なお、端末装置31,32,・・・、ゲートウェイ41、およびサーバ42〜44も、管理サーバ100と同様のハードウェアによって実現できる。また、第1の実施の形態に示した管理装置10も、図3に示した管理サーバ100と同様のハードウェアにより実現することができる。
管理サーバ100は、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第2の実施の形態の処理機能を実現する。管理サーバ100に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、管理サーバ100に実行させるプログラムをストレージ装置103に格納しておくことができる。プロセッサ101は、ストレージ装置103内のプログラムの少なくとも一部をメモリ102にロードし、プログラムを実行する。また管理サーバ100に実行させるプログラムを、光ディスク24、メモリ装置25、メモリカード27などの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ101からの制御により、ストレージ装置103にインストールされた後、実行可能となる。またプロセッサ101が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
なお、第2の実施の形態では、マイクロサービスアーキテクチャに基づいて、サービスを提供するソフトウェアがサーバ42〜44に実装される。
図4は、マイクロサービスアーキテクチャの概念を示す図である。ユーザに提供するサービス50は、複数のコンポーネント51〜53を用いて実現される。例えばコンポーネント51はプレゼンテーション層の処理を実行するソフトウェアであり、コンポーネント52はロジック層の処理を実行するソフトウェアであり、コンポーネント53はデータ層の処理を実行するソフトウェアである。
コンポーネント51〜53は、複数のサーバ42〜44のいずれか1以上で実行される。コンポーネント51〜53を実行することでサーバ42〜44上に構築される処理機能がコンテナである。第2の実施の形態では、コンテナを「Cxy」と表している。添字の「x」は、そのコンテナを含むコンポーネントの識別番号(コンポーネント番号)である。添字の「y」は、そのコンテナを含むコンポーネント内でのコンテナの識別番号(コンテナ番号)である。
このように、マイクロサービスアーキテクチャでは、一つのサービス50を提供するためのソフトウェアが、複数の小さなコンポーネント51〜53に分割して作成される。各コンポーネント51〜53は疎に結合している。結合が疎であるとは、コンポーネント51〜53同士の結びつきが比較的緩やかであり、独立性が強い状態にあることである。コンポーネント51〜53の結合が疎であることにより、新たなコンポーネントの追加や一部のコンポーネントの拡張による他のコンポーネントの変更が少なくてすむという利点がある。
マイクロサービスアーキテクチャに準じて作成されたサービスのコンポーネント51〜53は、コンテナによって実行される。コンポーネント51〜53とコンテナは1対多の関係にある。
ユーザに提供するサービス50に求められる性能要件は、例えばレイテンシを用いて表すことができる。従って、システムの管理者は、サービス50に求められるレイテンシが得られるような処理能力のコンポーネント51〜53を用意することになる。コンポーネント51〜53の処理能力は、コンポーネント51〜53を実行するコンテナを増やしたり、減らしたりすることで調整することができる。
ここで、サービス50に求められる性能要件を管理者が規定することは容易である。それに対して、サービス50に求められるレイテンシを満たすように、各コンポーネントにどの程度のリソースを割り当てればよいのかを、管理者が判断するのは困難である。そこで第2の実施の形態では、管理サーバ100が、性能が不足しているコンポーネントを検出し、そのコンポーネントを実行するコンテナを追加することで、サービス50に対する性能要件を満たすようなコンポーネントへのリソースの割り当てを実現する。
図5は、性能調整のためにゲートウェイと管理サーバが有する機能を示すブロック図である。ゲートウェイ41は、レイテンシ計測部41aとレイテンシ記憶部41bとを有する。レイテンシ計測部41aは、端末装置31,32,・・・から要求を受信してから、その要求に対応する応答を端末装置31,32,・・・に送信するまでの時間を計測する。レイテンシ計測部41aは、計測した時間を、その要求に応じたサービスについてのレイテンシとして、レイテンシ記憶部41bに格納する。レイテンシ記憶部41bは、レイテンシ計測部41aが計測したレイテンシを記憶する。
管理サーバ100は、サービス情報記憶部110、メトリック情報記憶部120、正常時振る舞い記憶部130、リソース情報記憶部140、および性能調整エンジン150を有する。サービス情報記憶部110は、提供するサービスに関する情報を記憶する。メトリック情報記憶部120は、サーバ42〜44やコンテナによるリソースの稼働状況に関する情報(メトリック)を記憶する。正常時振る舞い記憶部130は、複数のコンテナそれぞれと複数のサーバそれぞれとの正常動作時の振る舞いを示す情報を記憶する。リソース情報記憶部140は、サーバ42〜44の使用リソースに関する情報を記憶する。性能調整エンジン150は、サービス情報記憶部110、メトリック情報記憶部120、正常時振る舞い記憶部130、およびリソース情報記憶部140に記憶された情報を用いて、コンポーネント単位での性能調整を行う。
なお、以下の説明において、コンポーネントの処理を実行するコンテナをサーバに実装することを、コンテナの配置と呼ぶ。コンテナの配置は、具体的には、コンポーネントを実行するためのプログラムをサーバにインストールし、そのプログラムに基づいてコンポーネントの処理を実行するプロセスを起動する処理である。また、コンテナがサーバに実装されているとき、そのコンテナがそのサーバに配置されていると呼ぶ。
図5の例では、各サーバ42〜44には、異なるコンポーネントの複数のコンテナが配置されている。例えばサーバ42には、コンテナC11,C22,C31が配置されている。
以下、図6〜図10を参照して、サービス情報記憶部110、メトリック情報記憶部120、正常時振る舞い記憶部130、およびリソース情報記憶部140が記憶する情報について、詳細に説明する。
図6は、レイテンシ記憶部が記憶する情報の一例を示す図である。レイテンシ記憶部41bは、例えばレイテンシ管理テーブル41cを記憶している。レイテンシ管理テーブル41cは、タイムスタンプ、リクエストID、サービス名、およびレイテンシの欄を有している。
タイムスタンプの欄には、レイテンシを計測した日時が設定される。リクエストIDの欄には、レイテンシを計測した要求の識別情報(リクエストID)が設定される。サービス名の欄には、レイテンシを計測した要求に対応するサービスの名称(サービス名)が設定される。レイテンシの欄には、計測したレイテンシが設定される。
図7は、サービス情報記憶部が記憶する情報の一例を示す図である。サービス情報記憶部110は、例えばサービス管理テーブル111を記憶している。サービス管理テーブル111は、サービス名、Apdex、Satisfied Time、およびコンポーネント名の欄が設けられている。サービス名の欄には、提供しているサービスの名称(サービス名)が設定される。Apdexの欄には、対応するサービスに求められる性能要件が、Apdexによって設定される。Apdexは、レイテンシについてのユーザの満足度を示す指標である。Satisfied Timeの欄には、対応するサービスを利用するユーザが満足すると思われる最大のレイテンシの値(T)が設定される。コンポーネント名の欄には、サービスの提供に用いられるコンポーネントの名称が設定される。
ここで、Apdexについて詳細に説明する。Apdexは、「The Alliance」によって標準化された指標であり、以下の式によって計算される。
・Apdex=((satisfied counts)+(tolerating counts)/2)/(total counts)
「satisfied counts」は、レイテンシがT以下のリクエスト回数である。すなわち「satisfied counts」は、ユーザが満足できるレイテンシが得られたリクエストの回数である。
「tolerating counts」は、レイテンシがT以上、かつ4×T以下のリクエスト回数である。すなわち「tolerating counts」は、ユーザが満足できるレイテンシではないものの、許容できるレイテンシが得られたリクエストの回数である。
なお、レイテンシが4×Tより大きなリクエスト回数は、「frustrated」と呼ばれる。この「frustrated」は、ユーザが不満に感じるレイテンシとなったリクエストの回数である。
第2の実施の形態では、サービスのレイテンシに基づいて計算したApdexの値が、性能要件として設定されたApdex値以上であれば、性能要件を満たしていると判断される。逆にサービスのレイテンシに基づいて計算したApdexの値が、性能要件として設定されたApdex値未満であれば、性能要件を満たしていないと判断される。
図8は、メトリック情報記憶部が記憶する情報の一例を示す図である。メトリック情報記憶部120は、例えばメトリック管理テーブル121を記憶している。メトリック管理テーブル121は、タイムスタンプ、サーバ/コンテナ名、メトリック種別、および値の欄を有している。タイムスタンプの欄には、メトリックの値を計測した日時が設定される。サーバ/コンテナ名の欄には、メトリックの値を計測したサーバまたはコンテナの名称が設定される。メトリック種別の欄には、計測したメトリックの種別(メトリック種別)が設定される。値の欄には、計測したメトリックの値が設定される。
図9は、正常時振る舞い記憶部が記憶する情報の一例を示す図である。正常時振る舞い記憶部130は、例えば振る舞い測定周期ごとの複数のコンテナ振る舞い管理テーブル131a,131b,・・・と、振る舞い測定周期ごとの複数のサーバ振る舞い管理テーブル132a,132b,・・・とを記憶している。
複数のコンテナ振る舞い管理テーブル131a,131b,・・・は、それぞれコンテナの振る舞いの測定周期に対応付けて設けられている。複数のコンテナ振る舞い管理テーブル131a,131b,・・・は、コンテナ、メトリック種別、パーセンタイル種別、パーセンタイル値、および重み付きパーセンタイル値の欄を有している。コンテナの欄には、振る舞いの測定対象であるコンテナの名称(コンテナ名)が設定される。メトリック種別の欄には、振る舞いを測定したメトリックの種別が設定される。パーセンタイル種別の欄には、メトリックの値について求めるパーセンタイルの種別が設定される。例えば50パーセンタイル、90パーセンタイル、99パーセンタイルなどが、パーセンタイルの種別として設定される。パーセンタイル値の欄には、対応するメトリックについてのパーセンタイルの種別で示されるパーセンタイルの値が設定される。重み付きパーセンタイル値の欄には、過去数周期分のメトリック値に基づく、コンテナのメトリックごとの重み付きパーセンタイル値が設定される。重み付きパーセンタイル値の詳細は、後述する(図15参照)。
複数のサーバ振る舞い管理テーブル132a,132b,・・・は、それぞれサーバの振る舞いの測定周期に対応付けて設けられている。複数のサーバ振る舞い管理テーブル132a,132b,・・・は、サーバ、メトリック種別、パーセンタイル種別、パーセンタイル値、および重み付きパーセンタイル値の欄を有している。サーバの欄には、振る舞いの測定対象であるサーバの名称(サーバ名)が設定される。メトリック種別の欄には、振る舞いを測定したメトリックの種別が設定される。パーセンタイル種別の欄には、メトリックの値について求めるパーセンタイルの種別が設定される。例えば50パーセンタイル、90パーセンタイル、99パーセンタイルなどが、パーセンタイルの種別として設定される。パーセンタイル値の欄には、対応するサーバについてのパーセンタイルの種別で示されるパーセンタイルの値が設定される。重み付きパーセンタイル値の欄には、過去数周期分のメトリック値に基づく、サーバのメトリックごとの重み付きパーセンタイル値が設定される。
なお、パーセンタイルは、統計の代表値の一種である。複数のデータを大きさの順に並べたとき、値x(xは実数)より小さなデータの割合がp%以下(pは0以上100以下の実数)、それより大きなデータの割合が「100−p」%となる値xが、pパーセンタイルである。pパーセンタイルは、第p百分位数とも呼ばれる。
図10は、リソース情報記憶部が記憶する情報の一例を示す図である。リソース情報記憶部140は、例えばコンテナ配置管理テーブル141、サーバリソース管理テーブル142、およびコンテナリソース管理テーブル143を記憶している。
コンテナ配置管理テーブル141は、サーバ42〜44へのコンテナの配置状況を管理するデータテーブルである。コンテナ配置管理テーブル141は、サーバ名とコンテナ名との欄を有している。サーバ名の欄には、コンテナが実装されているサーバの名称(サーバ名)が設定される。コンテナ名の欄には、対応するサーバに実装されているコンテナの名称(コンテナ名)が設定される。
サーバリソース管理テーブル142は、サーバ42〜44のリソースの空き量を管理するデータテーブルである。サーバリソース管理テーブル142は、サーバ名と残余リソース量との欄を有している。サーバ名の欄には、サービスの提供に使用しているサーバの名称(サーバ名)が設定される。残余リソース量の欄には、対応するサーバのリソースの空き量(残余リソース量)が、リソースの種別ごとに設定される。図10の例では、CPU、メモリ、ネットワークの残余リソース量が設定されている。
コンテナリソース管理テーブル143は、各コンポーネントのコンテナが使用するリソースの量を管理するデータテーブルである。コンテナリソース管理テーブル143は、コンポーネントとコンテナ使用リソース量との欄を有している。コンポーネントの欄には、サービスの提供に使用されるコンポーネントの名称(コンポーネント名)が設定される。コンテナ使用リソース量の欄には、対応するコンポーネントのコンテナが使用するリソースの量が、リソースの種別ごとに設定される。図10の例では、CPU、メモリ、ネットワークについてのコンテナの使用リソース量が設定されている。
次に、性能調整エンジン150について詳細に説明する。
図11は、性能調整エンジンの機能を示すブロック図である。性能調整エンジン150は、サービス管理部151、メトリック情報収集部152、レイテンシ検査部153、振る舞い計算部154、異常要因推定部155、およびコンテナ配置制御部156を有する。
サービス管理部151は、サービスの構成や性能要件を管理する。メトリック情報収集部152は、サーバ42〜44からメトリックの値を定期的に収集し、メトリック情報記憶部120に格納する。レイテンシ検査部153は、サービスのレイテンシが性能要件を満たしているか検査する。振る舞い計算部154は、コンテナとサーバとの正常時および異常時の振る舞いを計算する。振る舞い計算部154は、正常時の振る舞いを、正常時振る舞い記憶部130に格納する。異常要因推定部155は、レイテンシが性能要件を満たしていないサービスの異常要因となっているコンポーネント(要因コンポーネント)を推定する。コンテナ配置制御部156は、要因コンポーネントのスケールアウト、または要因コンポーネントを実行するコンテナの配置変更を行う。
なお、図11に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。また、図11に示した各要素の機能は、例えば、その要素に対応するプログラムモジュールをコンピュータに実行させることで実現することができる。
次に、性能調整エンジン150における、各サービスが性能要件を満たしているか否かの判定処理について説明する。
図12は、性能要件の判定処理の一例を示す図である。サービス管理部151は、管理者の入力に従って、サービス50の性能要件として、Apdex値をサービス情報記憶部110に登録する。例えばサービス管理部151は、管理者からのApdex値とSatisfied Time(T)との入力を受け付ける。そしてサービス管理部151は、入力されたApdex値とSatisfied Time(T)とを、サービス管理テーブル111に、サービス50のサービス名に対応付けて格納する。
レイテンシ検査部153は、ゲートウェイ41から定期的に、直近の所定期間内のサービス50へのリクエストに関するレイテンシを収集する。サービスのレイテンシは、端末装置31から発行されたリクエストのゲートウェイ41での受信時刻と、端末装置31へのゲートウェイ41からの応答の送信時刻との差である。レイテンシ検査部153は、取得したレイテンシに基づいて、所定期間におけるApdex値を計算する。そしてレイテンシ検査部153は、計算したApdex値が、性能要件として指定されたApdex値以上であれば、性能要件を満たしていると判断する。またレイテンシ検査部153は、計算したApdex値が、性能要件として指定されたApdex値未満であれば、性能要件を満たしていないと判断する。
次にメトリック情報収集部152によって、コンテナとサーバとのメトリック情報が収集され、メトリック情報記憶部120に格納される。収集されるメトリック情報には、例えばCPUの使用率、メモリのI/Oレートやページフォルト数、ディスク(ファイルシステム)のI/Oレート、ネットワーク受信レート、ネットワーク送信レートなどが含まれる。収集されたメトリック情報に基づいて、振る舞い計算部154によって、直近の所定期間におけるコンテナとサーバとの振る舞いが計算される。
図13は、コンテナの振る舞いの計算例を示す図である。図13の例では、コンテナC11の振る舞いを計算するものとする。振る舞い計算部154は、メトリック情報記憶部120から、コンテナ名が「C11」であるレコードを抽出する。次に振る舞い計算部154は、抽出したレコードをメトリック種別で分類する。次に振る舞い計算部154は、同じメトリック種別のレコードに設定されている値(メトリック値)が0〜100となるように正規化し、度数分布を生成する。例えば振る舞い計算部154は、各メトリック値の理論上の最大値が「100」となるように正規化する。そして振る舞い計算部154は、度数分布に基づいて、メトリック種別ごとに、50パーセンタイル値、90パーセンタイル値、および99パーセンタイル値を計算する。
振る舞い計算部154は、サービス50のコンポーネントを実行するすべてのコンテナの振る舞いを計算する。そして、レイテンシ検査部153によってサービス50の性能要件が満たされていると判断されている場合、振る舞い計算部154は、直近の周期のコンテナ振る舞い管理テーブル131aを作成し、そのコンテナ振る舞い管理テーブル131aを正常時振る舞い記憶部130に格納する。
図14は、サーバの振る舞いの計算例を示す図である。図14の例では、サーバ名「サーバ1」のサーバ42の振る舞いを計算するものとする。振る舞い計算部154は、メトリック情報記憶部120から、サーバ名が「サーバ1」であるレコードを抽出する。次に振る舞い計算部154は、抽出したレコードをメトリック種別で分類する。次に振る舞い計算部154は、同じメトリック種別のレコードに設定されている値(メトリック値)が0〜100となるように正規化し、度数分布を生成する。そして振る舞い計算部154は、度数分布に基づいて、メトリック種別ごとに、50パーセンタイル値、90パーセンタイル値、および99パーセンタイル値を計算する。
振る舞い計算部154は、すべてのサーバ42〜44の振る舞いを計算する。そして、レイテンシ検査部153によってサービス50の性能要件が満たされていると判断されている場合、振る舞い計算部154は、直近の周期のサーバ振る舞い管理テーブル132aを作成し、そのサーバ振る舞い管理テーブル132aを正常時振る舞い記憶部130に格納する。
レイテンシ検査部153によってサービス50の性能要件が満たされていないと判断された場合、振る舞い計算部154は、計算したコンテナとサーバとのパーセンタイル値を、異常時の振る舞いを示す情報として、異常要因推定部155に送信する。すると異常要因推定部155は、異常時の振る舞いと正常時の振る舞いとを比較して、サービスのレイテンシ低下の要因となっているコンポーネントを推定する。
例えば異常要因推定部155は、正常時振る舞い記憶部130から、新しい方からn周期分(nは1以上の整数)のコンテナのメトリックごとのパーセンタイル値を取得する。そして異常要因推定部155は、取得したパーセンタイル値に基づいて、各メトリックの正常時の振る舞いを決定する。このとき異常要因推定部155は、現在に近い周期の振る舞いほど今後の振る舞いに近いとみなすようにするため、パーセンタイル値の取得元の周期の古さに応じて、パーセンタイル値に重み付けを行う。
図15は、パーセンタイル値への重み付けの例を示す図である。図15に示した例では、周期t〜t+2周期の3周期分の正常時のパーセンタイル値を取得したものとする。このとき異常要因推定部155は、最新の周期t+2のパーセンタイル値の重みを「3」とする。また異常要因推定部155は、1つ前の周期t+1のパーセンタイル値の重みを「2」とする。さらに異常要因推定部155は、2つ前の周期tのパーセンタイル値の重みを「1」とする。
このように異常要因推定部155は、現在に近い周期のパーセンタイル値ほど重みを大きくして、n周期分の期間のパーセンタイル値(重み付きパーセンタイル値)をメトリックごとに算出する。例えば、以下のようにして、重み付きパーセンタイル値を算出する。
正常時のパーセンタイル値として、以下のデータが得られたものとする。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」となる。
異常要因推定部155は、正常時の重み付きパーセンタイル値と、異常時の振る舞いを示す最新のパーセンタイル値とを、メトリック種別ごとに比較し、そのメトリック種別に関する要因度を求める。異常要因推定部155は、例えば要因度として、正の要因度と負の要因度とを求める。
図16は、要因度の計算例を示す図である。図16の例では、正常時の振る舞いを示す重み付きパーセンタイル値では、50パーセンタイル値が「15」、90パーセンタイル値が「71」、99パーセンタイル値が「90」である。また異常時の振る舞いを示す最新のパーセンタイル値では、50パーセンタイル値が「6」、90パーセンタイル値が「92」、99パーセンタイル値が「98」である。
ここで、正の要因度と負の要因度とを、以下のように定める。
・正の要因度F+=Σ(値が増加するPパーセンタイルのPの増分)×(パーセンタイル値の差)
・負の要因度F-=Σ(値が減少するPパーセンタイルのPの増分)×(パーセンタイル値の差)
Pはパーセンタイル種別を示す数値であり、50パーセンタイル値の場合P=50である。値が増加するPパーセンタイルとは、正常時のパーセンタイル値より異常時のパーセンタイル値の方が大きいパーセンタイル種別である。値が減少するPパーセンタイルとは、異常時のパーセンタイル値より正常時のパーセンタイル値の方が大きいパーセンタイル種別である。
PパーセンタイルのPの増分とは、パーセンタイル種別をPの値が小さい順に並べたときの、各パーセンタイル種別についての、直前のパーセンタイル種別からのPの値の増加量である。図16の例では、50パーセンタイル、90パーセンタイル、99パーセンタイルがある。その場合、50パーセンタイルについてのPの増分は、「50」である。90パーセンタイルについてのPの増分は、「40」(90−50)である。99パーセンタイルについてのPの増分は、「9」(99−90)である。
サービスのレイテンシが性能要件を満たしていないとき、コンテナやサーバの負荷が平常時より増加していれば、メトリック値が高い値に集中し、正の要因度が高くなる。またサービスのレイテンシが性能要件を満たしていないとき、コンテナやサーバの負荷が平常時より低下していれば、メトリック値が低い値に集中し、負の要因度が高くなる。サービスのレイテンシが性能要件を満たしているのに、コンテナまたはサーバの正の要因度よりも負の要因度の方が高い場合、そのコンテナまたはサーバとは別の要因で性能が劣化していると判断できる。
図16に示した例では、要因度は以下の通りとなる。
・正の要因度F+=(90−50)×(92−71)+(99−90)×(98−90)=912
・負の要因度F-=50×(15−6)=450
異常要因推定部155は、このような要因度の計算を、メトリック種別ごとに行う。そして異常要因推定部155は、最大の要因度の算出元のコンテナが実行しているコンポーネントを、要因度最大コンポーネントとして特定する。
図17は、要因度最大コンポーネントの特定例を示す図である。図17に示すように、すべてのコンテナについて、メトリック種別ごとに、正の要因度と負の要因度とが算出される。異常要因推定部155は、算出された要因度の中から、最大の要因度を抽出する。図17の例では、コンテナC11のCPU使用率についての正の要因度の値が最大となっている。異常要因推定部155は、抽出した要因度の算出元となっているコンテナC11で実行しているコンポーネント(コンポーネント名「コンポーネント1」)を、要因度最大コンポーネントとする。このとき異常要因推定部155は、最大の要因度に対応するメトリック種別「CPU使用率」を、要因メトリックとする。また異常要因推定部155は、最大の要因度が正の要因度なのか負の要因度なのかを示すコンテナ要因度符号を、正とする。
さらに異常要因推定部155は、コンテナ配置管理テーブル141から、要因度最大コンポーネントの算出元となったコンテナが実装されているサーバのサーバ名を取得する。そして異常要因推定部155は、取得したサーバ名を、コンテナ稼働サーバのサーバ名とする。図17の例では、コンテナ稼働サーバは「サーバ1」である。
ここで、コンテナ要因度符号が正であれば、要因度最大コンポーネントが、サービスのレイテンシ悪化要因であると推定できる。すなわち、コンポーネントの処理を実行するコンテナの処理負荷が過大となると、通常時よりも、各パーセンタイル値が上昇する。その結果、コンテナ要因度符号は正となる。
それに対して、コンテナ要因度符号が負の場合、要因度最大コンポーネント以外のコンポーネントが、サービスのレイテンシ悪化要因であると考えられる。そこで、異常要因推定部155は、コンテナ要因度符号が負の場合、ネットワーク受信のメトリック値が通常時よりも増加しているにも関わらず、ネットワーク送信のメトリック値が通常時よりも減少しているコンポーネントを、要因コンポーネントと推定する。
コンテナ要因度符号が負の場合の要因コンポーネントを推定する際には、異常要因推定部155は、コンテナの場合と同様に、コンポーネントについての要因度を計算する。例えば異常要因推定部155は、コンポーネントの要因度として、正の要因度と負の要因度とを求める。
異常要因推定部155は、コンポーネントの処理を実行する各コンテナのメトリック値に基づいて、図16と同様に、メトリック種別ごとに重み付きパーセンタイル値を求める。すなわち異常要因推定部155は、コンテナの要因度は、そのコンテナのメトリック値に基づいて計算するのに対して、コンポーネントの要因度は、コンポーネントの処理を実行する各コンテナのメトリック値に基づいて計算する。
図18は、コンテナ要因度符号が負の場合の要因コンポーネント推定例を示す図である。図18の例では、サービスが、「コンポーネントA」、「コンポーネントB」、および「コンポーネントC」の連係動作によって提供されている。「コンポーネントA」のコンテナが「コンポーネントB」のコンテナを呼び出し、「コンポーネントB」のコンテナが「コンポーネントC」のコンテナを呼び出す。ただし、管理サーバ100からは、コンポーネント間の呼び出し関係は不明である。
ここで、サービスへのリクエストが急激に増加し、例えば「コンポーネントA」のコンテナのCPU使用率が、通常は平均で「80%」であるところ、平均「90%」に上昇したものとする。CPU使用率が過大になると、処理効率が低下し、単位時間当たりに処理できるリクエスト数が減少する場合がある。この場合、「コンポーネントA」のコンテナから「コンポーネントB」のコンテナへのリクエストが減少する。その結果、「コンポーネントB」および「コンポーネントC」のコンテナのCPU使用率は低下する。
例えば「コンポーネントC」のコンテナのCPU使用率が、通常は平均で「50%」のところ、平均「10%」に低下したものとする。なお、「コンポーネントB」のコンテナは、通常時から性能に余裕をもって、低負荷で処理を実行しており、リクエスト数が減少しても要因度の変化が少ないものとする。このような場合、「コンポーネントA」のコンテナのCPU使用率の上昇度合いよりも、「コンポーネントC」のコンテナのCPU使用率の下降度合いの方が著しいため、要因度の変化も「コンポーネントC」の方が大きくなる。その結果、「コンポーネントC」が要因度最大コンポーネントとなる。この例では、レスポンスの悪化要因は、「コンポーネントA」のリソース不足(コンテナ不足)にあり、「コンポーネントC」は、要因度最大コンポーネントではあるものの、レスポンスの悪化要因ではない。
そこで異常要因推定部155は、コンテナ要因度符号が負の場合には、要因度最大コンポーネント以外のコンポーネントの中から、要因コンポーネントを探索する。すなわち異常要因推定部155は、コンポーネントへのリクエストが増加し、リクエストを処理しきれなくなってしまっているコンポーネントを探索する。
例えば、異常要因推定部155は、各コンポーネントについて、メトリック種別ごとの正の要因度と負の要因度とを計算する。異常要因推定部155は、負の要因度よりも正の要因度の方が値が大きいメトリックについての要因度符号を「正」とする。また異常要因推定部155は、正の要因度よりも負の要因度の方が値が大きいメトリックについての要因度符号を「負」とする。そして異常要因推定部155は、要因度最大コンポーネント以外のコンポーネントの中から、ネットワーク受信レートの要因度符号が「正」、ネットワーク受信レートの要因度符号が「負」、かつネットワーク以外のメトリックの要因度符号が「正」のコンポーネントを探索する。
すなわち以下の要因コンポーネント判定条件を満たすコンポーネントが探索される。
・F-[NetTx]かつF+[NetRx]かつ∃r.F-[r]
-[NetTx]は、コンポーネントのネットワーク送信レートの要因度符号が「負」であることを示している。F+[NetRx]は、コンポーネントのネットワーク受信レートの要因度符号が「正」であることを示している。∃r.F-[r]は、コンポーネントのネットワーク受信レート、ネットワーク送信レート以外のコンポーネントのメトリックのなかに、要因度符号が「正」のメトリックが少なくとも1つ存在することを示している。
異常要因推定部155は、上記の要因コンポーネント判定条件を満たすメトリックを、要因メトリックと推定する。図18の例では、「コンポーネントA」が要因コンポーネント判定条件を満たしており、「コンポーネントA」が要因コンポーネントと推定される。
要因コンポーネント判定条件を満たすコンポーネントが見つからない場合、異常要因推定部155は、サーバについても、メトリック種別ごとの要因度を計算する。そして異常要因推定部155は、サーバのメトリック種別それぞれについて、正の要因度と負の要因度とを比較する。異常要因推定部155は、正の要因度が負の要因度以上であれば、そのメトリック種別の要因度符号を「正」とする。異常要因推定部155は、正の要因度が負の要因度未満であれば、そのメトリック種別の要因度符号を「負」とする。
そして、異常要因推定部155は、コンテナ稼働サーバの要因メトリックの要因度符号を、サーバ要因度符号とする。
図19は、サーバ要因度符号の判定例を示す図である。図19の例では、コンテナ稼働サーバ「サーバ1」の要因メトリック「CPU使用率」の要因度符号は正であるため、サーバ要因度符号は「正」となる。
なおサーバの要因度についても、コンテナと同じ手順で計算することができるが、サーバについては、各メトリック種別の要因度符号が判明すればよい。そこで例えば、正の要因度と負の要因度とを分けずに、メトリック種別の要因度を以下の式で計算してもよい。
・要因度F=Σ(PパーセンタイルのPの増分)×(パーセンタイル値の差)
このときのパーセンタイル値の差は、正常値のパーセンタイル値から異常時のパーセンタイル値を減算した値である。このようにして計算した要因度Fが0以上の値であれば、要因度符号は「正」である。要因度Fが負の値であれば、要因度符号は「負」である。
異常要因推定部155が、要因コンポーネント、要因メトリック、最大要因符号、およびサーバ要因度符号を決定すると、コンテナ配置制御部156が、レイテンシを改善するようにコンテナの追加、またはコンテナの配置先の変更などの性能改善処理を行う。
コンテナ配置制御部156は、例えば、コンテナ要因度符号が「正」の場合、要因コンポーネントのリソースが不足していると判断し、要因コンポーネントのスケールアウトを行う。またコンテナ配置制御部156は、要因コンポーネントの要因度が負の場合であり、かつサーバ要因度符号が「正」の場合、要因コンポーネント以外のコンポーネントによるリソースの負荷が大きい影響で、要因コンポーネントの性能が低下していると判断する。この場合、コンテナ配置制御部156は、コンテナの配置変換を行う。コンテナの配置変換は、コンテナを稼働させるサーバを、別のサーバに変更する処理である。
なお、コンポーネントのコンテナが使用するリソース量が規定されている場合がある。この場合、コンテナ配置制御部156は、コンポーネントのスケールアウトまたは配置変換のとき、コンテナを収容できるサーバを配置先候補とする。配置先候補となるサーバが複数ある場合、コンテナ配置制御部156は、コンテナが各配置先候補に配備されたと仮定したとき、サーバの最小残余リソース量が最大となる配置先候補を、配置先に決定する。
図20は、コンテナの配置例を示す図である。図20の例では、要因コンポーネントが「コンポーネント1」であり、コンテナ要因度符号が「正」である。この場合、コンテナ配置制御部156は、「コンポーネント1」のスケールアウトを行う。
このときコンテナ配置制御部156は、サーバリソース管理テーブル142を参照し、各サーバの残余リソース量を確認する。図20の例では、「サーバ1」の残余リソース量は、CPU「50」、メモリ「30」、ネットワーク「40」である。「サーバ2」の残余リソース量は、CPU「30」、メモリ「50」、ネットワーク「60」である。
またコンテナ配置制御部156は、コンテナリソース管理テーブル143を参照し、要因コンポーネントのコンテナ1つ当たりに使用するリソース量を確認する。図20の例では、要因コンポーネントである「コンポーネント1」のコンテナの使用リソースは、CPU「10」、メモリ「20」、ネットワーク「10」である。
ここで「コンポーネント1」のコンテナを配置できるだけの残余リソース量を有しているサーバが、サーバ名「サーバ1」のサーバ42と、サーバ名「サーバ2」のサーバ43のみであるものとする。この場合、サーバ42とサーバ43とが、配置先候補となる。
サーバ名「サーバ1」のサーバ42にコンテナを配置した場合の残余リソース量は、CPU「40」、メモリ「10」、ネットワーク「30」である。サーバ名「サーバ2」のサーバ43にコンテナを配置した場合の残余リソース量は、CPU「20」、メモリ「30」、ネットワーク「50」である。この場合、サーバ名「サーバ1」のサーバ42の最小残余リソース量は、メモリの「10」である。それに対して、サーバ名「サーバ2」のサーバ43の最小残余リソース量は、CPU「20」である。
コンテナ配置制御部156は、最小残余リソース量が最大となる、サーバ名「サーバ2」のサーバ43を配置先として選択する。そしてコンテナ配置制御部156は、サーバ43に、スケールアウト処理として、「コンポーネント1」を実行するためのコンテナC13を配置する。
コンテナ配置制御部156は、Apdex値が目標値に達するまで、性能調整を継続する。そして、コンテナ配置制御部156は、Apdex値が目標値に達すると、性能調整を終了する。
図21は、性能調整結果の一例を示す図である。図21の例では、Apdex値の目標値は0.8以上である。性能調整前はApdex値が「0.75」であったのが、性能調整を行うことで、Apdex値が「0.83」まで向上している。
次に性能調整処理の手順について詳細に説明する。
図22は、性能調整処理の手順の一例を示すフローチャートである。なお図22に示す処理は、1つのサービスについて性能調整を行う場合の処理である。複数のサービスについて性能調整を行う場合、図22に示す処理が、複数のサービスそれぞれについて実行される。以下、図22に示す処理をステップ番号に沿って説明する。
[ステップS101]性能調整エンジン150は、例えば管理者により、サービスの性能調整処理の開始指示の入力が行われると、繰り返し回数を示す変数Rの値を「0」に初期化する。
[ステップS102]レイテンシ検査部153は、性能調整対象のサービスについてのサービス情報と、そのサービスのレイテンシとを取得する。例えばレイテンシ検査部153は、サービス情報記憶部110からサービス情報を取得する。取得するサービス情報には、性能要件として指定されているApdexの値、Apdexの算出に用いるSatisfied Time(T)が含まれる。またレイテンシ検査部153は、ゲートウェイ41のレイテンシ記憶部41bから、直近の所定期間内に計測された、性能調整対象のサービスに対するリクエストのレイテンシを取得する。
[ステップS103]レイテンシ検査部153は、複数のリクエストのレイテンシに基づいて、サービスのApdexを計算する。
[ステップS104]レイテンシ検査部153は、ステップS103で計算したApdexの値が、性能要件を満たしているか否かを判断する。例えばレイテンシ検査部153は、算出したApdex値が性能要件として指定されたApdex値以上であれば、性能要件を満たしていると判断する。レイテンシ検査部153は、性能要件を満たしている場合、処理をステップS105に進める。またレイテンシ検査部153は、性能要件を満たしていない場合、処理をステップS107に進める。
[ステップS105]振る舞い計算部154は、コンテナとサーバとの正常時の振る舞いを計算して、正常時振る舞い記憶部130に保存する。例えば振る舞い計算部154は、メトリック情報記憶部120から、コンテナとサーバとの直近の所定期間分のメトリックの値を取得し、複数のパーセンタイル種別についてのパーセンタイル値を計算する。そして振る舞い計算部154は、コンテナのパーセンタイル値を設定したコンテナ振る舞い管理テーブルを、そのコンテナの正常時の振る舞いを示す情報として、正常時振る舞い記憶部130に格納する。また振る舞い計算部154は、サーバのパーセンタイル値を設定したサーバ振る舞い管理テーブルを、そのサーバの正常時の振る舞いを示す情報として、正常時振る舞い記憶部130に格納する。
[ステップS106]性能調整エンジン150は、繰り返し回数を示す変数Rを「0」にリセットする。その後、性能調整エンジン150は、処理をステップS102に進める。
[ステップS107]性能調整エンジン150は、繰り返し回数を示す変数Rの値が、閾値X(Xは、1以上の整数)に達したか否かを判断する。性能調整エンジン150は、繰り返し回数が閾値Xに達した場合、性能調整を断念し、処理を終了する。またコンテナ配置制御部156は、繰り返し回数が閾値Xに達していなければ、処理をステップS108に進める。
[ステップS108]振る舞い計算部154は、コンテナとサーバとの異常時の振る舞いを計算する。例えば振る舞い計算部154は、メトリック情報記憶部120から、コンテナとサーバとの直近の所定期間分のメトリックの値を取得し、複数のパーセンタイル種別についてのパーセンタイル値を計算する。複数のコンテナそれぞれについて算出したパーセンタイル値が、対応するコンテナの異常時の振る舞いを示す情報である。また複数のサーバそれぞれについて算出したパーセンタイル値が、対応するサーバの異常時の振る舞いを示す情報である。
[ステップS109]異常要因推定部155は、性能調整対象のサービスの提供に使用されるコンポーネントを実行するコンテナの正常時と異常時との振る舞いの差を、メトリック種別ごとに計算する。例えば異常要因推定部155は、正常時振る舞い記憶部130から重み付きパーセンタイル値を取得する。次に異常要因推定部155は、正常時の振る舞いを示す重み付きパーセンタイル値と、ステップS108で計算した異常時の振る舞いを示すパーセンタイル値とを比較して、メトリック種別ごとに正の要因度と負の要因度を計算する。
[ステップS110]異常要因推定部155は、ステップS109における計算結果に基づいて、要因コンポーネント推定処理を行う。要因コンポーネント推定処理の詳細は後述する(図23参照)。
[ステップS111]異常要因推定部155は、要因コンポーネントが推定できたか否かを判断する。異常要因推定部155は、要因コンポーネントが推定できた場合、処理をステップS112に進める。また異常要因推定部155は、要因コンポーネントが推定できなかった場合、処理をステップS113に進める。
[ステップS112]コンテナ配置制御部156は、要因コンポーネントのスケールアウトを実施する。すなわちコンテナ配置制御部156は、要因コンポーネントを実行するコンテナを、いずれかのサーバに追加で配置する。例えばコンテナ配置制御部156は、コンテナを配置可能なサーバのうち、配置後の空きリソース量が最も多いサーバに、コンテナを配置する。その後、コンテナ配置制御部156は、処理をステップS115に進める。
[ステップS113]コンテナ配置制御部156は、要因度最大コンポーネントのサーバ要因度符号が「正」か否かを判断する。コンテナ配置制御部156は、サーバ要因度符号が「正」の場合、処理をステップS114に進める。またコンテナ配置制御部156は、サーバ要因度符号が負の場合、性能調整を断念し、処理を終了する。
[ステップS114]コンテナ配置制御部156は、コンテナの配置変更を行う。すなわちコンテナ配置制御部156は、要因度が最大のコンテナの配置先を、現在のサーバから別のサーバに変更する。
[ステップS115]性能調整エンジン150は、繰り返し回数を示す変数Rの値を1だけカウントアップし、処理をステップS102に進める。
次に、要因コンポーネント推定処理について詳細に説明する。
図23は、要因コンポーネント推定処理の手順の一例を示すフローチャートである。以下、図23に示す処理をステップ番号に沿って説明する。
[ステップS121]異常要因推定部155は、要因度最大コンポーネントを特定する。例えば異常要因推定部155は、値が最大となる正または負の要因度の算出元のコンテナを特定する。そして異常要因推定部155は、特定したコンテナによって処理が実行されているコンポーネントを、要因最大コンポーネントとして特定する。
[ステップS122]異常要因推定部155は、コンテナ要因度符号が「正」か否かを判断する。異常要因推定部155は、コンテナ要因度符号が「正」であれば、処理をステップS123に進める。また異常要因推定部155は、コンテナ要因度符号が「負」であれば、処理をステップS124に進める。
[ステップS123]異常要因推定部155は、要因度最大コンポーネントを要因コンポーネントと推定し、要因コンポーネント推定処理を終了する。
[ステップS124]異常要因推定部155は、要因度最大コンポーネント以外のコンポーネントのうち、未選択のコンポーネントを1つ選択する。
[ステップS125]異常要因推定部155は、選択したコンポーネントの受信メトリック(ネットワーク受信レート)の要因度符号が「正」か否かを判断する。例えば異常要因推定部155は、選択したコンポーネントの各コンテナのネットワーク受信レートの負の要因度の合計よりも正の要因度の合計の方が大きければ、受信メトリックの要因度が「正」であると判断する。異常要因推定部155は、受信メトリックの要因度符号が「正」の場合、処理をステップS126に進める。また異常要因推定部155は、受信メトリックの要因度符号が「正」ではない場合、処理をステップS129に進める。
[ステップS126]異常要因推定部155は、選択したコンポーネントの送信メトリック(ネットワーク送信レート)の要因度符号が「負」か否かを判断する。例えば異常要因推定部155は、選択したコンポーネントの各コンテナのネットワーク送信レートの正の要因度の合計よりも負の要因度の合計の方が大きければ、送信メトリックの要因度符号が「負」であると判断する。異常要因推定部155は、送信メトリックの要因度符号が「負」の場合、処理をステップS127に進める。また異常要因推定部155は、送信メトリックの要因度符号が「負」ではない場合、処理をステップS129に進める。
[ステップS127]異常要因推定部155は、選択したコンポーネントの送信メトリックおよび受信メトリック以外のメトリックの中に、要因度符号が「正」のメトリックが少なくとも1つ存在するか否かを判断する。例えば異常要因推定部155は、選択したコンポーネントの各コンテナの正の要因度と負の要因度とを、メトリックの種別ごとに合計する。そして異常要因推定部155は、正の要因度の合計値の方が、負の要因度の合計値よりも大きいメトリックについて、そのメトリックの要因度符号が「正」であると判定する。異常要因推定部155は、要因度符号が「正」のメトリックが少なくとも1つ存在する場合、処理をステップS128に進める。また異常要因推定部155は、要因度符号が「正」のメトリックが存在しない場合、処理をステップS129に進める。
[ステップS128]異常要因推定部155は、選択したコンポーネントを要因コンポーネントと推定し、その後、要因コンポーネント推定処理を終了する。
[ステップS129]異常要因推定部155は、未選択のコンポーネントがあるか否かを判断する。異常要因推定部155は、未選択のコンポーネントがある場合、処理をステップS124に進める。また異常要因推定部155は、すべてのコンポーネントが選択済みであれば、要因コンポーネントを推定できないと判断して、要因コンポーネント推定処理を終了する。
このようにして、第2の実施の形態では、コンテナの正常時と異常時との振る舞いの差に基づいて、レイテンシ悪化の要因となっているコンポーネントを判断している。これにより、レイテンシ悪化の要因のコンポーネントを適切に判断することができる。例えば、あるコンテナのメトリック値が通常時よりも極端に低下した場合、そのコンテナで処理が実行されるコンポーネントとは別のコンポーネントにおいて、処理が停滞している可能性がある。このような場合であっても、管理サーバ100は、過負荷により処理を停滞させているコンポーネントを見つけ出すことで、性能低下の真の要因となっているコンポーネントを正しく判断することができる。
しかも第2の実施の形態によれば、コンポーネントごとの性能要件を定めなくても、コンポーネントの性能が不足した場合、コンポーネントの機能が自動で拡張される。その結果、例えばシステムの運用管理コストが削減される。またコンポーネントの性能調整が自動で行われることにより、コンポーネントの開発時にそのコンポーネントの発揮性能を意識せずにすみ、開発コストが削減される。
なお、第2の実施の形態では、メトリックの度数分布からパーセンタイル値を求めることで、メトリックの度数分布で示される状態が、比較容易な数値に置き換えられている。これにより、正常時と異常時との振る舞いの差を数値化でき、複数のコンテナの中から、振る舞いの差が最も大きいコンテナを容易に特定可能となっている。
さらに第2の実施の形態では、重み付きパーセンタイル値を用いることで、正常時の状態に対して、最近の状態を強く反映させている。これにより、正常時の振る舞いを正しく計算することができる。すなわち、クラウドコンピューティングシステムでは、サーバの追加やソフトウェアの追加などのシステム構成の変更が頻繁に行われる。そのため、コンテナやサーバの遠い過去の正常時の振る舞いは、最近の正常時の振る舞いと大きく異なる可能性がある。また、最近の短い期間の振る舞いを正常時の振る舞いとしてしまうと、ある一時期に発生した特殊要因(例えばサーバ故障)などが振る舞いに反映されてしまい、正常時の振る舞いとしての正確性に欠ける。そこで性能調整エンジン150は、最近の正常時の振る舞いを強く反映させて、ある程度長い期間の振る舞いに基づいて正常時の振る舞いを計算している。その結果、正常時の振る舞いの正確性が向上する。
なお、性能劣化の要因となっているコンポーネントを推定できない場合もある。この場合、性能調整エンジン150は、コンテナの配置変更により、コンテナを何らかの問題を抱えたサーバから別のサーバに移動させ、コンテナが正しく性能を発揮できるようにしている。これにより、無駄なスケールアウトによるリソースの過大消費が抑止される。
〔その他の実施の形態〕
第2の実施の形態では、リソースのメトリック情報の代表値としてパーセンタイル値を用いているが、平均値、中央値などの他の代表値を用いてもよい。
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
1 サービス
2〜4 サーバ
5 端末装置
10 管理装置
11 記憶部
12 処理部

Claims (5)

  1. コンピュータに、
    複数の処理を連係させることで提供されるサービスの性能を示す性能情報を取得し、
    前記性能情報が、前記サービスに求められる性能を示す性能要件を満たしているか否かを判断し、
    前記性能情報が前記性能要件を満たしていない場合、前記複数の処理それぞれについての、直近の所定期間における、データ受信負荷を示す第1負荷直近値、データ送信負荷を示す第2負荷直近値、および受信したデータに応じた処理負荷を示す第3負荷直近値を取得し、
    前記複数の処理それぞれについての、前記サービスの性能が前記性能要件を満たしているときの、データ受信負荷を示す第1負荷正常値、データ送信負荷を示す第2負荷正常値、および受信したデータに応じた処理負荷を示す第3負荷正常値を、メモリから取得し、
    前記第1負荷直近値が前記第1負荷正常値より大きく、前記第2負荷直近値が前記第2負荷正常値より小さく、前記第3負荷直近値が前記第3負荷正常値より大きいという要件に合致する要件合致処理の処理名を、前記サービスの性能悪化要因として出力する、
    処理を実行させる性能評価プログラム。
  2. 前記要件合致処理の処理名の出力では、前記複数の処理のうち、直近の処理負荷と正常時の処理負荷との差が最も大きい負荷差最大処理を判断し、前記負荷差最大処理の正常時の処理負荷の方が直近の処理負荷より大きい場合に、前記要件合致処理の処理名を、前記サービスの性能悪化要因となっている要件合致処理として出力する、
    請求項1記載の性能評価プログラム。
  3. 前記要件合致処理の処理名の出力では、前記負荷差最大処理の直近の処理負荷の方が正常時の処理負荷より大きい場合、前記負荷差最大処理の処理名を、前記サービスの性能悪化要因として出力する、
    請求項2記載の性能評価プログラム。
  4. 前記コンピュータに、さらに、
    前記負荷差最大処理の正常時の処理負荷の方が直近の処理負荷より大きく、前記要件合致処理が存在しない場合、前記負荷差最大処理を実行しているサーバについて、前記サービスの性能が前記性能要件を満たしていないときの負荷が、前記サービスの性能が前記性能要件を満たしているときの負荷よりも大きい場合、前記サーバのサーバ名を、前記サービスの性能悪化要因として出力する、
    請求項2または3記載の性能評価プログラム。
  5. コンピュータが、
    複数の処理を連係させることで提供されるサービスの性能を示す性能情報を取得し、
    前記性能情報が、前記サービスに求められる性能を示す性能要件を満たしているか否かを判断し、
    前記性能情報が前記性能要件を満たしていない場合、前記複数の処理それぞれについての、直近の所定期間におけるデータ受信負荷を示す第1負荷直近値、前記所定期間におけるデータ送信負荷を示す第2負荷直近値、および前記所定期間における受信したデータに応じた処理負荷を示す第3負荷直近値を取得し、
    前記複数の処理それぞれについての、前記サービスの性能が前記性能要件を満たしているときの、データ受信負荷を示す第1負荷正常値、データ送信負荷を示す第2負荷正常値、および受信したデータに応じた処理負荷を示す第3負荷正常値を、メモリから取得し、
    前記第1負荷直近値が前記第1負荷正常値より大きく、前記第2負荷直近値が前記第2負荷正常値より小さく、前記第3負荷直近値が前記第3負荷正常値より大きいという要件に合致する要件合致処理の処理名を、前記サービスの性能悪化要因として出力する、
    性能評価方法。
JP2018018215A 2018-02-05 2018-02-05 性能評価プログラム、および性能評価方法 Active JP7004902B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018018215A JP7004902B2 (ja) 2018-02-05 2018-02-05 性能評価プログラム、および性能評価方法
US16/239,594 US10819603B2 (en) 2018-02-05 2019-01-04 Performance evaluation method, apparatus for performance evaluation, and non-transitory computer-readable storage medium for storing program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018018215A JP7004902B2 (ja) 2018-02-05 2018-02-05 性能評価プログラム、および性能評価方法

Publications (2)

Publication Number Publication Date
JP2019135598A true JP2019135598A (ja) 2019-08-15
JP7004902B2 JP7004902B2 (ja) 2022-01-21

Family

ID=67475855

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018018215A Active JP7004902B2 (ja) 2018-02-05 2018-02-05 性能評価プログラム、および性能評価方法

Country Status (2)

Country Link
US (1) US10819603B2 (ja)
JP (1) JP7004902B2 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11082287B2 (en) * 2019-03-11 2021-08-03 At&T Intellectual Property I, L.P. Data driven systems and methods to isolate network faults
US11243712B2 (en) * 2019-06-28 2022-02-08 Hewlett Packard Enterprise Development Lp Local analytics for high-availability storage systems
US11093360B2 (en) * 2019-07-24 2021-08-17 International Business Machines Corporation Multivariate anomaly detection and identification
US11561706B2 (en) * 2019-11-20 2023-01-24 International Business Machines Corporation Storage allocation enhancement of microservices based on phases of a microservice run
GB2589594B (en) * 2019-12-03 2023-10-11 Siemens Ind Software Inc Detecting anomalous latent communications in an integrated circuit chip
CN113590017B (zh) * 2020-04-30 2023-11-17 伊姆西Ip控股有限责任公司 用于处理数据的方法、电子设备和计算机程序产品
CN113676365B (zh) * 2020-05-13 2022-10-11 北京达佳互联信息技术有限公司 一种访问请求的处理方法、装置及电子设备
JP2021196970A (ja) * 2020-06-16 2021-12-27 富士通株式会社 遅延原因特定方法および遅延原因特定プログラム
JP2022017686A (ja) * 2020-07-14 2022-01-26 富士通株式会社 コンテナ配備先クラスタ決定方法、コンテナ配備先クラスタ決定装置及びコンテナ配備先クラスタ決定システム
WO2022018466A1 (en) * 2020-07-22 2022-01-27 Citrix Systems, Inc. Determining server utilization using upper bound values
US11669257B2 (en) * 2021-10-08 2023-06-06 Hewlett Packard Enterprise Development Lp Container management in a storage system

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005018103A (ja) * 2003-06-23 2005-01-20 Nec Corp 性能向上サービス提供システムおよび性能向上サービス提供方法
JP2011154483A (ja) * 2010-01-26 2011-08-11 Fujitsu Ltd 異常検出装置、プログラム、及び異常検出方法
JP2011258098A (ja) * 2010-06-11 2011-12-22 Hitachi Ltd 仮想計算機システム、仮想計算機システムの監視方法及びネットワーク装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4151985B2 (ja) 2006-07-19 2008-09-17 インターナショナル・ビジネス・マシーンズ・コーポレーション 異常の生じた情報処理装置を検出する技術
US8381208B2 (en) 2009-06-11 2013-02-19 International Business Machines Corporation Tracking application installation among a plurality of client devices
US8978035B2 (en) * 2012-09-06 2015-03-10 Red Hat, Inc. Scaling of application resources in a multi-tenant platform-as-a-service environment in a cloud computing system
US10594562B1 (en) 2015-08-25 2020-03-17 Vmware, Inc. Intelligent autoscale of services
US10158726B2 (en) * 2015-12-02 2018-12-18 International Business Machines Corporation Supporting high availability for orchestrated services
JP2017138895A (ja) 2016-02-05 2017-08-10 株式会社日立製作所 仮想化環境管理システムおよび仮想化環境管理方法
JP2017219972A (ja) * 2016-06-06 2017-12-14 富士通株式会社 コンピュータプログラム、情報処理方法、管理ノードおよび情報処理システム
US10382291B2 (en) * 2017-04-26 2019-08-13 Oracle International Corporation Provisioning framework for binding related cloud services
US10523507B2 (en) * 2017-05-11 2019-12-31 Nirmata, Inc. Method and system for tuning performance of microservices-based applications

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005018103A (ja) * 2003-06-23 2005-01-20 Nec Corp 性能向上サービス提供システムおよび性能向上サービス提供方法
JP2011154483A (ja) * 2010-01-26 2011-08-11 Fujitsu Ltd 異常検出装置、プログラム、及び異常検出方法
JP2011258098A (ja) * 2010-06-11 2011-12-22 Hitachi Ltd 仮想計算機システム、仮想計算機システムの監視方法及びネットワーク装置

Also Published As

Publication number Publication date
JP7004902B2 (ja) 2022-01-21
US10819603B2 (en) 2020-10-27
US20190245766A1 (en) 2019-08-08

Similar Documents

Publication Publication Date Title
JP7004902B2 (ja) 性能評価プログラム、および性能評価方法
US10896055B2 (en) Capacity risk management for virtual machines
US10225333B2 (en) Management method and apparatus
US10887199B2 (en) Performance adjustment method, apparatus for performance adjustment, and non-transitory computer-readable storage medium for storing program
US10411969B2 (en) Backend resource costs for online service offerings
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
US20160117199A1 (en) Computing system with thermal mechanism and method of operation thereof
US20160006640A1 (en) Management computer, allocation management method, and non-transitory computer readable storage medium
JP4151985B2 (ja) 異常の生じた情報処理装置を検出する技術
JP2018136681A (ja) 性能管理プログラム、性能管理方法、および管理装置
US20110191094A1 (en) System and method to evaluate and size relative system performance
US10977108B2 (en) Influence range specifying method, influence range specifying apparatus, and storage medium
JP6940761B2 (ja) 情報処理装置、仮想マシン監視プログラム、および情報処理システム
JP2009193205A (ja) 自動チューニングシステム、自動チューニング装置、自動チューニング方法
US8752038B1 (en) Reducing boot time by providing quantitative performance cost data within a boot management user interface
US10983837B2 (en) Method and apparatus for load estimation
CN111506422A (zh) 事件分析方法及系统
JP2021092934A (ja) 分析装置、分析プログラムおよびコンピュータシステム
US20230297459A1 (en) Computer-readable recording medium storing analysis program, analysis method, and information processing system
JP2018190333A (ja) サーバ制御システム及びサーバ制御方法
US20230136244A1 (en) Virtual machine connection control device, virtual machine connection control system, virtual machine connection control method, and program
JP2019133246A (ja) 順序制御プログラム、順序制御方法、及び情報処理装置
CN115357467A (zh) 一种网络应用程序的监测方法及装置
CN115883419A (zh) 探针测试方法、装置、电子设备和存储介质
CN116541190A (zh) 分布式集群的性能测试方法及系统、存储介质和电子设备

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201110

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20201126

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20201126

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20211013

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20211130

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211213

R150 Certificate of patent or registration of utility model

Ref document number: 7004902

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150