JP6960444B2 - 計算機システム及びリソース管理方法 - Google Patents

計算機システム及びリソース管理方法 Download PDF

Info

Publication number
JP6960444B2
JP6960444B2 JP2019213270A JP2019213270A JP6960444B2 JP 6960444 B2 JP6960444 B2 JP 6960444B2 JP 2019213270 A JP2019213270 A JP 2019213270A JP 2019213270 A JP2019213270 A JP 2019213270A JP 6960444 B2 JP6960444 B2 JP 6960444B2
Authority
JP
Japan
Prior art keywords
service
request
resource
related service
control unit
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.)
Active
Application number
JP2019213270A
Other languages
English (en)
Other versions
JP2021086279A (ja
Inventor
諒 上西
沢希 黒田
裕志 早川
昌司 夜久
裕辰 坂田
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2019213270A priority Critical patent/JP6960444B2/ja
Priority to US17/007,106 priority patent/US20210158248A1/en
Publication of JP2021086279A publication Critical patent/JP2021086279A/ja
Application granted granted Critical
Publication of JP6960444B2 publication Critical patent/JP6960444B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • G06Q10/06312Adjustment or analysis of established resource schedule, e.g. resource or task levelling, or dynamic rescheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/57Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
    • G06F7/575Basic arithmetic logic units, i.e. devices selectable to perform either addition, subtraction or one of several logical operations, using, at least partially, the same circuitry
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • G06Q10/06315Needs-based resource requirements planning or analysis

Landscapes

  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Engineering & Computer Science (AREA)
  • Economics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Strategic Management (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Tourism & Hospitality (AREA)
  • Development Economics (AREA)
  • Quality & Reliability (AREA)
  • Marketing (AREA)
  • Game Theory and Decision Science (AREA)
  • General Business, Economics & Management (AREA)
  • Educational Administration (AREA)
  • Operations Research (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、マイクロサービスにおけるリソースの割当の管理方法に関する。
近年、複数のサービスを組み合わせて任意の機能を実現するシステム(マイクロサービス)の利用が広がっている。一般的に、サービスはコンテナ技術を用いて実現されている。コンテナ技術は、一つの物理計算機のリソースを利用して複数のアプリケーションを稼働させる仮想化技術の一つであり、一つの物理計算機で稼働するOS(Operating System)上に隔離されたアプリケーションの実行環境を提供する技術である。本明細書では、隔離されたアプリケーションの実行環境をコンテナと記載する。コンテナは軽量かつ起動が高速という特徴を有する。
マイクロサービスでは、コンテナの特徴を利用して、サービスの負荷に応じてコンテナの数を調整することによって、負荷の分散及びリソースの効率的な利用を実現している。
物理計算機のリソースを利用して複数のアプリケーションを実行するシステムにおいて、負荷に応じてリソースの割当てを変更する技術として特許文献1及び特許文献2に記載の技術が知られている。
特許文献1には、「コンピュータプログラムは、複数の処理を負荷分散して実行する処理ノードの数を変更可能なコンピュータシステムに、第1の処理の負荷を監視させる。そして、コンピュータプログラムは、このコンピュータシステムに、第1の処理の負荷が第1の条件を超えるときに、第1の処理に関係する第2の処理を実行する処理プログラムを第2の処理を実行するために増加される処理ノードにネットワークを通じて転送することを実行させる。」ことが記載されている。
特許文献2には、「負荷情報収集部は、物理サーバと仮想サーバの負荷を収集して、各負荷を採取した時間に対応づけて、負荷情報として負荷情報テーブルに格納し、類似負荷情報選択部は、管理対象の負荷がスケールアウト閾値またはスケールイン閾値から外れたときに、現在時刻の負荷に類似する過去の負荷情報を負荷情報テーブルから選択し、スケールアウト判断部またはスケールイン判断部は、選択された負荷情報に従って管理対象の負荷が変化すると仮定して、管理対象の負荷が、その後も、いずれかの閾値から外れると予測したときには、スケールアウトまたはスケールインを実行する。」ことが記載されている。
特開2017−219972号公報 特開2011−118525号公報
特許文献1の記載の技術では、負荷の増大を契機に処理ノードが追加されているため、サービスへの影響が顕在化する前にスケールアウト等の対処(サービスに対するリソースの割当量の変更)ができない。特許文献2に記載の技術では、過去の負荷に関する履歴に基づいて負荷を予測しているため、突発的な負荷の増大等、履歴に存在しない負荷変動に対応できない。
本発明では、様々な状況下において、サービスへの影響が顕在化する前に、サービスに対するリソースの割当量を変更するための技術を提供する。
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、演算装置、前記演算装置に接続される記憶装置、及び前記演算装置に接続され、外部装置に接続するための接続装置を有する、複数の計算機を備える計算機システムであって、少なくとも一つの前記計算機を含み、リクエストに対応する機能を提供する複数のサービスが稼働する業務システムを含み、前記サービスに対する前記業務システムのリソースの割当量を変更するためのスケジュールを生成する制御部と、前記スケジュールに基づいて、前記サービスに対する前記リソースの割当量を変更する割当変更部と、を備え、前記制御部は、処理を開始するためのリクエストの受付を検知した場合、前記検知されたリクエストの受付数を算出し、前記検知されたリクエストの受付を契機に実行される関連サービスを特定し、前記検知されたリクエストの受付数に基づいて、前記関連サービスの負荷を示す指標の予測値を算出し、前記関連サービスの前記指標の予測値に基づいて、前記リソースの割当量を変更する必要がある前記関連サービスを決定し、前記決定された関連サービスの前記スケジュールを生成する。
本発明によれば、様々な状況下において、サービスへの影響が顕在化する前に、サービスに対するリソースの割当量を変更できる。上記した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
実施例1の計算機システムの構成例を示す図である。 実施例1のサーバのハードウェア構成の一例を示す図である。 実施例1の管理サーバのハードウェア構成の一例を示す図である。 実施例1のサービス構成管理情報のデータ構造の一例を示す図である。 実施例1のリクエスト経路管理情報のデータ構造の一例を示す図である。 実施例1のリクエスト負荷特徴情報のデータ構造の一例を示す図である。 実施例1のサービス負荷特徴情報のデータ構造の一例を示す図である。 実施例1の閾値管理情報のデータ構造の一例を示す図である。 実施例1の処理ノード性能情報のデータ構造の一例を示す図である。 実施例1のサーバ性能情報のデータ構造の一例を示す図である。 実施例1の検知リクエスト情報のデータ構造の一例を示す図である。 実施例1のサービス実行情報のデータ構造の一例を示す図である。 実施例1の管理サーバが実行する処理の概要を説明するフローチャートである。 実施例1の管理サーバによって生成されるターゲットリクエスト一覧のデータ構造の一例を示す図である。 実施例1の負荷予測部が実行するスケジュール生成処理の一例を説明するフローチャートである。 実施例1の負荷予測部が実行する負荷予測処理の一例を説明するフローチャートである。 実施例1の負荷予測部によって生成される予測値情報のデータ構造の一例を示す図である。 実施例1の負荷予測部が実行する最大使用量算出処理の一例を説明するフローチャートである。 実施例1の負荷予測部が実行する対処判定処理の一例を説明するフローチャートである。 実施例1の負荷予測部が実行するスケールアウトスケジュール生成処理の一例を説明するフローチャートである。 実施例1の負荷予測部によって生成されるスケールアウトスケジュール情報のデータ構造の一例を示す図である。 実施例1の負荷予測部が実行するスケールインスケジュール生成処理の一例を説明するフローチャートである。 実施例1の負荷予測部によって生成されるスケールインスケジュール情報のデータ構造の一例を示す図である。 実施例1の割当変更部が実行するリソース割当変更処理の一例を説明するフローチャートである。 実施例1の割当変更部が実行するスケールアウトの一例を説明するフローチャートである。 実施例1の割当変更部が実行するスケールインの一例を説明するフローチャートである。 実施例1の管理サーバ制御部が実行するリクエスト経路管理情報の更新処理の一例を説明するフローチャートである。 実施例1の管理サーバ制御部によって生成されるリクエスト関連マップのデータ構造の一例を示す図である。 実施例1の管理サーバ制御部が実行するサービス負荷特徴情報の更新処理の一例を説明するフローチャートである。 実施例1の管理サーバ制御部によって生成される負荷解析情報のデータ構造の一例を示す図である。
以下、本発明の実施例を、図面を用いて説明する。ただし、本発明は以下に示す実施例の記載内容に限定して解釈されるものではない。本発明の思想ないし趣旨から逸脱しない範囲で、その具体的構成を変更し得ることは当業者であれば容易に理解される。
以下に説明する発明の構成において、同一又は類似する構成又は機能には同一の符号を付し、重複する説明は省略する。
本明細書等における「第1」、「第2」、「第3」等の表記は、構成要素を識別するために付するものであり、必ずしも、数又は順序を限定するものではない。
図面等において示す各構成の位置、大きさ、形状、及び範囲等は、発明の理解を容易にするため、実際の位置、大きさ、形状、及び範囲等を表していない場合がある。したがって、本発明では、図面等に開示された位置、大きさ、形状、及び範囲等に限定されない。
図1は、実施例1の計算機システムの構成例を示す図である。図2Aは、実施例1のサーバ103のハードウェア構成の一例を示す図である。図2Bは、実施例1の管理サーバ100のハードウェア構成の一例を示す図である。
計算機システムは、管理サーバ100、管理クライアント101、及び業務システム102を含む。管理サーバ100、管理クライアント101、及び業務システム102は、ネットワーク104を介して互いに接続される。ネットワーク104は、LAN(Local Area Network)及びWAN(Wide Area Network)等であり、接続方式は有線又は無線のいずれでもよい。
業務システム102は、リクエストに対応する任意の機能を提供するサービス群を実現するためのリソースを提供する基盤である。業務システム102は、複数のサーバ103を含む。なお、業務システム102は、ストレージシステム及びネットワークスイッチ等、図示しない装置を含んでもよい。
サーバ103は、任意のサービスを実行する処理ノード140を実現するためのリソースを提供する計算機である。処理ノード140は、例えば、コンテナ及び仮想計算機である。一つのサービスに対して一つ以上の処理ノード140が存在する。なお、複数のサーバ103に、同一のサービスを実行する処理ノード140が存在してもよい。
サーバ103は、プロセッサ200、メモリ201、ネットワークインタフェース202、及びストレージ装置203を有する。各ハードウェアはバスを介して互いに接続される。
プロセッサ200は、メモリ201に格納されるプログラムを実行する。プロセッサ200がプログラムにしたがって処理を実行することによって、特定の機能を実現するモジュールとして動作する。以下の説明では、モジュールを主語に処理を説明する場合、プロセッサ200が当該モジュールを実現するプログラムを実行していることを示す。
メモリ201は、プロセッサ200が実行するプログラム及びプログラムが使用する情報を格納する。また、メモリ201はプログラムが一時的に使用するワークエリアを含む。
本実施例のメモリ201は情報収集部141を実現するプログラムを格納する。情報収集部141は、サーバ103及び処理ノード140の性能に関する情報、並びに、処理ノード140の処理状態等、各種情報を収集する。メモリ201には、OS及び処理ノード140を管理する仮想化部等を実現するプログラムも格納されるが省略している。
ストレージ装置203は、HDD(Hard Disk Drive)及びSSD(Solid State Drive)等の記憶装置であり、データを永続的に保存する。
なお、メモリ201に格納されるプログラム及び情報は、ストレージ装置203に格納されてもよい。この場合、プロセッサ200が、ストレージ装置203からプログラム及び情報を読み出し、メモリ201にロードする。
ネットワークインタフェース202は、外部の装置と通信するためのインタフェースである。
管理サーバ100は、業務システム102を管理する計算機である。なお、複数の計算機を用いて管理サーバ100が有する機能を実現してもよい。
管理サーバ100は、プロセッサ210、メモリ211、ネットワークインタフェース212、入力デバイス213、及び出力デバイス214を有する。各ハードウェアはバスを介して互いに接続される。なお、管理サーバ100は、ストレージ装置を有してもよい。
プロセッサ210、メモリ211、及びネットワークインタフェース212は、プロセッサ200、メモリ201、及びネットワークインタフェース202と同一のものである。入力デバイス213は、キーボード、マウス、及びタッチパネル等、データを入力するための装置である。出力デバイス214は、ディスプレイ及びプリンタ等、データを出力するための装置である。
メモリ211は、管理サーバ制御部110、性能情報管理部111、リクエスト監視部112、負荷予測部113、及び割当変更部114を実現するプログラムを格納する。また、メモリ211は、管理情報群120及びログ情報群121を格納する。
管理情報群120は、後述する制御に必要な各種管理情報である。ログ情報群121は、業務システム102から取得された各種ログの情報である。
管理サーバ制御部110は、管理サーバ100全体を制御する。性能情報管理部111は、サーバ103及び処理ノード140の性能に関する情報を管理する。
リクエスト監視部112は、業務システム102を用いて提供される、任意の機能を実現するサービス群の実行契機となるリクエストの受付を監視する。
負荷予測部113は、連続したリクエストの呼出しの起点となるリクエストの受付を契機に実行されるサービス群の負荷を予測し、任意のサービスに対するリソースの割当量を変更するためのスケジュールを生成する。本明細書では、連続したリクエストの呼出しの起点となるリクエストを起点リクエストと記載し、起点リクエストの受付を契機に実行されるサービスを関連サービスと記載する。
割当変更部114は、スケジュールに基づいて、任意のサービスに対するリソースの割当量を変更する。
なお、管理サーバ100が有する各モジュールについては、複数のモジュールを一つのモジュールにまとめてもよいし、一つのモジュールを機能毎に複数のモジュールに分けてもよい。例えば、管理サーバ制御部110、性能情報管理部111、リクエスト監視部112、及び負荷予測部113をまとめて、制御部としてもよい。
管理クライアント101は、業務システム102を利用して、複数のサービスから構成される機能を実現するシステム(マイクロサービス)の運用及び管理を行う端末である。管理クライアント101のハードウェア構成は管理サーバ100と同一であるため説明を省略する。
管理クライアント101のメモリには、Webブラウザ130及び管理クライアント制御部131を実現するプログラムが格納される。
次に、図3から図7を用いて管理情報群120に含まれる情報について説明する。
図3は、実施例1のサービス構成管理情報300のデータ構造の一例を示す図である。
サービス構成管理情報300は、一つのリクエストに対応する機能を提供するサービスの構成を管理するための情報である。サービス構成管理情報300は、リクエストID301、サービスID302、処理ノードID303、及びサーバID304を含むエントリを格納する。一つの処理ノード140に対して一つのエントリが存在する。
リクエストID301は、リクエストの識別情報を格納するフィールドである。サービスID302は、リクエストに対応する機能を提供するサービスの識別情報を格納するフィールドである。
処理ノードID303は、サービスを実行する処理ノード140の識別情報を格納するフィールドである。サーバID304は、処理ノード140を実現するためのリソースを提供するサーバ103の識別情報を格納するフィールドである。
図4は、実施例1のリクエスト経路管理情報400のデータ構造の一例を示す図である。
リクエスト経路管理情報400は、リクエストの呼出関係を管理するための情報である。リクエスト経路管理情報400は、リクエストID401及びリクエスト経路402を含むエントリを格納する。一つの経路に対して一つのエントリが存在する。
リクエストID401は、起点リクエストの識別情報を格納するフィールドである。リクエスト経路402は、起点リクエストの後に呼び出されるリクエストの順番(経路)を示す情報を格納するフィールドである。
本明細書では、起点リクエストの後に呼び出されるリクエストを関連リクエストと記載する。
図5は、実施例1のリクエスト負荷特徴情報500のデータ構造の一例を示す図である。
リクエスト負荷特徴情報500は、起点リクエストの受付数から、関連リクエストの受付数を算出する場合に使用される情報である。リクエスト負荷特徴情報500は、リクエストID501、関連リクエストID502、データ量503、及び関連データ量504を含むエントリを格納する。起点リクエスト、関連リクエスト、及び起点リクエストの受付数の組合せに対して一つのエントリが存在する。
リクエストID501は、起点リクエストの識別情報を格納するフィールドである。関連リクエストID502は、関連リクエストの識別情報を格納するフィールドである。
データ量503は、起点リクエストの受付数を格納するフィールドである。関連データ量504は、起点リクエストの受付数に対する関連リクエストの受付数を格納するフィールドである。
図6は、実施例1のサービス負荷特徴情報600のデータ構造の一例を示す図である。
サービス負荷特徴情報600は、サービスの負荷を算出する場合に使用される情報である。サービス負荷特徴情報600は、リクエストID601、サービスID602、データ量603、メモリ最大使用量604、及び上昇率605を含むエントリを格納する。起点リクエスト、サービス、及び起点リクエストの受付数の組合せに対して一つのエントリが存在する。
リクエストID601は、リクエストの識別情報を格納するフィールドである。サービスID602は、リクエストに対応する機能を提供するサービスの識別情報を格納するフィールドである。
データ量603は、リクエストの受付数を格納するフィールドである。メモリ最大使用量604は、サービスの実行によって使用されるメモリ201の使用量を格納するフィールドである。本実施例では、説明の簡単のために、メモリ最大使用量604のみを含むエントリを記載しているが、エントリには、メモリ使用量以外のメトリックの最大使用量を格納するフィールドが含まれる。
上昇率605は、サービスの負荷の増大に伴うメトリックの値の単位時間あたりの増加量を示す上昇率を格納するフィールドである。
図7は、実施例1の閾値管理情報700のデータ構造の一例を示す図である。
閾値管理情報700は、判定処理に使用する各種閾値を管理するための情報である。閾値管理情報700は、サービスID701、メトリック種別702、Warning上限閾値703、Critical上限閾値704、及び下限値705を含むエントリを格納する。サービス及びメトリックの組合せに対して一つのエントリが存在する。
サービスID701は、サービスの識別情報を格納するフィールドである。メトリック種別702は、メトリックの識別情報を格納するフィールドである。
Warning上限閾値703は、スケールアウトの終了目標時点を規定するメトリックの値を格納するフィールドである。本実施例では、メトリックの値がWarning上限閾値703より大きくなる前にスケールアウトが完了するようにスケジューリングが行われる。
Critical上限閾値704は、スケールアウトを実行するか否かを判定するための閾値を格納するフィールドである。下限値705は、スケールインを実行するか否かを判定するための閾値を格納するフィールドである。
次に、図8から図11を用いてログ情報群121に含まれる情報について説明する。
図8は、実施例1の処理ノード性能情報800のデータ構造の一例を示す図である。
処理ノード性能情報800は、サービスの実行時の処理ノード140の性能値の履歴を管理するための情報である。処理ノード性能情報800は、時刻801、サービスID802、処理ノードID803、メトリック種別804、及び性能値805を含むエントリを格納する。時刻、サービス、処理ノード140、及びメトリックの組合せに対して一つのエントリが存在する。
時刻801は、性能値が計測された時刻を格納するフィールドである。サービスID802は、処理ノード140が実行するサービスの識別情報を格納するフィールドである。処理ノードID803は、処理ノード140の識別情報を格納するフィールドである。
メトリック種別804は、メトリックの識別情報を格納するフィールドである。性能値805は、計測された、処理ノード140のメトリックの性能値を格納するフィールドである。
図9は、実施例1のサーバ性能情報900のデータ構造の一例を示す図である。
サーバ性能情報900は、サーバ103の性能値の履歴を管理するための情報である。サーバ性能情報900は、時刻901、サーバID902、ネットワークポート903、記憶装置ID904、メトリック種別905、及び性能値906を含むエントリを格納する。時刻、サーバ103、及びメトリックの性能値の組合せに対して一つのエントリが存在する。
時刻901は、性能値が計測された時刻を格納するフィールドである。サーバID902は、サーバ103の識別情報を格納するフィールドである。ネットワークポート903は、通信に用いるポートの番号を格納するフィールドである。記憶装置ID904、サーバ103が使用する記憶装置の識別情報を格納するフィールドである。
メトリック種別905は、メトリックの識別情報を格納するフィールドである。性能値906は、サーバ103のメトリックの計測値を格納するフィールドである。
図10は、実施例1の検知リクエスト情報1000のデータ構造の一例を示す図である。
検知リクエスト情報1000は、受けつけたリクエストの履歴を管理するための情報である。検知リクエスト情報1000は、時刻1001及びリクエストID1002を含むエントリを格納する。一つの検知結果に対して一つのエントリが存在する。
時刻1001は、リクエストの受付が検知された時刻を格納するフィールドである。リクエストID1002は、検知したリクエストの識別情報を格納するフィールドである。
図11は、実施例1のサービス実行情報1100のデータ構造の一例を示す図である。
サービス実行情報1100は、リクエストを受けつけた場合に実行されたサービスの履歴を管理するための情報である。サービス実行情報1100は、時刻1101、リクエストID1102、サービスID1103、及び処理ノードID1104を含むエントリを格納する。一つのサービスの実行結果に対して一つのエントリが存在する。
時刻1101は、サービスの実行が検知された時刻を格納するフィールドである。リクエストID1102は、リクエストの識別情報を格納するフィールドである。サービスID1103は、サービスの識別情報を格納するフィールドである。処理ノードID1104は、サービスを実行した処理ノード140の識別情報を格納するフィールドである。
なお、処理ノード性能情報800及びサーバ性能情報900は、情報収集部141から送信された情報に基づいて性能情報管理部111によって生成される。検知リクエスト情報1000及びサービス実行情報1100は、情報収集部141から送信された情報に基づいてリクエスト監視部112によって生成される。
次に、管理サーバ100が実行する処理について説明する。
図12は、実施例1の管理サーバ100が実行する処理の概要を説明するフローチャートである。図13は、実施例1の管理サーバ100によって生成されるターゲットリクエスト一覧1300のデータ構造の一例を示す図である。
リクエスト監視部112は、情報収集部141から受信した情報に基づいて、リクエストの受付を検知した場合(ステップS101)、管理サーバ制御部110に通知する。
なお、リクエスト監視部112は、ある機能を提供するサービス群の最初のサービスの実行を検知した場合、当該機能を呼び出すリクエストのエントリを検知リクエスト情報1000に追加し、また、サービスの実行を検知した場合、当該サービスのエントリをサービス実行情報1100に追加する。
次に、管理サーバ制御部110は、リクエスト経路管理情報400を参照して、ターゲットリクエスト一覧1300を生成する(ステップS102)。具体的には、以下のような処理が実行される。
管理サーバ制御部110は、リクエストID401に検知したリクエストの識別情報が格納されるエントリを検索する。管理サーバ制御部110は、検索されたエントリのリクエスト経路402に基づいて関連リクエストを特定する。
管理サーバ制御部110は、検知したリクエスト(起点リクエスト)及び関連リクエストをターゲットリクエストとしてターゲットリクエスト一覧1300に登録する。なお、リクエストの呼出順にエントリが登録される。ターゲットリクエスト一覧1300はリクエストID1301を含むエントリを格納する。
なお、リクエスト経路管理情報400に該当するエントリが存在しない場合、管理サーバ制御部110は、ステップS103以降の処理を実行せずに、処理を終了する。これは、受けつけたリクエストが関連リクエストであり、すでに、スケジュールが生成されているためである。以上がステップS102の処理の説明である。
次に、管理サーバ制御部110は、ターゲットリクエストのループ処理を開始する(ステップS103)。
具体的には、管理サーバ制御部110は、ターゲットリクエスト一覧1300からターゲットリクエストを一つ選択する。
次に、管理サーバ制御部110は、負荷予測部113にスケジュール生成処理の実行を指示する(ステップS104)。スケジュール生成処理の詳細は図14を用いて説明する。
管理サーバ制御部110は、スケジュール生成処理の完了を検知した後、割当変更部114にリソース割当変更処理の実行を指示する(ステップS105)。リソース割当変更処理の詳細は図23を用いて説明する。
リソース割当変更処理の完了を検知した後、管理サーバ制御部110は、ターゲットリクエスト一覧1300の全てのターゲットリクエストについて処理が完了したか否かを判定する(ステップS106)。
ターゲットリクエスト一覧1300の全てのターゲットリクエストについて処理が完了していない場合、管理サーバ制御部110は、ステップS103に戻り、同様の処理を実行する。
ターゲットリクエスト一覧1300の全てのターゲットリクエストについて処理が完了した場合、管理サーバ制御部110は処理を終了する。
図14は、実施例1の負荷予測部113が実行するスケジュール生成処理の一例を説明するフローチャートである。
まず、負荷予測部113は、ターゲットリクエストの受付数を算出する(ステップS201)。具体的には、以下のような処理が実行される。
負荷予測部113は、ターゲットリクエストが起点リクエストであるか否かを判定する。
ターゲットリクエストが起点リクエストである場合、負荷予測部113は、検知リクエスト情報1000に基づいて、起点リクエストを検知してから一定時間において受けつけた起点リクエストの数を算出する。
ターゲットリクエストが関連リクエストである場合、負荷予測部113は、リクエスト負荷特徴情報500を参照し、リクエストID501に起点リクエストの識別情報が格納され、かつ、関連リクエストID502にターゲットリクエストの識別情報が格納されるエントリを検索する。負荷予測部113は、起点リクエストの受付数及び検索されたエントリのデータ量503に基づいて、ターゲットリクエストの受付数を算出する。例えば、負荷予測部113は、起点リクエストの受付数をデータ量503で除算した値を、関連データ量504に乗算する。以上がステップS201の処理の説明である。
次に、負荷予測部113は、サービス構成管理情報300を参照して、ターゲットリクエストに対応する機能を提供するサービス(関連サービス)を特定する(ステップS202)。
具体的には、負荷予測部113は、リクエストID301にターゲットリクエストの識別情報が格納されるエントリを検索する。負荷予測部113は、検索されたエントリを用いて関連サービス一覧を生成する。なお、ターゲットリクエストに対応する機能を提供するサービスは、起点リクエストの受付を契機に実行されるサービス、すなわち、関連サービスである。
次に、負荷予測部113は、関連サービスのループ処理を開始する(ステップS203)。
具体的には、負荷予測部113は、関連サービス一覧から関連サービスを一つ選択する。
次に、負荷予測部113は、関連サービスの負荷を予測するための負荷予測処理を実行する(ステップS204)。負荷予測処理の詳細は図15を用いて説明する。
次に、負荷予測部113は、負荷予測処理の結果を用いて対処判定処理を実行する(ステップS205)。対処判定処理の詳細は図18を用いて説明する。
次に、負荷予測部113は、関連サービス一覧の全ての関連サービスについて処理が完了したか否かを判定する(ステップS206)。
関連サービス一覧の全ての関連サービスについて処理が完了していない場合、負荷予測部113は、ステップS203に戻り、同様の処理を実行する。
関連サービス一覧の全ての関連サービスについて処理が完了した場合、負荷予測部113は、管理サーバ制御部110にスケジュール生成処理の完了を通知し、その後、スケジュール生成処理を終了する。
図15は、実施例1の負荷予測部113が実行する負荷予測処理の一例を説明するフローチャートである。図16は、実施例1の負荷予測部113によって生成される予測値情報1600のデータ構造の一例を示す図である。
負荷予測部113は、ターゲットリクエストの受付数に基づいて、ステップS202において選択された関連サービスを実行する処理ノード140が処理するデータ量を算出する(ステップS301)。
具体的には、負荷予測部113は、サービス構成管理情報300を参照し、リクエストID301にターゲットリクエストの識別情報が格納され、かつ、サービスID302に関連サービスの識別情報が格納されるエントリを検索する。すなわち、関連サービスを実行する処理ノード140のエントリが検索される。負荷予測部113は、ターゲットリクエストの受付数をエントリの数(処理ノード140の数)で除算した値を、一つの処理ノード140が処理するデータ量として算出する。
本実施例では、同一のサービスを実行する処理ノード140は負荷が均等になるように分散処理を実行しているものとする。
次に、負荷予測部113は、処理ノード性能情報800を参照し、関連サービスを実行する処理ノード140の現在の各メトリックの性能値を取得する(ステップS302)。このとき、負荷予測部113はメトリック一覧を生成する。
なお、同一の関連サービスを実行する処理ノード140が複数存在する場合、各処理ノード140のメトリックの性能値の中で最も大きい性能値が取得される。
次に、負荷予測部113は、各メトリックの使用量の予測最大値を算出するために、最大使用量算出処理を実行する(ステップS303)。最大使用量算出処理の詳細は図17を用いて説明する。最大使用量算出処理では、各メトリックの最大使用量及び上昇率が算出される。
次に、負荷予測部113は、メトリックのループ処理を開始する(ステップS304)。
具体的には、負荷予測部113は、メトリック一覧から一つのメトリックを選択する。
次に、負荷予測部113は、選択されたメトリックの最大使用量と、現在の選択されたメトリックの性能値とを用いて、選択されたメトリックの予測性能値を算出する(ステップS305)。
具体的には、負荷予測部113は、選択されたメトリックの最大使用量と、現在の選択されたメトリックの性能値との合計値を、選択されたメトリックの予測性能値として算出する。
次に、負荷予測部113は、一連の処理結果を予測値情報1600に登録する(ステップS306)。
ここで、予測値情報1600は、サービスID1601、メトリック種別1602、予測性能値1603、及び上昇率1604を含むエントリを格納する。サービス及びメトリックの組合せに対して一つのエントリが存在する。
負荷予測部113は、予測値情報1600にエントリを追加し、追加されたエントリのサービスID1601及びメトリック種別1602に、選択された関連サービスの識別情報及び選択されたメトリックの種別を設定する。また、負荷予測部113は、追加されたエントリの予測性能値1603に算出された予測性能値を格納し、上昇率1604に算出された上昇率を格納する。
次に、負荷予測部113は、メトリック一覧の全てのメトリックについて処理が完了したか否かを判定する(ステップS307)。
メトリック一覧の全てのメトリックについて処理が完了していない場合、負荷予測部113は、ステップS304に戻り、同様の処理を実行する。
メトリック一覧の全てのメトリックについて処理が完了した場合、負荷予測部113は負荷予測処理を終了する。
図17は、実施例1の負荷予測部113が実行する最大使用量算出処理の一例を説明するフローチャートである。
負荷予測部113は、サービス負荷特徴情報600を参照して、ターゲットリクエスト、関連サービス、及びターゲットリクエストの受付数の組合せに一致するエントリを検索する(ステップS401)。
負荷予測部113は、検索結果に基づいて、前述の条件を満たすエントリが存在するか否かを判定する(ステップS402)。
前述の条件を満たすエントリが存在する場合、負荷予測部113は、当該エントリのメモリ最大使用量604及び上昇率605から値を取得する(ステップS403)。
次に、負荷予測部113は、サービス負荷特徴情報600から取得した値を最大使用量及び上昇率として出力する(ステップS404)。その後、負荷予測部113は最大使用量算出処理を終了する。
ステップS402において、前述の条件を満たすエントリが存在しない場合、負荷予測部113は、サービス負荷特徴情報600を参照して、ターゲットリクエスト及び関連サービスの組合せに一致するエントリを検索し、検索されたエントリのデータ量603、メモリ最大使用量604、及び上昇率605の値を取得する(ステップS405)。
次に、負荷予測部113は、取得された値を用いて、最大使用量のリクエストの受付数(リクエスト数)への回帰式、及び上昇率のリクエストの受付数(リクエスト数)への回帰式を算出する(ステップS406)。すなわち、リクエストの受付数から最大使用量及び上昇率を算出するためのモデルが生成される。
次に、負荷予測部113は、各回帰式に、関連サービスを実行する処理ノード140が処理するデータ量を入力することによって、予測最大使用量及び予測上昇率を算出する(ステップS407)。
次に、負荷予測部113は、予測最大使用量及び予測上昇率を、最大使用量及び上昇率として出力する(ステップS408)。その後、負荷予測部113は最大使用量算出処理を終了する。
図18は、実施例1の負荷予測部113が実行する対処判定処理の一例を説明するフローチャートである。
負荷予測部113は、負荷予測処理の結果を用いて、スケールアウトスケジュール生成処理及びスケールインスケジュール生成処理を実行する(ステップS501、ステップS502)。スケールアウトスケジュール生成処理の詳細は図19を用いて説明し、スケールインスケジュール生成処理の詳細は図21を用いて説明する。
次に、負荷予測部113は、スケールアウトスケジュール情報2000(図20を参照)及びスケールインスケジュール情報2200(図22を参照)をワークエリアに出力する(ステップS503)。その後、負荷予測部113は対処判定処理を終了する。
図19は、実施例1の負荷予測部113が実行するスケールアウトスケジュール生成処理の一例を説明するフローチャートである。図20は、実施例1の負荷予測部113によって生成されるスケールアウトスケジュール情報2000のデータ構造の一例を示す図である。
負荷予測部113は、処理ノード性能情報800を参照して、関連サービスを実行する処理ノード140のメトリックの一覧を生成する(ステップS601)。
次に、負荷予測部113は、メトリックのループ処理を開始する(ステップS602)。
具体的には、負荷予測部113は、メトリック一覧から一つのメトリックを選択する。
次に、負荷予測部113は、閾値管理情報700からCritical上限閾値及びWarning上限閾値を取得する(ステップS603)。
具体的には、負荷予測部113は、サービスID701に関連サービスの識別情報が格納され、かつ、メトリック種別702に選択されたメトリックの識別情報が格納されるエントリを検索し、検索されたエントリのWarning上限閾値703及びCritical上限閾値704の値を取得する。また、負荷予測部113は、予測値情報1600から関連サービスのメトリックの予測性能値及び上昇率を取得する。
次に、負荷予測部113は、負荷予測処理によって算出されたメトリックの予測性能値がCritical上限閾値より大きいか否かを判定する(ステップS604)。
メトリックの予測性能値がCritical上限閾値以下の場合、負荷予測部113はステップS610に進む。
メトリックの予測性能値がCritical上限閾値より大きい場合、負荷予測部113は、関連サービスのスケールアウトの猶予時間を算出する(ステップS605)。
具体的には、負荷予測部113は、Warning上限閾値から予測性能値を減算する。負荷予測部113は、算出された値を上昇率で除算することによって猶予時間を算出する。
次に、負荷予測部113は、スケールアウトスケジュール情報2000に関連サービスのスケールアウトスケジュールが登録されているか否かを判定する(ステップS605)。
ここで、スケールアウトスケジュール情報2000は、リクエストID2001、サービスID2002、及び猶予時間2003を含むエントリを格納する。スケールアウト対象となるサービスに対して一つのエントリが存在する。一つのエントリをスケールアウトスケジュールとも記載する。
ステップS605では、負荷予測部113は、リクエストID2001にターゲットリクエストの識別情報が格納され、かつ、サービスID2002に関連サービスの識別情報が格納されるエントリが存在するか否かを判定する。
スケールアウトスケジュール情報2000に関連サービスのスケールアウトスケジュールが登録されていない場合、負荷予測部113は、スケールアウトスケジュール情報2000に関連サービスのスケールアウトスケジュールを登録する(ステップS606)。その後、負荷予測部113はステップS610に進む。
具体的には、負荷予測部113は、スケールアウトスケジュール情報2000にエントリを追加し、追加されたエントリのリクエストID2001にターゲットリクエストの識別情報を設定し、サービスID2002に関連サービスの識別情報を設定し、猶予時間2003に算出された猶予時間を設定する。
スケールアウトスケジュール情報2000に関連サービスのスケールアウトスケジュールが登録されている場合、負荷予測部113は、登録されているスケールアウトスケジュールの猶予時間の更新が必要であるか否かを判定する(ステップS606)。
具体的には、負荷予測部113は、当該スケールアウトスケジュールの猶予時間2003が算出された猶予時間より大きいか否かを判定する。猶予時間2003が算出された猶予時間より大きい場合、負荷予測部113は、登録されているスケールアウトスケジュールの猶予時間の更新が必要であると判定する。
登録されているスケールアウトスケジュールの猶予時間の更新が必要ない場合、負荷予測部113はステップS610に進む。
登録されているスケールアウトスケジュールの猶予時間の更新が必要ある場合、負荷予測部113は、登録されたいるスケジュールの猶予時間2003に算出された猶予時間を設定する(ステップS609)。その後、負荷予測部113はステップS610に進む。
ステップS610では、負荷予測部113は、メトリック一覧の全てのメトリックについて処理が完了したか否かを判定する(ステップS610)。
メトリック一覧の全てのメトリックについて処理が完了していない場合、負荷予測部113は、ステップS602に戻り、同様の処理を実行する。
メトリック一覧の全てのメトリックについて処理が完了した場合、負荷予測部113はスケールアウトスケジュール生成処理を終了する。
スケールアウトスケジュール生成処理では、負荷予測部113は、予測性能値がCritical上限閾値より大きいメトリックを少なくとも一つ含む関連サービスをスケールアウト対象に決定する。
図21は、実施例1の負荷予測部113が実行するスケールインスケジュール生成処理の一例を説明するフローチャートである。図22は、実施例1の負荷予測部113によって生成されるスケールインスケジュール情報2200のデータ構造の一例を示す図である。
負荷予測部113は、処理ノード性能情報800を参照して、関連サービスを実行する処理ノード140のメトリックの一覧を生成する(ステップS701)。
次に、負荷予測部113は、メトリックのループ処理を開始する(ステップS702)。
具体的には、負荷予測部113は、メトリック一覧から一つのメトリックを選択する。
次に、負荷予測部113は、閾値管理情報700から下限値を取得する(ステップS703)。
具体的には、負荷予測部113は、サービスID701に関連サービスの識別情報が格納され、かつ、メトリック種別702に選択されたメトリックの識別情報が格納されるエントリを検索し、検索されたエントリの下限値705の値を取得する。また、負荷予測部113は、予測値情報1600から関連サービスのメトリックの予測性能値を取得する。
次に、負荷予測部113は、負荷予測処理によって算出されたメトリックの予測性能値が下限値より小さいか否かを判定する(ステップS704)。
メトリックの予測性能値が下限値以上である場合、負荷予測部113は、フラグにFALSEを設定してループ処理を終了し(ステップS705)、ステップS708に進む。
メトリックの予測性能値が下限値より小さい場合、負荷予測部113は、フラグにTRUEを設定する(ステップS706)。
次に、負荷予測部113は、メトリック一覧の全てのメトリックについて処理が完了したか否かを判定する(ステップS707)。
メトリック一覧の全てのメトリックについて処理が完了していない場合、負荷予測部113は、ステップS702に戻り、同様の処理を実行する。
メトリック一覧の全てのメトリックについて処理が完了した場合、負荷予測部113はステップS708に進む。
ステップS708では、負荷予測部113は、フラグがTRUEであるか否かを判定する(ステップS708)。
フラグがFALSEである場合、負荷予測部113はスケールインスケジュール生成処理を終了する。
フラグがTRUEである場合、負荷予測部113は、スケールインスケジュール情報2200に関連サービスのスケールインスケジュールを登録する(ステップS709)。その後、負荷予測部113はスケールインスケジュール生成処理を終了する。
ここで、スケールインスケジュール情報2200は、リクエストID2201及びサービスID2202を含むエントリを格納する。スケールイン対象となるサービスに対して一つのエントリが存在する。一つのエントリをスケールインスケジュールとも記載する。
スケールインスケジュール生成処理では、負荷予測部113は、全てのメトリックの予測性能値が下限値より小さい関連サービスをスケールイン対象に決定する。
図23は、実施例1の割当変更部114が実行するリソース割当変更処理の一例を説明するフローチャートである。
割当変更部114は、スケールアウト対象のサービスのループ処理を開始する(ステップS801)。
具体的には、割当変更部114は、スケールアウトスケジュール情報2000から一つのサービス(エントリ)を選択する。
次に、割当変更部114は、選択されたサービスを実行する処理ノード140が存在するサーバ103を特定する(ステップS802)。
具体的には、割当変更部114は、サービス構成管理情報300を参照して、サービスID302が選択されたサービスの識別情報に一致するエントリを検索する。割当変更部114は、検索されたエントリのサーバID304の値を取得する。
次に、割当変更部114は、特定されたサーバ103の空きリソース量を算出する(ステップS803)。
具体的には、割当変更部114は、サーバ性能情報900を参照して、サーバID902が特定されたサーバ103の識別情報に一致するエントリを検索する。割当変更部114は、検索されたエントリの性能値906を用いて各メトリックについての空きリソース量を算出する。
次に、割当変更部114は、スケールアウトによるリソース量の予測値(増加量)を算出する(ステップS804)。
スケールアウトによるリソース量の予測は公知の技術を用いればよい。例えば、以下のような方法が考えられる。
割当変更部114は、処理ノード性能情報800を参照して、サービスID802に選択されたサービスの識別情報が格納されるエントリを検索する。割当変更部114は、検索されたエントリを用いて各メトリックの性能値の平均値を算出する。さらに、割当変更部114は、現在のサーバ103の性能値に前述の平均値を加算した値を、スケールアウト後のサーバ103のリソース量の予測値として算出する。なお、前述した算出方法は一例であってこれに限定されない。
次に、割当変更部114は、スケールアウトスケジュール情報2000の全てのサービスについて処理が完了したか否かを判定する(ステップS805)。
スケールアウトスケジュール情報2000の全てのサービスについて処理が完了していない場合、割当変更部114は、ステップS801に戻り、同様の処理を実行する。
スケールアウトスケジュール情報2000の全てのサービスについて処理が完了した場合、割当変更部114は、スケールアウト対象のサービスの空きリソース量及び増加量に基づいて、リソース不足が生じるサービスが存在するか否かを判定する(ステップS806)。
リソース不足が生じるサービスが存在する場合、割当変更部114は、スケールインを実行した後(ステップS807)、スケールアウトを実行する(ステップS808)。その後、割当変更部114はリソース割当変更処理を終了する。リソース不足が生じるサービスが存在する場合には、スケールアウトに必要なリソース量を確保するためにスケールインが先に実行される。
リソース不足が生じるサービスが存在しない場合、割当変更部114は、スケールアウトを実行した後(ステップS809)、スケールインを実行する(ステップS810)。その後、割当変更部114はリソース割当変更処理を終了する。サービスの負荷の低減に迅速に対応するためにスケールアウトが先に実行される。
なお、ステップS808及びステップS809のスケールアウトは同一の処理である。スケールアウトの詳細は図24を用いて説明する。ステップS807及びステップS810のスケールインは同一の処理である。スケールインの詳細は図25を用いて説明する。
図24は、実施例1の割当変更部114が実行するスケールアウトの一例を説明するフローチャートである。
割当変更部114は、猶予時間の大きさに基づいて、スケールアウトスケジュール情報2000のエントリをソートする(ステップS901)。
具体的には、割当変更部114は、猶予時間2003の値の昇順にエントリをソートする。
次に、割当変更部114は、スケールアウト対象のサービスのループ処理を開始する(ステップS902)。
具体的には、割当変更部114は、スケールアウトスケジュール情報2000から一つのサービス(エントリ)を選択する。なお、上から順にエントリは選択されるものとする。これは、メトリックの値がWarning上限閾値に達するまでの時間が短いサービスのスケールアウトを優先的に実行するためである。
次に、割当変更部114は、選択されたサービスのスケールアウトを実行する(ステップS903)。
処理ノード140がコンテナの場合、割当変更部114は、サービスに対応する処理ノード140が存在するサーバ103又は他のサーバ103に、コンテナのイメージをデプロイする。処理ノード140が仮想計算機の場合、割当変更部114は、サービスに対応する処理ノード140が存在するサーバ103又は他のサーバ103に、仮想計算機の生成を指示する。なお、スケールアウトの方法は公知の技術であるため詳細な説明は省略する。
次に、割当変更部114は、サービス構成管理情報300を更新する(ステップS904)。
具体的には、割当変更部114は、サービス構成管理情報300にエントリを追加し、追加されたエントリのリクエストID301及びサービスID302に、リクエストID2001及びサービスID2002の値を設定する。また、割当変更部114は、スケールアウトの結果に基づいて、追加されたエントリの処理ノードID303及びサーバID304に値を設定する。
次に、割当変更部114は、全てのスケールアウト対象のサービスについて処理が完了したか否かを判定する(ステップS905)。すなわち、スケールアウトスケジュール情報2000の全てのエントリの処理が完了したか否かが判定される。
全てのスケールアウト対象のサービスについて処理が完了していない場合、割当変更部114は、ステップS902に戻り、同様の処理を実行する。
全てのスケールアウト対象のサービスについて処理が完了した場合、割当変更部114はスケールアウトを終了する。
図25は、実施例1の割当変更部114が実行するスケールインの一例を説明するフローチャートである。
割当変更部114は、スケールイン対象のサービスのループ処理を開始する(ステップS1001)。
具体的には、割当変更部114は、スケールインスケジュール情報2200から一つのサービス(エントリ)を選択する。
次に、割当変更部114は、選択されたサービスのスケールインを実行する(ステップS1002)。スケールインの方法は公知の技術であるため詳細な説明は省略する。
次に、割当変更部114は、サービス構成管理情報300を更新する(ステップS1003)。
具体的には、割当変更部114は、スケールインの結果に基づいて、サービス構成管理情報300のエントリを削除する。
次に、割当変更部114は、全てのスケールイン対象のサービスについて処理が完了したか否かを判定する(ステップS1004)。すなわち、スケールインスケジュール情報2200の全てのエントリの処理が完了したか否かが判定される。
全てのスケールイン対象のサービスについて処理が完了していない場合、割当変更部114は、ステップS1001に戻り、同様の処理を実行する。
全てのスケールイン対象のサービスについて処理が完了した場合、割当変更部114はスケールインを終了する。
次に、リクエスト経路管理情報400及びサービス負荷特徴情報600の更新方法について説明する。
図26は、実施例1の管理サーバ制御部110が実行するリクエスト経路管理情報400の更新処理の一例を説明するフローチャートである。図27は、実施例1の管理サーバ制御部110によって生成されるリクエスト関連マップ2700のデータ構造の一例を示す図である。
管理サーバ制御部110は、周期的に又は実行指示を受けつけた場合、以下の更新処理を実行する。
まず、管理サーバ制御部110は、リクエスト関連マップ2700を初期化する(ステップS1101)。
具体的には、管理サーバ制御部110は、検知リクエスト情報1000を参照し、検知されたリクエストの種別を行及び列の成分とする行列形式のリクエスト関連マップ2700を生成する。各セルには、行に対応するリクエストの時刻と列に対応するリクエストの時刻との差(時間)が格納される。
次に、管理サーバ制御部110は、検知リクエスト情報1000を参照して、リクエスト関連マップ2700のセルに値を設定する(ステップS1102)。
次に、管理サーバ制御部110は、リクエスト関連マップ2700に基づいて、連続して呼び出されるリクエストのグループを生成する(ステップS1103)。
具体的には、管理サーバ制御部110は、セルの値(実行時刻の差)が閾値より小さいリクエストのペアを生成し、共通するリクエストを含むペアをまとめることによってリクエストのグループを生成する。閾値は任意に設定できる。なお、セルの値が0のペアは生成されない。
次に、管理サーバ制御部110は、各リクエストのグループのリクエストを実行順にソートすることによって候補リクエスト経路を生成する(ステップS1104)。
次に、管理サーバ制御部110は、候補リクエスト経路のループ処理を開始する(ステップS1105)。
具体的には、管理サーバ制御部110は、ステップS1104において生成された候補リクエスト経路の中から一つの候補リクエスト経路を選択する。
次に、管理サーバ制御部110は、候補リクエスト経路が新規のリクエスト経路であるか否かを判定する(ステップS1106)。
具体的には、管理サーバ制御部110は、リクエスト経路管理情報400を参照して、リクエスト経路402が候補リクエスト経路と一致するエントリが存在するか否かを判定する。前述のエントリが存在しない場合、管理サーバ制御部110は候補リクエスト経路が新規のリクエスト経路であると判定する。
候補リクエスト経路が新規のリクエスト経路ではない場合、管理サーバ制御部110はステップS1108に進む。
候補リクエスト経路が新規のリクエスト経路である場合、管理サーバ制御部110は、リクエスト経路管理情報400に候補リクエスト経路を登録し(ステップS1107)、その後、ステップS1108に進む。
具体的には、管理サーバ制御部110は、リクエスト経路管理情報400にエントリを追加し、追加されたエントリのリクエストID401に候補リクエスト経路の最初のリクエストの識別情報を設定する。また、管理サーバ制御部110は、追加されたエントリのリクエスト経路402に候補リクエスト経路を設定する。
ステップS1108では、管理サーバ制御部110は、全ての候補リクエスト経路について処理が完了したか否かを判定する(ステップS1108)。
全ての候補リクエスト経路について処理が完了していない場合、管理サーバ制御部110は、ステップS1105に戻り、同様の処理を実行する。
全ての候補リクエスト経路について処理が完了した場合、管理サーバ制御部110はリクエスト経路管理情報400の更新処理を終了する。
図28は、実施例1の管理サーバ制御部110が実行するサービス負荷特徴情報600の更新処理の一例を説明するフローチャートである。図29は、実施例1の管理サーバ制御部110によって生成される負荷解析情報2900のデータ構造の一例を示す図である。
管理サーバ制御部110は、周期的に又は実行指示を受けつけた場合、以下の更新処理を実行する。
まず、管理サーバ制御部110は、負荷解析情報2900を初期化する(ステップS1201)。
ここで、負荷解析情報2900は、リクエストID2901、サービスID2902、データ量2903、メモリ最大使用量2904、及び上昇率2905を含むエントリを格納する。
管理サーバ制御部110は、リクエスト及びサービスの組合せの数だけエントリを生成する。
次に、管理サーバ制御部110は、リクエスト及びサービスの組合せのループ処理を開始する(ステップS1202)。
具体的には、管理サーバ制御部110は、負荷解析情報2900のエントリを一つ選択する。
次に、管理サーバ制御部110は、処理ノード性能情報800及びサービス実行情報1100等を解析し、リクエストの受付数及び各メトリックの最大値を算出する(ステップS1203)具体的には、以下のような処理が実行される。
管理サーバ制御部110は、サービス実行情報1100に基づいて一定時間内に受けつけたリクエストの数を算出し、データ量2903に設定する。
管理サーバ制御部110は、処理ノード性能情報800及びサービス実行情報1100に基づいて、あるリクエストに対応する機能を提供するサービスの各メトリックの時系列データを生成する。管理サーバ制御部110は、時系列データに基づいてメトリックの最大使用量を算出し、負荷解析情報2900を更新する。例えば、メモリ最大使用量2904に値が設定される。
次に、管理サーバ制御部110は、処理ノード性能情報800及びサービス実行情報1100等を解析し、上昇率を算出する(ステップS1204)。
具体的には、管理サーバ制御部110は、メトリックの値の時系列データに基づいて、メトリックの値の変動が開始してからWarning上限閾値703に至るまでの時間と、変動開始のメトリックの値及びWarning上限閾値703の差とに基づいて、上昇率を算出する。管理サーバ制御部110は、上昇率2905に算出された上昇率を設定する。
次に、管理サーバ制御部110は、サービス負荷特徴情報600を更新する(ステップS1205)。具体的には以下のような処理が実行される。
管理サーバ制御部110は、サービス負荷特徴情報600を参照し、リクエストID601、サービスID602、及びデータ量603の組合せが、選択されたエントリのリクエストID2901、サービスID2902、及びデータ量2903の組合せに一致するエントリを検索する。
前述のエントリが存在する場合、管理サーバ制御部110は、選択されたエントリのメモリ最大使用量2904及び検索されたエントリのメモリ最大使用量604の平均値を算出し、検索されたエントリのメモリ最大使用量604に設定する。また、管理サーバ制御部110は、選択されたエントリの上昇率605及び検索されたエントリの上昇率2905の平均値を算出し、検索されたエントリの上昇率605に設定する。
前述のエントリが存在しない場合、管理サーバ制御部110は、サービス負荷特徴情報600にエントリを追加し、選択されたエントリの値を、追加されたエントリの各フィールドに設定する。以上がステップS1205の処理の説明である。
次に、管理サーバ制御部110は、負荷解析情報2900の全てのエントリについて処理が完了したか否かを判定する(ステップS1206)。
負荷解析情報2900の全てのエントリについて処理が完了していない場合、管理サーバ制御部110は、ステップS1202に戻り、同様の処理を実行する。
負荷解析情報2900の全てのエントリについて処理が完了した場合、管理サーバ制御部110はサービス負荷特徴情報600の更新処理を終了する。
以上で説明したように、管理サーバ100は、業務システム102においてリクエストの受付が検知された場合、リクエストの受付を契機に実行されるサービスの負荷を見積もって、リソースの割当量を変更するためのスケジューリングを行う。管理サーバ100は、スケジュールにしたがって、サービスへの影響が顕在化する前にサービスに対するリソースの割当量を変更できる。管理サーバ100は、リクエストの受付数に基づいてサービスの負荷を見積もっているため、突発的な負荷にも対応できる。
管理サーバ100は、リクエストの呼出関係及び各リクエストに対応する機能を提供するサービスの構成に基づいて関連サービスを特定する。これによって、効率的にリソースの割当量を変更し、また、リソースの割当量の変更に伴う業務全体の影響を最小化できる。
なお、管理サーバ100は、各種判定に使用するメトリックの指定を受けつけるインタフェースを提供してもよい。本実施例では、リクエスト間のサービスは重複しないものとしているが、リクエスト間のサービスが重複する場合でも同様の処理を適用できる。
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。また、例えば、上記した実施例は本発明を分かりやすく説明するために構成を詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、各実施例の構成の一部について、他の構成に追加、削除、置換することが可能である。
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、本発明は、実施例の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をコンピュータに提供し、そのコンピュータが備えるプロセッサが記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコード自体、及びそれを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、CD−ROM、DVD−ROM、ハードディスク、SSD(Solid State Drive)、光ディスク、光磁気ディスク、CD−R、磁気テープ、不揮発性のメモリカード、ROMなどが用いられる。
また、本実施例に記載の機能を実現するプログラムコードは、例えば、アセンブラ、C/C++、perl、Shell、PHP、Python、Java(登録商標)等の広範囲のプログラム又はスクリプト言語で実装できる。
さらに、実施例の機能を実現するソフトウェアのプログラムコードを、ネットワークを介して配信することによって、それをコンピュータのハードディスクやメモリ等の記憶手段又はCD−RW、CD−R等の記憶媒体に格納し、コンピュータが備えるプロセッサが当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしてもよい。
上述の実施例において、制御線や情報線は、説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。全ての構成が相互に接続されていてもよい。
100 管理サーバ
101 管理クライアント
102 業務システム
103 サーバ
104 ネットワーク
110 管理サーバ制御部
111 性能情報管理部
112 リクエスト監視部
113 負荷予測部
114 割当変更部
120 管理情報群
121 ログ情報群
130 Webブラウザ
131 管理クライアント制御部
140 処理ノード
141 情報収集部
200、210 プロセッサ
201、211 メモリ
202、212 ネットワークインタフェース
203 ストレージ装置
213 入力デバイス
214 出力デバイス
300 サービス構成管理情報
400 リクエスト経路管理情報
500 リクエスト負荷特徴情報
600 サービス負荷特徴情報
700 閾値管理情報
800 処理ノード性能情報
900 サーバ性能情報
1000 検知リクエスト情報
1100 サービス実行情報
1300 ターゲットリクエスト一覧
1600 予測値情報
2000 スケールアウトスケジュール情報
2200 スケールインスケジュール情報
2700 リクエスト関連マップ
2900 負荷解析情報

Claims (14)

  1. 演算装置、前記演算装置に接続される記憶装置、及び前記演算装置に接続され、外部装置に接続するための接続装置を有する、複数の計算機を備える計算機システムであって、
    少なくとも一つの前記計算機を含み、リクエストに対応する機能を提供する複数のサービスが稼働する業務システムを含み、
    前記サービスに対する前記業務システムのリソースの割当量を変更するためのスケジュールを生成する制御部と、前記スケジュールに基づいて、前記サービスに対する前記リソースの割当量を変更する割当変更部と、を備え、
    前記制御部は、
    処理を開始するためのリクエストの受付を検知した場合、前記検知されたリクエストの受付数を算出し、
    前記検知されたリクエストの受付を契機に実行される関連サービスを特定し、
    前記検知されたリクエストの受付数に基づいて、前記関連サービスの負荷を示す指標の予測値を算出し、
    前記関連サービスの前記指標の予測値に基づいて、前記リソースの割当量を変更する必要がある前記関連サービスを決定し、
    前記決定された関連サービスの前記スケジュールを生成することを特徴とする計算機システム。
  2. 請求項1に記載の計算機システムであって、
    前記制御部は、
    前記検知されたリクエストの後に発行される関連リクエストを特定し、前記検知されたリクエスト及び前記関連リクエストをターゲットリクエストとしてリストに登録し、
    前記リストから一つの前記ターゲットリクエストを選択し、
    前記選択されたターゲットリクエストの受付数を算出し、
    前記選択されたターゲットリクエストに対応する機能を提供する前記サービスを、前記関連サービスとして特定し、
    前記選択されたターゲットリクエストの受付数に基づいて、前記関連サービスの前記指標の予測値を算出し、
    前記関連サービスの前記指標の予測値に基づいて、前記リソースの割当量を変更する必要がある前記関連サービスを決定し、
    前記決定された関連サービスに対する前記リソースの割当量を変更するためのスケジュールを生成することを特徴とする計算機システム。
  3. 請求項2に記載の計算機システムであって、
    前記リクエストの呼出関係を管理するための第1管理情報と、前記リクエストに対応する機能を提供する前記サービスの構成を管理するための第2管理情報を保持し、
    前記制御部は、
    前記第1管理情報に基づいて、前記関連リクエストを特定し、
    前記第2管理情報に基づいて、前記選択されたターゲットリクエストに対応する機能を提供する前記サービスを特定することを特徴とする計算機システム。
  4. 請求項3に記載の計算機システムであって、
    前記サービスへの前記リソースの割当量を追加するか否かを判定するための第1閾値及び前記サービスへの前記リソースの割当量を削減するか否かを判定するための第2閾値を含む第3管理情報を保持し、
    前記制御部は、
    前記関連サービスの前記指標の予測値が前記第1閾値より大きいと判定された場合、前記関連サービスに対する前記リソースの割当量を追加するためのリソース追加スケジュールを生成し、
    前記関連サービスの前記指標の予測値が前記第2閾値より小さいと判定された場合、前記関連サービスに対する前記リソースの割当量を削減するためのリソース削減スケジュールを生成することを特徴とする計算機システム。
  5. 請求項4に記載の計算機システムであって、
    前記リクエストの受付数と、前記サービスの前記指標との関係を管理するための第4管理情報を保持し、
    前記第4管理情報は、前記リクエストの受付に伴って実行される前記サービスが使用するリソース量の上昇率を含み、
    前記制御部は、
    前記選択されたターゲットリクエストの受付数及び前記第4管理情報に基づいて、前記関連サービスの前記指標の予測値を算出し、
    前記関連サービスの前記指標の予測値が前記関連サービスの前記第1閾値より大きいと判定された場合、当該関連サービスの現在の前記指標の値、前記指標の予測値、及び前記関連サービスが使用するリソース量の上昇率に基づいて、前記関連サービスへの前記リソースの割当量の追加を完了する目安となる時間を示す猶予時間を算出し、
    前記猶予時間を含む前記リソース追加スケジュールを生成し、
    前記割当変更部は、前記猶予時間に基づいて、前記リソース追加スケジュールの実行順を決定することを特徴とする計算機システム。
  6. 請求項4に記載の計算機システムであって、
    前記割当変更部は、前記業務システムにおけるリソースの空き容量に応じて、前記リソース追加スケジュール及び前記リソース削減スケジュールの実行順番を決定することを特徴とする計算機システム。
  7. 請求項4に記載の計算機システムであって、
    前記リソースは、前記サービスを実行する処理ノードであり、
    前記リソース追加スケジュールは、前記決定された関連サービスを実行する前記処理ノードの数を追加するためのスケジュールであり、
    前記リソース削減スケジュールは、前記決定された関連サービスを実行する前記処理ノードの数を削減するためのスケジュールであることを特徴とする計算機システム。
  8. 演算装置、前記演算装置に接続される記憶装置、及び前記演算装置に接続され、外部装置に接続するための接続装置を有する、複数の計算機を含む計算機システムが実行するリソース管理方法であって、
    前記計算機システムは、
    少なくとも一つの前記計算機を含み、リクエストに対応する機能を提供する複数のサービスが稼働する業務システムを含み、
    前記サービスに対する前記業務システムのリソースの割当量を変更するためのスケジュールを生成する制御部と、前記スケジュールに基づいて、前記サービスに対する前記リソースの割当量を変更する割当変更部と、を有し、
    前記リソース管理方法は、
    前記制御部が、処理を開始するためのリクエストの受付を検知した場合、前記検知されたリクエストの受付数を算出する第1のステップと、
    前記制御部が、前記検知されたリクエストの受付を契機に実行される関連サービスを特定する第2のステップと、
    前記制御部が、前記検知されたリクエストの受付数に基づいて、前記関連サービスの負荷を示す指標の予測値を算出する第3のステップと、
    前記制御部が、前記関連サービスの前記指標の予測値に基づいて、前記リソースの割当量を変更する必要がある前記関連サービスを決定する第4のステップと、
    前記制御部が、前記決定された関連サービスの前記スケジュールを生成する第5のステップと、を含むことを特徴とするリソース管理方法。
  9. 請求項8に記載のリソース管理方法であって、
    前記第1のステップは、
    前記制御部が、前記検知されたリクエストの後に発行される関連リクエストを特定し、前記検知されたリクエスト及び前記関連リクエストをターゲットリクエストとしてリストに登録するステップと、
    前記制御部が、前記リストから一つの前記ターゲットリクエストを選択するステップと、
    前記制御部が、前記選択されたターゲットリクエストの受付数を算出するステップと、を含み、
    前記第2のステップは、前記制御部が、前記選択されたターゲットリクエストに対応する機能を提供する前記サービスを、前記関連サービスとして特定するステップを含み、
    前記第3のステップは、前記制御部が、前記選択されたターゲットリクエストの受付数に基づいて、前記関連サービスの前記指標の予測値を算出するステップを含み、
    前記第4のステップは、前記制御部が、前記関連サービスの前記指標の予測値に基づいて、前記リソースの割当量を変更する必要がある前記関連サービスを決定するステップを含み、
    前記第5のステップは、前記制御部が、前記決定された関連サービスに対する前記リソースの割当量を変更するためのスケジュールを生成するステップを含むことを特徴とするリソース管理方法。
  10. 請求項9に記載のリソース管理方法であって、
    前記計算機システムは、前記リクエストの呼出関係を管理するための第1管理情報と、前記リクエストに対応する機能を提供する前記サービスの構成を管理するための第2管理情報を保持し、
    前記第1のステップは、前記制御部が、前記第1管理情報に基づいて、前記関連リクエストを特定するステップを含み、
    前記第2のステップは、前記制御部が、前記第2管理情報に基づいて、前記選択されたターゲットリクエストに対応する機能を提供する前記サービスを特定するステップを含むことを特徴とするリソース管理方法。
  11. 請求項10に記載のリソース管理方法であって、
    前記計算機システムは、前記サービスへの前記リソースの割当量を追加するか否かを判定するための第1閾値及び前記サービスへの前記リソースの割当量を削減するか否かを判定するための第2閾値を含む第3管理情報を保持し、
    前記第5のステップは、
    前記制御部が、前記関連サービスの前記指標の予測値が前記第1閾値より大きいと判定された場合、前記関連サービスに対する前記リソースの割当量を追加するためのリソース追加スケジュールを生成するステップと、
    前記制御部が、前記関連サービスの前記指標の予測値が前記第2閾値より小さいと判定された場合、前記関連サービスに対する前記リソースの割当量を削減するためのリソース削減スケジュールを生成するステップと、を含むことを特徴とするリソース管理方法。
  12. 請求項11に記載のリソース管理方法であって、
    前記計算機システムは、前記リクエストの受付数と、前記サービスの前記指標との関係を管理するための第4管理情報を保持し、
    前記第4管理情報は、前記リクエストの受付に伴って実行される前記サービスが使用するリソース量の上昇率を含み、
    前記第3のステップは、前記制御部が、前記選択されたターゲットリクエストの受付数及び前記第4管理情報に基づいて、前記関連サービスの前記指標の予測値を算出するステップを含み、
    前記第5のステップは、
    前記制御部が、前記関連サービスの前記指標の予測値が前記関連サービスの前記第1閾値より大きいと判定された場合、当該関連サービスの現在の前記指標の値、前記指標の予測値、及び前記関連サービスが使用するリソース量の上昇率に基づいて、前記関連サービスへの前記リソースの割当量の追加を完了する目安となる時間を示す猶予時間を算出するステップと、
    前記制御部が、前記猶予時間を含む前記リソース追加スケジュールを生成するステップと、を含み
    前記リソース管理方法は、前記割当変更部が、前記猶予時間に基づいて、前記リソース追加スケジュールの実行順を決定するステップを含むことを特徴とするリソース管理方法。
  13. 請求項11に記載のリソース管理方法であって、
    前記割当変更部が、前記業務システムにおけるリソースの空き容量に応じて、前記リソース追加スケジュール及び前記リソース削減スケジュールの実行順番を決定するステップを含むことを特徴とするリソース管理方法。
  14. 請求項11に記載のリソース管理方法であって、
    前記リソースは、前記サービスを実行する処理ノードであり、
    前記リソース追加スケジュールは、前記決定された関連サービスを実行する前記処理ノードの数を追加するためのスケジュールであり、
    前記リソース削減スケジュールは、前記決定された関連サービスを実行する前記処理ノードの数を削減するためのスケジュールであることを特徴とするリソース管理方法。
JP2019213270A 2019-11-26 2019-11-26 計算機システム及びリソース管理方法 Active JP6960444B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2019213270A JP6960444B2 (ja) 2019-11-26 2019-11-26 計算機システム及びリソース管理方法
US17/007,106 US20210158248A1 (en) 2019-11-26 2020-08-31 Computer system and resource management method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019213270A JP6960444B2 (ja) 2019-11-26 2019-11-26 計算機システム及びリソース管理方法

Publications (2)

Publication Number Publication Date
JP2021086279A JP2021086279A (ja) 2021-06-03
JP6960444B2 true JP6960444B2 (ja) 2021-11-05

Family

ID=75974946

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019213270A Active JP6960444B2 (ja) 2019-11-26 2019-11-26 計算機システム及びリソース管理方法

Country Status (2)

Country Link
US (1) US20210158248A1 (ja)
JP (1) JP6960444B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022107135A (ja) * 2021-01-08 2022-07-21 富士通株式会社 情報処理装置、情報処理システム、及び情報処理方法
CN114745278B (zh) * 2022-04-11 2024-05-24 中和农信农业集团有限公司 一种业务系统扩缩容的方法、装置、电子设备和存储介质

Also Published As

Publication number Publication date
US20210158248A1 (en) 2021-05-27
JP2021086279A (ja) 2021-06-03

Similar Documents

Publication Publication Date Title
US10693740B2 (en) Data transformation of performance statistics and ticket information for network devices for use in machine learning models
CN108009016B (zh) 一种资源负载均衡控制方法及集群调度器
JP5218390B2 (ja) 自律制御サーバ、仮想サーバの制御方法及びプログラム
JP6293683B2 (ja) 計算機システム及び計算機システムの性能障害の対処方法
US9575548B2 (en) Apparatus for migrating virtual machines to another physical server, and method thereof
US20100250734A1 (en) Server reassignment support system and server reassignment support method
CN100590596C (zh) 多节点计算机系统和用于监视其性能的方法
JP6960444B2 (ja) 計算機システム及びリソース管理方法
JP5609730B2 (ja) 情報処理プログラム及び方法、転送処理装置
JP7234702B2 (ja) 情報処理装置、コンテナ配置方法及びコンテナ配置プログラム
KR20200080458A (ko) 클라우드 멀티-클러스터 장치
JP3782955B2 (ja) 複数の処理システムのコンピューター資源の使用を見積もるシステムおよび方法
JP2020160775A (ja) コンテナ起動ホスト選択装置、コンテナ起動ホスト選択システム、コンテナ起動ホスト選択方法及びプログラム
WO2013171944A1 (ja) 仮想マシン管理システム、仮想マシン管理方法およびプログラム
US11212174B2 (en) Network management device and network management method
JP5515889B2 (ja) 仮想マシンシステム、自動マイグレーション方法および自動マイグレーションプログラム
US20150074454A1 (en) Information processing method and apparatus for migration of virtual disk
US11635996B2 (en) Management system and management method for migrating a business system operating on a target infrastructure
JP6325348B2 (ja) 仮想マシン配置装置
JP2018018175A (ja) 仮想マシン制御プログラム、仮想マシン制御方法および仮想マシン制御装置
Surya et al. Prediction of resource contention in cloud using second order Markov model
JP6963465B2 (ja) 計算機システム及びデータ処理の制御方法
CN102597957B (zh) 系统部署确定系统、系统部署确定方法及程序
JP6213167B2 (ja) 分散配備装置、分散配備方法、および分散配備プログラム
JP5617586B2 (ja) 情報処理プログラム、中継装置及び中継管理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200708

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211011

R150 Certificate of patent or registration of utility model

Ref document number: 6960444

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150