JP2022080545A - サービス管理装置、サービス管理方法、及びサービス管理プログラム - Google Patents
サービス管理装置、サービス管理方法、及びサービス管理プログラム Download PDFInfo
- Publication number
- JP2022080545A JP2022080545A JP2020191676A JP2020191676A JP2022080545A JP 2022080545 A JP2022080545 A JP 2022080545A JP 2020191676 A JP2020191676 A JP 2020191676A JP 2020191676 A JP2020191676 A JP 2020191676A JP 2022080545 A JP2022080545 A JP 2022080545A
- Authority
- JP
- Japan
- Prior art keywords
- service
- program
- service management
- volume
- priority
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
- 238000007726 management method Methods 0.000 title claims description 54
- 230000004044 response Effects 0.000 claims abstract description 32
- 238000004364 calculation method Methods 0.000 claims description 18
- 230000006855 networking Effects 0.000 claims description 2
- 230000003111 delayed effect Effects 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 23
- 238000000034 method Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 10
- 238000004891 communication Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 4
- 239000004065 semiconductor Substances 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/252—Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Debugging And Monitoring (AREA)
Abstract
【課題】サービスの応答時間が遅延するのを抑制すること。【解決手段】サービス30を実現する複数のプログラム31a、31b、32a~32d、33a~33cの各々の実行時間を取得する取得部55と、各々の実行時間に基づいて、複数のプログラム31a、31b、32a~32d、33a~33cのいずれかがデータの読み出しと書き込みを行うストレージ装置12の複数のボリューム41a~41cのうちで、サービス30の応答時間に最も影響を与えるボリュームを特定する特定部57と、特定したボリュームへのデータの書き込みと読み出しの優先度を、他のボリュームへのデータの書き込みと読み出しの優先度よりも高くする管理部58とを有するサービス管理装置23による。【選択図】図10
Description
本発明は、サービス管理装置、サービス管理方法、及びサービス管理プログラムに関する。
クラウドコンピューティング技術の発展に伴い、複数のプログラムを組み合わせて一つのサービスを提供するマイクロサービスアーキテクチャが普及しつつある。マイクロサービスアーキテクチャにおけるプログラムがデータベースを参照する場合、そのデータベースへのデータの書き込みや読み出しに要する時間によってサービスの応答時間が遅延することがある。
一側面によれば、サービスの応答時間が遅延するのを抑制することを目的とする。
一側面によれば、サービスを実現する複数のプログラムの各々の実行時間を取得する取得部と、各々の前記実行時間に基づいて、複数の前記プログラムのいずれかがデータの読み出しと書き込みを行うストレージ装置の複数のボリュームのうちで、前記サービスの応答時間に最も影響を与えるボリュームを特定する特定部と、特定した前記ボリュームへのデータの書き込みと読み出しの優先度を、他の前記ボリュームへのデータの書き込みと読み出しの優先度よりも高くする管理部とを有するサービス管理装置が提供される。
一側面によれば、サービスの応答時間が遅延するのを抑制できる。
本実施形態の説明に先立ち、本願発明者が検討した事項について説明する。
図1は、Webサービスを実現する3層アーキテクチャの模式図である。
ここでは、SNS(Social Networking Service)をWebサービスの例にして3層アーキテクチャについて説明する。3層アーキテクチャにおいては、フロントエンド1、ロジック2、及びDBMS(データベースマネジメントシステム)3の3層でWebサービスが実現される。このうち、フロントエンド1は、利用者端末から各種のデータを受け付けるプログラムである。例えば、利用者端末がSNSに記事を投稿する場合は、ユーザ情報と、その記事に係るテキストデータ及び画像データをフロントエンド1が受け付ける。
図1は、Webサービスを実現する3層アーキテクチャの模式図である。
ここでは、SNS(Social Networking Service)をWebサービスの例にして3層アーキテクチャについて説明する。3層アーキテクチャにおいては、フロントエンド1、ロジック2、及びDBMS(データベースマネジメントシステム)3の3層でWebサービスが実現される。このうち、フロントエンド1は、利用者端末から各種のデータを受け付けるプログラムである。例えば、利用者端末がSNSに記事を投稿する場合は、ユーザ情報と、その記事に係るテキストデータ及び画像データをフロントエンド1が受け付ける。
また、ロジック2は、フロントエンド1が受け付けたデータに対して種々の処理を行うプログラムである。一例として、ロジック2は、ユーザ情報に基づいてユーザ認証を行う。
DBMS3は、ロジック2が処理した種々のデータを不図示のストレージ装置に書き込んだり、当該データをストレージ装置から読み出したりするプログラムである。
図2は、図1のWebサービスと等価なサービスをマイクロサービスアーキテクチャで実現するシステムの模式図である。
図2に示すように、サービス5においては、プログラムが機能ごとに細分化される。例えば、フロントエンド1は、画像データを受け付けるフロントエンド1aと、画像データ以外のデータを受け付けるフロントエンド1bに細分化される。
また、ロジック2は、機能ごとにロジック2a~2dに分けられる。このうち、ロジック2aは、フロントエンド1aが受け付けた画像データに対して所定の処理を行うプログラムである。また、ロジック2bは、フロントエンド1bが受け付けたテキストデータに対して所定の処理を行うプログラムである。そして、ロジック2cは、フロントエンド1bが受け付けたユーザ情報に基づいてユーザ認証を行うプログラムである。ロジック2dは、ユーザ認証が成功した場合に、テキストデータと画像データとを合わせた記事を生成するプログラムである。
更に、DBMS3はDBMS3a~3cに細分化される。このうち、DBMS3aはストレージ装置に画像データを格納するプログラムであり、DBMS3bはストレージ装置に記事を格納するプログラムである。そして、DBMS3cは、ストレージ装置にユーザ情報を格納するプログラムである。
SNS等のサービスでは、レスポンスの速さが求められるため、サービス5はスループットよりも応答時間が重視される傾向にある。なお、応答時間は、サービス5が利用者端末から処理の依頼を受け付けてから、その処理が完了したことを示す通知を利用者端末に返すまでの時間である。電子商取引、インターネットバンキング、及びオンラインゲーム等のシステムにおいても同様に応答時間が重視される。要求される応答時間はシステムによって異なるが、例えば10ms~100ms以下の応答時間が要求されることがある。
但し、サービス5においては、DBMS3a~3cがストレージ装置にデータを書き込んだり、DBMS3a~3cがストレージ装置からデータを読み出したりするIO時間がボトルネックとなって応答時間が長くなることがある。その場合に応答時間を短くするために、DBMS3a~3cがOS(オペレーティングシステム)に対して発行するIO要求の優先度を、DBMS3a~3cの全てについて現状よりも高くすることも考えられる。IO要求は、ストレージ装置へのデータの書き込みや、ストレージ装置のデータの読み出しをOSに要求するシステムコールである。また、IO要求の優先度は、複数のIO要求の処理順を示す数値である。例えば、OSは、優先度が「1」のIO要求を、優先度が「2」のIO要求よりも先に処理する。
しかし、このように全てのDBMS3a~3cが発行するIO要求の優先度を同時に高くしても、各DBMS3a~3cは一つのストレージ装置を共有しているため、各DBMS3a~3cが同時にデータの読み書きを行うことはできない。そのため、サービス5の全体としてはデータの読み書きに要する時間を大きく短縮することはできず、応答時間を短くするのは困難である。
(本実施形態)
図3は、本実施形態に係るシステムの構成図である。
このシステム10は、マイクロサービスアーキテクチャを採用したシステムであって、SNSを実現するサービスである。なお、SNSに代えて、電子商取引、インターネットバンキング、及びオンラインゲームのいずれかのサービスをシステム10で実現してもよい。
図3は、本実施形態に係るシステムの構成図である。
このシステム10は、マイクロサービスアーキテクチャを採用したシステムであって、SNSを実現するサービスである。なお、SNSに代えて、電子商取引、インターネットバンキング、及びオンラインゲームのいずれかのサービスをシステム10で実現してもよい。
一例として、システム10は、物理サーバ11とストレージ装置12とを有する。このうち、物理サーバ11は、マイクロサービスアーキテクチャを実現するための種々のプログラムを実行する計算機である。また、ストレージ装置12は、システム10におけるデータベースを実現するためのハードウェアである。
なお、物理サーバ11とストレージ装置12は、LAN(Local Area Network)やインターネット等のネットワーク14を介して相互に接続される。
サービスの利用者は、自分が所有するスマートフォン等の利用者端末13をネットワーク14に接続することにより、システム10が提供するSNS等のサービスを利用することができる。
図4は、物理サーバ11の模式図である。
図4に示すように、物理サーバ11は、CPU(Central Processing Unit)やメモリ等の物理的なリソース20を有しており、そのリソース20がホストOS21を実行する。
図4に示すように、物理サーバ11は、CPU(Central Processing Unit)やメモリ等の物理的なリソース20を有しており、そのリソース20がホストOS21を実行する。
更に、物理サーバ11は、ホストOS21の上で複数の仮想マシン22を起動する。以下では、各仮想マシン22を「VM1」、「VM2」、…、「VMn」等の文字列で識別する。また、本実施形態では「VMn」で識別される仮想マシンをサービス管理装置23として用いる。サービス管理装置23は、後述のようにシステム10が提供するサービスの応答時間を小さくする機能を有する。なお、このように仮想マシンでサービス管理装置23を実現するのではなく、物理サーバ11とは別の物理サーバをサービス管理装置23として用いてもよい。
各仮想マシン22は、リソース20の一部を使用してコンテナ24を起動する。コンテナ24を起動するために各仮想マシン22が使用するコンテナエンジンとしては例えばDOCKER(登録商標)がある。また、各コンテナは、システム10が提供するサービスを実現するためのプログラムを実行する。
図5は、利用者端末13の画面表示例を示す模式図である。
この例では、利用者端末13の画面に、第1の記事13aと第2の記事13bとが表示される。このうち、第1の記事13aは、利用者端末13を所有している利用者Aが投稿しようとしている記事であって、テキストデータと画像データとを有する。
この例では、利用者端末13の画面に、第1の記事13aと第2の記事13bとが表示される。このうち、第1の記事13aは、利用者端末13を所有している利用者Aが投稿しようとしている記事であって、テキストデータと画像データとを有する。
また、第2の記事13bは、利用者Aとは異なる利用者Bが投稿した記事である。この例では、第2の記事13bはテキストデータのみからなる。
図6は、システム10が提供するサービス30の模式図である。
この例では、フロントエンド31a、31b、ロジック32a~32d、及びDBMS(Database Management System)33a~33cの各プログラムによってサービス30が実現される。これらのプログラムは、それぞれ異なるコンテナ24において実行される。例えば、フロントエンド31aは「VM1」の仮想マシン22の一つのコンテナ24が実行し、フロントエンド31bは「VM2」の仮想マシン22の一つのコンテナ24が実行する。
この例では、フロントエンド31a、31b、ロジック32a~32d、及びDBMS(Database Management System)33a~33cの各プログラムによってサービス30が実現される。これらのプログラムは、それぞれ異なるコンテナ24において実行される。例えば、フロントエンド31aは「VM1」の仮想マシン22の一つのコンテナ24が実行し、フロントエンド31bは「VM2」の仮想マシン22の一つのコンテナ24が実行する。
フロントエンド31aは、第1の記事13a(図5参照)にある画像データを利用者端末13から受け付けるプログラムである。また、フロントエンド31bは、第1の記事13aにあるテキストデータを利用者端末13から受け付けるプログラムである。更に、フロントエンド31bは、ユーザ名とパスワードとを組み合わせたユーザ情報も利用者端末13から受け付ける。
なお、利用者端末13は、データの種類が画像データかそれ以外かに応じて、このようにフロントエンド31aとフロントエンド31bの各々にデータを振り分ける。
ロジック32aは、フロントエンド31aが受け付けた画像データに対して所定の処理を行うプログラムである。また、ロジック32bは、フロントエンド31bが受け付けたテキストデータに対して所定の処理を行うプログラムである。そして、ロジック32cは、フロントエンド31bが受け付けたユーザ情報に基づいてユーザ認証を行うプログラムである。ロジック32dは、ユーザ認証が成功した場合に、テキストデータと画像データとを合わせた第1の記事13a(図5参照)を生成するプログラムである。
更に、DBMS33aは、画像データをストレージ装置12(図3参照)に格納するプログラムである。また、DBMS33bは、第1の記事13aをストレージ装置12に格納するプログラムである。そして、DBMS33cは、ユーザ情報をストレージ装置12に格納するプログラムである。
なお、図6における複数の矢印は、呼び出し元と呼び出し先の関係にあるプログラム同士を繋ぐ経路であり、根元側のプログラムが先端側のプログラムを呼び出していることを示す。例えば、フロントエンド31aとロジック32aとの間の矢印は、フロントエンド31aがロジック32aを呼び出していることを示す。
図7は、DBMS33a~33c、ホストOS21、及びストレージ装置12の模式図である。
図7に示すように、ストレージ装置12は、ストレージ41とストレージコントローラ42とを有する。ストレージ41は、各種のデータを記憶するハードディスクや半導体記憶装置等のハードウェアであって、ボリューム41a~41cを有する。
ボリューム41aは、DBMS33aがデータの書き込みと読み出しを行う記憶領域である。一例として、ボリューム41aは画像データを記憶する。ボリューム41bは、DBMS33bがデータの書き込みと読み出しを行う記憶領域であり、第1の記事13aを記憶する。そして、ボリューム41cは、DBMS33cがデータの書き込みと読み出しを行う記憶領域であって、ユーザ情報を記憶する。
ストレージコントローラ42は、各ボリューム41a~41cへのデータの書き込みや読み出しを行うハードウェアである。
次に、ストレージ装置12がデータの書き込みや読み出しを行うときの処理の流れについて説明する。
まず、DBMS33a~33cの各々が、ホストOS21に対してIO要求を発行する。IO要求は、ストレージ41へのデータの書き込みや、ストレージ41のデータの読み出しをホストOS21に要求するシステムコールである。
IO要求を受けたホストOS21は、各々のIO要求をその優先度の順に処理をする。優先度は、複数のボリューム41a~41cごとにシステム10の開発者によって定められた数値であって、データの書き込みと読み込みを実行する処理順を示す。なお、このようにホストOS21がIO要求を処理するのではなく、ストレージコントローラ42がIO要求を処理してもよい。この場合は、ストレージコントローラ42がIO要求をその優先度順に処理することになる。
そして、ホストOS21は、優先度が高いIO要求から順に、ストレージコントローラ42に対してストレージ41へのデータの書き込みや読み出しを指示する。例えば、ホストOS21が、DBMS33a~33cの全てからデータの書き込みを要求するIO要求を受けた場合を考える。この場合、ホストOS21は、全てのIO要求のうちで最も優先度が高い要求を特定し、そのIO要求に係るデータをストレージ41に書き込むようにストレージコントローラ42に指示する。例えば、DBMS33aのIO要求の優先度が最も高い場合は、ホストOS21は、他のIO要求を処理する前に、ストレージコントローラ42に対してボリューム41aにデータを書き込むように指示する。
但し、システム10の開発者は、ボリューム41a~41cのうちで読み書きに最も時間がかかるボリュームに係るIO要求の優先度を最も高くしているとは限らない。そのため、このようにシステム10の開発者が決定したIO要求の優先度をそのまま用いたのでは、システム10の応答時間を短くするのが難しい。そこで、サービス管理装置23は、以下のようにホストOSに対してIO要求の優先度を変更するように指示する。
次に、本実施形態に係るサービス管理方法について説明する。
図8~図10は、本実施形態に係るサービス管理方法について示す模式図である。
まず、図8に示すように、サービス管理装置23が、フロントエンド31a、31b、ロジック32a~32d、及びDBMS33a~33cの各プログラムの実行時間を測定する。
図8~図10は、本実施形態に係るサービス管理方法について示す模式図である。
まず、図8に示すように、サービス管理装置23が、フロントエンド31a、31b、ロジック32a~32d、及びDBMS33a~33cの各プログラムの実行時間を測定する。
次に、図9に示すように、サービス管理装置23が、呼び出し元と呼び出し先の関係にあるプログラム同士を繋いだ複数の経路の各々に沿って実行時間の合計値を算出する。
例えば、フロントエンド31a→ロジック32a→ロジック32d→DBMS33aという経路を考える。この場合、サービス管理装置23は、まずフロントエンド31aとロジック32aの各実行時間の合計値(1ms+2ms=3ms)を算出する。次いで、サービス管理装置23は、その合計値と、ロジック32dの実行時間とを足した新たな合計値(3ms+2ms=5ms)を算出する。更に、サービス管理装置23は、その合計値と、DBMS33aの実行時間とを足した新たな合計値(5ms+5ms=10ms)を算出する。これにより、フロントエンド31a→ロジック32a→ロジック32d→DBMS33aの経路における実行時間の合計値は10msとなる。
なお、ロジック32dは、フロントエンド31a→ロジック32a→ロジック32d、フロントエンド31b→ロジック32b→ロジック32d、フロントエンド31b→ロジック32c→ロジック32dの三つの経路の終点である。この場合、サービス管理装置23は、三つの経路の各々に沿って計算した三つの合計値のうちの最大値をロジック32dにおける合計値とする。
これにより、DBMS33bを終点とする経路に沿った実行時間の合計値は15msとなる。また、DBMS33cを終点とする経路に沿った実行時間の合計値は3msとなる。
次に、図10に示すように、サービス管理装置23が、DBMS33a~33cのうち、実行時間の合計値が最も大きいプログラムを特定する。図10においては、実行時間の合計値が最も大きくなる経路と、その経路の途中にあるプログラムとを実線で示している。
この例では、DBMS33bを終点とする経路に沿った実行時間の合計値が15msで最も大きいため、サービス管理装置23はDBMS33bを特定する。
DBMS33bはボリューム41b(図7参照)に対してデータの書き込みと読み出しを行うプログラムである。よって、サービス管理装置23は、当該ボリューム41bを、複数のボリューム41a~41cのうちでサービス30の応答時間に最も影響を与えるボリュームとして特定する。
次いで、サービス管理装置23は、特定したボリューム41bに対するIO要求の優先度を他のボリューム41a、41cの優先度よりも高くする指示をホストOS21に対して通知する。
これにより、応答時間に最も影響を与えるボリューム41bへのデータの書き込みや読み出しが、他のボリューム41a、41cにおけるよりも先に行われるため、サービス30の応答時間が遅延するのを抑制できる。
次に、サービス管理装置23の機能構成について説明する。
図11は、サービス管理装置23の機能構成図である。
図11に示すように、サービス管理装置23は、通信部51、記憶部52、及び制御部53を備える。
図11は、サービス管理装置23の機能構成図である。
図11に示すように、サービス管理装置23は、通信部51、記憶部52、及び制御部53を備える。
このうち、通信部51は、サービス管理装置23をネットワーク14(図3参照)に接続するためのインターフェースである。また、記憶部52は、実行時間情報54を記憶する。
図12は、実行時間情報54の模式図である。
図12に示すように、実行時間情報54は、フロントエンド31a、31b、ロジック32a~32d、及びDBMS33a~33cの各プログラムとその実行時間とを対応付けた情報である。更に、実行時間情報54には、図10で説明した合計値も各プログラムと対応付けて格納される。
図12に示すように、実行時間情報54は、フロントエンド31a、31b、ロジック32a~32d、及びDBMS33a~33cの各プログラムとその実行時間とを対応付けた情報である。更に、実行時間情報54には、図10で説明した合計値も各プログラムと対応付けて格納される。
再び図11を参照する。
制御部53は、サービス管理装置23の各部を制御する処理部である。一例として、制御部53は、取得部55、算出部56、特定部57、及び管理部58を有する。
制御部53は、サービス管理装置23の各部を制御する処理部である。一例として、制御部53は、取得部55、算出部56、特定部57、及び管理部58を有する。
取得部55は、図8に示したように、フロントエンド31a、31b、ロジック32a~32d、及びDBMS33a~33cの各プログラムの実行時間を取得する処理部である。一例として、取得部55は、利用者端末13がサービス30に記事の投稿をしたときに、フロントエンド31aが処理を受け付けてからその処理を完了するまでの時間を実行時間として取得する。フロントエンド31a以外のプログラムについても、取得部55は同様にして実行時間を取得する。
更に、取得部55は、取得した実行時間を各プログラムと対応付けて実行時間情報54に格納する。
また、算出部56は、フロントエンド31a、31b、ロジック32a~32d、及びDBMS33a~33cの各プログラムのうち、呼び出し元と呼び出し先の関係にあるプログラム同士を繋いだ複数の経路を特定する。そして、算出部56は、図9に示したようにその経路の各々に沿って実行時間の合計値を算出し、それを各プログラムと対応付けて実行時間情報54に格納する。
特定部57は、各プログラムの実行時間に基づいて、複数のボリューム41a~41cのうちでサービス30の応答時間に最も影響を与えるボリュームを特定する処理部である。例えば、特定部57は、実行時間情報54における実行時間の合計値が最も大きいDBMS33bがデータの書き込みと読み出しを行うボリューム41bを、応答時間に最も影響を与えるボリュームとして特定する。
管理部58は、特定部57が特定したボリュームに対するIO要求の優先度を、他のボリュームの優先度よりも高くする処理部である。一例として、特定部57が特定したボリュームが上記のようにボリューム41bである場合を考える。この場合、管理部58は、ボリューム41bに対するIO要求の優先度を他のボリューム41a、41cの優先度よりも高くする指示をホストOS21に対して通知する。なお、ストレージコントローラ42がIO要求を処理する場合は、管理部58は、当該優先度を高くする指示をストレージコントローラ42に通知してもよい。
次に、本実施形態に係るサービス管理方法について説明する。
図13は、本実施形態に係るサービス管理方法のフローチャートである。
まず、取得部55が、フロントエンド31a、31b、ロジック32a~32d、DBMS33a~33cの各プログラムの実行時間を取得する(ステップS11)。
図13は、本実施形態に係るサービス管理方法のフローチャートである。
まず、取得部55が、フロントエンド31a、31b、ロジック32a~32d、DBMS33a~33cの各プログラムの実行時間を取得する(ステップS11)。
次に、取得部55が、取得した実行時間と各プログラムとを対応付けて実行時間情報54に格納する(ステップS12)。
続いて、算出部56が、呼び出し元のプログラムをフロントエンド31aに設定する(ステップS13)。
次いで、算出部56が、呼び出し元のプログラムが呼び出す呼び出し先のプログラムを特定する(ステップS14)。ステップS14を初めて実行するときは、呼び出し元のプログラムがフロントエンド31aに設定されているため、呼び出し先のプログラムはロジック32aとなる。
次に、算出部56が、実行時間情報54を参照することにより、ステップS14で特定した呼び出し先のプログラムについて、フロントエンドからの実行時間の合計値を算出する(ステップS15)。ステップS15を初めて実行するときは、フロントエンドはフロントエンド31aであり、呼び出し先のプログラムはロジック32aである。よって、算出部56は、図8のようにフロントエンド31aの実行時間(1ms)とロジック32aの実行時間(2ms)とを足した合計値(3ms)を算出する。
次いで、算出部56が、ステップS15で算出した合計値をプログラムと対応付けて実行時間情報54に格納する(ステップS16)。
続いて、算出部56が、ステップS14で特定した呼び出し先のプログラムが呼び出すプログラムが存在するかを判断する(ステップS17)。ステップS17を初めて実行するときは、呼び出し先のプログラムであるロジック32aが更にロジック32dを呼び出しているため、算出部56は、呼び出すプログラムが存在する(YES)と判断する。このように呼び出すプログラムが存在すると判断された場合(ステップS17:肯定)にはステップS14に戻る。
一方、ステップS14で特定した呼び出し先のプログラムがDBMS33a~33cの場合は、これらが呼び出すプログラムが存在しないため、算出部56は、呼び出すプログラムが存在しない(NO)と判断する。このように呼び出すプログラムが存在しないと判断された場合(ステップS17:否定)にはステップS18に移る。
ステップS18においては、算出部56が、フロントエンド31bを呼び出し元に設定したかを判断する。ここで、フロントエンド31bを呼び出し元に設定していないと算出部56が判断した場合(ステップS18:否定)にはステップS19に移る。
ステップS19においては、算出部56が、フロントエンド31bを呼び出し元のプログラムに設定する。その後、再びステップS14に戻る。
一方、フロントエンド31bを呼び出し元に設定したと算出部56が判断した場合(ステップS18:肯定)にはステップS20に移る。
ステップS20においては、特定部57が、実行時間情報54における実行時間の合計値が最も大きいDBMSがデータの書き込みと読み出しを行うボリュームを、サービス30の応答時間に最も影響を与えるボリュームとして特定する。
次に、管理部58が、ステップS20で特定したボリュームに対するIO要求の優先度を、他のボリュームに対するIO要求の優先度よりも高くする(ステップS21)。
以上により、本実施形態に係るサービス管理方法の基本的な処理を終える。
上記した本実施形態によれば、ステップS21において、管理部58が、ボリューム41a~41cのうちでサービス30の応答時間に最も影響を与えるボリュームに対するIO要求の優先度を、他のボリュームよりも高くする。そのため、そのボリュームに対するデータの書き込みや読み出しが他のボリュームよりも優先的に行われるようになり、サービス30の応答時間が遅延するのを抑制できる。
しかも、ステップS20において、特定部57が、実行時間の合計値が最も大きいDBMSがデータの書き込みと読み出しを行うボリュームを、サービス30の応答時間に最も影響を与えるボリュームとして特定する。実行時間の合計値は応答時間に直接的に影響を与えるため、これにより応答時間を遅延させるボトルネックとなるボリュームを特定部57が特定できる。
(ハードウェア構成)
図14は、物理サーバ11のハードウェア構成図である。
図14に示すように、物理サーバ11は、記憶装置11a、メモリ11b、プロセッサ11c、通信インターフェース11d、入力装置11f、及び媒体読取装置11gを有する。これらの各部は、バス11iにより相互に接続される。
図14は、物理サーバ11のハードウェア構成図である。
図14に示すように、物理サーバ11は、記憶装置11a、メモリ11b、プロセッサ11c、通信インターフェース11d、入力装置11f、及び媒体読取装置11gを有する。これらの各部は、バス11iにより相互に接続される。
このうち、記憶装置11aは、HDD(Hard Disk Drive)やSSD(Solid State Drive)等の不揮発性のストレージであって、ホストOS21、仮想化プログラム100、及びサービス管理プログラム101を記憶する。メモリ11bとプロセッサ11cが協働して仮想化プログラム100を実行することにより各仮想マシン22(図4参照)を実現することができる。
また、サービス管理プログラム101は、図4の「VMn」の仮想マシンをサービス管理装置23として機能させるためのプログラムである。
なお、サービス管理プログラム101をコンピュータが読み取り可能な記録媒体11hに記録し、媒体読取装置11gを介してプロセッサ11cにそのサービス管理プログラム101を読み取らせるようにしてもよい。
そのような記録媒体11hとしては、例えばCD-ROM (Compact Disc - Read Only Memory)、DVD (Digital Versatile Disc)、及びUSB (Universal Serial Bus)メモリ等の物理的な可搬型記録媒体がある。また、フラッシュメモリ等の半導体メモリやハードディスクドライブを記録媒体11hとして使用してもよい。これらの記録媒体11hは、物理的な形態を持たない搬送波のような一時的な媒体ではない。
更に、公衆回線、インターネット、及びLAN等に接続された装置にサービス管理プログラム101を記憶させてもよい。その場合は、図4の「VMn」の仮想マシンに割り当てられたプロセッサ11cがそのサービス管理プログラム101を読み出して実行すればよい。
一方、メモリ11bは、DRAM(Dynamic Random Access Memory)等のようにデータを一時的に記憶するハードウェアである。そして、図4の「VMn」の仮想マシンに割り当てられたメモリ11bの上にサービス管理プログラム101が展開される。
プロセッサ11cは、物理サーバ11の各部を制御するCPUやGPU(Graphical Processing Unit)等のハードウェアである。また、図4の「VMn」の仮想マシンに割り当てられたプロセッサ11cとメモリ11bとが協働してサービス管理プログラム101を実行する。
このようにメモリ11bとプロセッサ11cとが協働してサービス管理プログラム101を実行することにより、サービス管理装置23の制御部53(図11参照)が実現される。その制御部53には、取得部55、算出部56、特定部57、及び管理部58が含まれる。
また、記憶部52(図11参照)は、図4の「VMn」の仮想マシンに割り当てられた記憶装置11aとメモリ11bによって実現される。
更に、通信インターフェース11dは、物理サーバ11をネットワーク14(図3参照)に接続するためのNIC(Network Interface Card)等のハードウェアである。図4の「VMn」の仮想マシンに割り当てられた通信インターフェース11dにより通信部51(図11参照)が実現される。
また、入力装置11fは、サービス30の管理者が物理サーバ11に各種のデータを入力するためのキーボードやマウス等のハードウェアである。
媒体読取装置11gは、記録媒体11hを読み取るためのCDドライブ、DVDドライブ、及びUSBインターフェース等のハードウェアである。
1、1a~1b…フロントエンド、2、2a~2d…ロジック、5…サービス、10…システム、11…物理サーバ、12…ストレージ装置、13…利用者端末、13a…第1の記事、13b…第2の記事、14…ネットワーク、20…リソース、22…仮想マシン、23…サービス管理装置、24…コンテナ、30…サービス、31a、31b…フロントエンド、32a~32d…ロジック、41…ストレージ、41a~41c…ボリューム、42…ストレージコントローラ、51…通信部、52…記憶部、53…制御部、54…実行時間情報、55…取得部、56…算出部、57…特定部、58…管理部。
Claims (5)
- サービスを実現する複数のプログラムの各々の実行時間を取得する取得部と、
各々の前記実行時間に基づいて、複数の前記プログラムのいずれかがデータの読み出しと書き込みを行うストレージ装置の複数のボリュームのうちで、前記サービスの応答時間に最も影響を与えるボリュームを特定する特定部と、
特定した前記ボリュームへのデータの書き込みと読み出しの優先度を、他の前記ボリュームへのデータの書き込みと読み出しの優先度よりも高くする管理部と、
を有することを特徴とするサービス管理装置。 - 複数の前記プログラムのうち、呼び出し元と呼び出し先の各々のプログラム同士を繋いだ複数の経路の各々に沿って前記実行時間の合計値を算出する算出部を更に有し、
前記特定部は、
複数の前記プログラムのうちで、前記合計値が最も大きい前記プログラムが書き込みと読み出しをする前記ボリュームを、前記応答時間に最も影響を与える前記ボリュームとして特定することを特徴とする請求項1に記載のサービス管理装置。 - 前記サービスは、SNS(Social Networking Service)、電子商取引、インターネットバンキング、及びオンラインゲームのいずれかであることを特徴とする請求項1に記載のサービス管理装置。
- コンピュータが、
サービスを実現する複数のプログラムの各々の実行時間を取得し、
各々の前記実行時間に基づいて、複数の前記プログラムのいずれかがデータの読み出しと書き込みを行うストレージ装置の複数のボリュームのうちで、前記サービスの応答時間に最も影響を与えるボリュームを特定し、
特定した前記ボリュームへのデータの書き込みと読み出しの優先度を、他の前記ボリュームへのデータの書き込みと読み出しの優先度よりも高くする、
処理を実行することを特徴とするサービス管理方法。 - サービスを実現する複数のプログラムの各々の実行時間を取得し、
各々の前記実行時間に基づいて、複数の前記プログラムのいずれかがデータの読み出しと書き込みを行うストレージ装置の複数のボリュームのうちで、前記サービスの応答時間に最も影響を与えるボリュームを特定し、
特定した前記ボリュームへのデータの書き込みと読み出しの優先度を、他の前記ボリュームへのデータの書き込みと読み出しの優先度よりも高くする、
処理をコンピュータに実行させるためのサービス管理プログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020191676A JP2022080545A (ja) | 2020-11-18 | 2020-11-18 | サービス管理装置、サービス管理方法、及びサービス管理プログラム |
US17/351,290 US11442668B2 (en) | 2020-11-18 | 2021-06-18 | Prioritizing volume accesses in multi-volume storage device based on execution path of a service |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020191676A JP2022080545A (ja) | 2020-11-18 | 2020-11-18 | サービス管理装置、サービス管理方法、及びサービス管理プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2022080545A true JP2022080545A (ja) | 2022-05-30 |
Family
ID=81586649
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020191676A Withdrawn JP2022080545A (ja) | 2020-11-18 | 2020-11-18 | サービス管理装置、サービス管理方法、及びサービス管理プログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US11442668B2 (ja) |
JP (1) | JP2022080545A (ja) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2257874A4 (en) * | 2008-03-27 | 2013-07-17 | Rocketick Technologies Ltd | DESIGN SIMULATION ON THE BASIS OF PARALLEL PROCESSORS |
JP6064571B2 (ja) | 2012-12-10 | 2017-01-25 | 富士通株式会社 | 処理プログラム、処理方法および処理装置 |
US11093836B2 (en) | 2016-06-15 | 2021-08-17 | International Business Machines Corporation | Detecting and predicting bottlenecks in complex systems |
US10747568B2 (en) | 2017-05-30 | 2020-08-18 | Magalix Corporation | Systems and methods for managing a cloud computing environment |
-
2020
- 2020-11-18 JP JP2020191676A patent/JP2022080545A/ja not_active Withdrawn
-
2021
- 2021-06-18 US US17/351,290 patent/US11442668B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US11442668B2 (en) | 2022-09-13 |
US20220156005A1 (en) | 2022-05-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020082871A1 (zh) | 一种并行化执行区块链交易的方法、装置及系统 | |
US9413683B2 (en) | Managing resources in a distributed system using dynamic clusters | |
US20150324138A1 (en) | Dataset replica migration | |
CN112887437A (zh) | 区块链交易处理方法、区块链节点和区块链 | |
CN110247984A (zh) | 业务处理方法、装置及存储介质 | |
US11947842B2 (en) | Method for writing data in append mode, device and storage medium | |
US10241926B2 (en) | Migrating buffer for direct memory access in a computer system | |
CN107402950A (zh) | 基于分库分表的文件处理方法和装置 | |
TWI701932B (zh) | 一種身份認證方法、伺服器及用戶端設備 | |
CN109343962A (zh) | 数据处理方法、装置及分布式服务系统 | |
US20230289207A1 (en) | Techniques for Concurrently Supporting Virtual NUMA and CPU/Memory Hot-Add in a Virtual Machine | |
US8838837B2 (en) | Failover mechanism | |
US20230221971A1 (en) | Multiple port emulation | |
CN112596669A (zh) | 一种基于分布式存储的数据处理方法及装置 | |
JP2022080545A (ja) | サービス管理装置、サービス管理方法、及びサービス管理プログラム | |
CN107016296B (zh) | 一种数据索引构建、数据读取的方法、装置及电子设备 | |
US20230114321A1 (en) | Cloud Data Ingestion System | |
US11241628B2 (en) | Augmented gaming with item gifting and online gameplay | |
CN117043755A (zh) | 计算系统中的存储器操作管理 | |
CN111858665B (zh) | 一种提升软拷贝读性能的方法、系统、终端及存储介质 | |
US11748285B1 (en) | Transaction ordering management | |
US11627085B2 (en) | Non-transitory computer-readable recording medium, service management device, and service management method | |
US20170126513A1 (en) | Generating a deferrable data flow | |
KR20200131857A (ko) | 스펙트레 완화를 위한 데이터 캐시 세분화 | |
CN113806249B (zh) | 一种对象存储有序列举方法、装置、终端及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20230804 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20240129 |