IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ヤフー株式会社の特許一覧

特開2024-134041情報処理装置、情報処理方法、および情報処理プログラム
<>
  • 特開-情報処理装置、情報処理方法、および情報処理プログラム 図1
  • 特開-情報処理装置、情報処理方法、および情報処理プログラム 図2
  • 特開-情報処理装置、情報処理方法、および情報処理プログラム 図3
  • 特開-情報処理装置、情報処理方法、および情報処理プログラム 図4
  • 特開-情報処理装置、情報処理方法、および情報処理プログラム 図5
  • 特開-情報処理装置、情報処理方法、および情報処理プログラム 図6
  • 特開-情報処理装置、情報処理方法、および情報処理プログラム 図7
  • 特開-情報処理装置、情報処理方法、および情報処理プログラム 図8
  • 特開-情報処理装置、情報処理方法、および情報処理プログラム 図9
  • 特開-情報処理装置、情報処理方法、および情報処理プログラム 図10
  • 特開-情報処理装置、情報処理方法、および情報処理プログラム 図11
  • 特開-情報処理装置、情報処理方法、および情報処理プログラム 図12
  • 特開-情報処理装置、情報処理方法、および情報処理プログラム 図13
  • 特開-情報処理装置、情報処理方法、および情報処理プログラム 図14
  • 特開-情報処理装置、情報処理方法、および情報処理プログラム 図15
  • 特開-情報処理装置、情報処理方法、および情報処理プログラム 図16
  • 特開-情報処理装置、情報処理方法、および情報処理プログラム 図17
  • 特開-情報処理装置、情報処理方法、および情報処理プログラム 図18
  • 特開-情報処理装置、情報処理方法、および情報処理プログラム 図19
  • 特開-情報処理装置、情報処理方法、および情報処理プログラム 図20
  • 特開-情報処理装置、情報処理方法、および情報処理プログラム 図21
  • 特開-情報処理装置、情報処理方法、および情報処理プログラム 図22
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024134041
(43)【公開日】2024-10-03
(54)【発明の名称】情報処理装置、情報処理方法、および情報処理プログラム
(51)【国際特許分類】
   G06F 11/36 20060101AFI20240926BHJP
【FI】
G06F11/36 192
【審査請求】未請求
【請求項の数】12
【出願形態】OL
(21)【出願番号】P 2023044125
(22)【出願日】2023-03-20
(71)【出願人】
【識別番号】500257300
【氏名又は名称】LINEヤフー株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】松浦 聖平
(72)【発明者】
【氏名】佐藤 大己
(72)【発明者】
【氏名】澄川 憲太郎
(72)【発明者】
【氏名】宮崎 崇史
【テーマコード(参考)】
5B042
【Fターム(参考)】
5B042HH49
5B042MA08
5B042MA14
5B042MC22
5B042MC33
(57)【要約】
【課題】自動チューニングモデルを用いたチューニング結果を適切に本番環境に適用することを可能とする情報処理装置、情報処理装方法、および情報処理プログラムを提供すること。
【解決手段】本願に係る情報処理装置は、テスト実行部と、自動チューニング推論部と、リスク評価部とを備える。テスト実行部は、チューニングの対象となるソフトウェアをテスト環境で実行する。自動チューニング推論部は、テスト実行部によるテスト環境でのソフトウェアの実行中にテスト環境のメトリクスデータを入力データとする自動チューニングモデルを用いてソフトウェアのテスト環境でのチューニング値を推論する。リスク評価部は、自動チューニング推論部によって推論されたチューニング値に基づく情報である適用情報を本番環境に適用した場合のリスクである適用リスクを評価する。
【選択図】図3
【特許請求の範囲】
【請求項1】
チューニングの対象となるソフトウェアをテスト環境で実行するテスト実行部と、
前記テスト実行部による前記テスト環境での前記ソフトウェアの実行中に前記テスト環境のメトリクスデータを入力データとする自動チューニングモデルを用いて前記ソフトウェアの前記テスト環境でのチューニング値を推論する自動チューニング推論部と、
前記自動チューニング推論部によって推論された前記チューニング値に基づく情報である適用情報を本番環境に適用した場合のリスクである適用リスクを評価するリスク評価部と、を備える
ことを特徴とする情報処理装置。
【請求項2】
前記自動チューニング推論部は、
前記ソフトウェアの前記テスト環境でのパラメータ値を前記チューニング値として推論する
ことを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記テスト実行部は、
前記自動チューニング推論部によって推論された前記パラメータ値を用いて前記ソフトウェアを前記テスト環境で実行し、
前記リスク評価部は、
前記自動チューニング推論部によって推論された前記パラメータ値に基づいて実行される前記ソフトウェアの前記テスト環境での性能値に基づいて、前記適用リスクを評価する
ことを特徴とする請求項2に記載の情報処理装置。
【請求項4】
前記性能値は、
スループット値およびレスポンスタイム値のうちの少なくとも1つを含む
ことを特徴とする請求項3に記載の情報処理装置。
【請求項5】
前記自動チューニング推論部は、
前記ソフトウェアの前記テスト環境での仮想マシンのスペック値を前記チューニング値として推論する
ことを特徴とする請求項1に記載の情報処理装置。
【請求項6】
前記スペック値は、
CPUコア数およびメモリサイズのうちの少なくとも1つを含む
ことを特徴とする請求項5に記載の情報処理装置。
【請求項7】
前記テスト実行部は、
前記自動チューニング推論部によって推論された前記スペック値を用いて前記ソフトウェアを前記テスト環境で実行し、
前記リスク評価部は、
前記自動チューニング推論部によって推論された前記スペック値と予め定められた閾値との比較結果に基づいて、前記適用リスクを評価する
ことを特徴とする請求項5に記載の情報処理装置。
【請求項8】
前記テスト環境と前記本番環境との差に応じた補正値に基づいて、前記自動チューニング推論部によって推論された前記チューニング値を補正する補正部を備える
ことを特徴とする請求項1~7のいずれか1つに記載の情報処理装置。
【請求項9】
前記補正部による補正結果に基づく情報を前記適用情報として前記本番環境に適用する本番適用部を備える
ことを特徴とする請求項8に記載の情報処理装置。
【請求項10】
前記本番適用部は、
前記チューニング値を前記ソフトウェアの定義ファイルに設定し、前記チューニング値を設定した前記定義ファイルを前記適用情報として前記本番環境に適用する
ことを特徴とする請求項9に記載の情報処理装置。
【請求項11】
コンピュータが実行する情報処理方法であって、
チューニングの対象となるソフトウェアをテスト環境で実行するテスト実行工程と、
前記テスト実行工程による前記テスト環境での前記ソフトウェアの実行中に前記テスト環境のメトリクスデータを入力データとする自動チューニングモデルを用いて前記ソフトウェアの前記テスト環境でのチューニング値を推論する自動チューニング推論工程と、
前記自動チューニング推論工程によって推論された前記チューニング値に基づく情報である適用情報を本番環境に適用した場合のリスクである適用リスクを評価するリスク評価工程と、を含む
ことを特徴とする情報処理方法。
【請求項12】
チューニングの対象となるソフトウェアをテスト環境で実行するテスト実行手順と、
前記テスト実行手順による前記テスト環境での前記ソフトウェアの実行中に前記テスト環境のメトリクスデータを入力データとする自動チューニングモデルを用いて前記ソフトウェアの前記テスト環境でのチューニング値を推論する自動チューニング推論手順と、
前記自動チューニング推論手順によって推論された前記チューニング値に基づく情報である適用情報を本番環境に適用した場合のリスクである適用リスクを評価するリスク評価手順と、をコンピュータに実行させる
ことを特徴とする情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理方法、および情報処理プログラムに関する。
【背景技術】
【0002】
近年、ソフトウェアのチューニングに機械学習技術を応用することによって、ソフトウェアのチューニングを自動化したり、省力化したりする技術(システム向けの機械学習:Machine Learning for Systems)が注目を集めている。
【0003】
例えば、非特許文献には、ソフトウェアの一種であるデータベース管理システムを対象として、データベース管理システムのメトリクスデータを入力データとし、データベース処理のスループットの最大化や問い合わせ処理のレスポンスタイムの最小化を図るデータベースパラメータ値をチューニング値として出力する機械学習モデルである自動チューニングモデルを作成する技術が提案されている。かかる自動チューニングモデルによって、データベース管理システムの性能チューニングを自動化することができる。
【0004】
このような自動化・省力化技術は、多数のソフトウェアを運用・管理する企業において、性能チューニングに係る労力の削減や計算機リソースの利用効率の向上などが図れることから、ニーズが大きい。
【先行技術文献】
【非特許文献】
【0005】
【非特許文献1】Dana Van Aken、外3名、"Automatic Database Management System Tuning Through Large-scale Machine Learning”、SIGMOD '17: Proceedings of the 2017 ACM International Conference on Management of Data、Association for Computing Machinery、2017年5月9日、p.1009-1024
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、上記の非特許文献1では、本番環境で稼働するデータベース管理システムを直接自動チューニングしているため、自動チューニングモデルがチューニング値として出力するパラメータ値が適切でない場合、本番環境の性能を逆に劣化させたり、より多量の計算機リソースを消費したりするといった課題がある。このことは、例えば、自動チューニングモデルが出力するチューニング値がパラメータ値以外の場合であっても同様である。
【0007】
本願は、上記に鑑みてなされたものであって、自動チューニングモデルを用いたチューニング結果を適切に本番環境に適用することを可能とする情報処理装置、情報処理方法、および情報処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【0008】
本願に係る情報処理装置は、テスト実行部と、自動チューニング推論部と、リスク評価部とを備える。テスト実行部は、チューニングの対象となるソフトウェアをテスト環境で実行する。自動チューニング推論部は、テスト実行部によるテスト環境でのソフトウェアの実行中にテスト環境のメトリクスデータを入力データとする自動チューニングモデルを用いてソフトウェアのテスト環境でのチューニング値を推論する。リスク評価部は、自動チューニング推論部によって推論されたチューニング値に基づく情報である適用情報を本番環境に適用した場合のリスクである適用リスクを評価する。
【発明の効果】
【0009】
実施形態の一態様によれば、自動チューニングモデルを用いたチューニング結果を適切に本番環境に適用することを可能とすることができるという効果を奏する。
【図面の簡単な説明】
【0010】
図1図1は、第1実施形態に係る情報処理の一例を示す図である。
図2図2は、第1実施形態に係る情報処理システムの構成の一例を示す図である。
図3図3は、第1実施形態に係る情報処理装置の構成の一例を示す図である。
図4図4は、第1実施形態に係る情報処理装置の要求受付部によって受け付けられた自動チューニング要求に含まれる定義情報の一例を示す図である。
図5図5は、第1実施形態に係る情報処理装置の自動チューニング実行部から出力される自動チューニング推論結果の一例を示す図である。
図6図6は、第1実施形態に係る情報処理装置の補正部から出力される自動チューニング推論補正結果の一例を示す図である。
図7図7は、第1実施形態に係る情報処理装置の処理部による情報処理の一例を示すフローチャートである。
図8図8は、第1実施形態に係る情報処理装置の処理部による自動チューニング準備処理の一例を示すフローチャートである。
図9図9は、第1実施形態に係る情報処理装置の処理部による自動チューニング実行処理の一例を示すフローチャートである。
図10図10は、第1実施形態に係る情報処理装置の処理部によるリスク評価処理の一例を示すフローチャートである。
図11図11は、第1実施形態に係る情報処理装置の処理部による推論結果補正処理の一例を示すフローチャートである。
図12図12は、第1実施形態に係る情報処理装置の処理部による本番環境適用処理の一例を示すフローチャートである。
図13図13は、第2実施形態に係る情報処理システムの構成の一例を示す図である。
図14図14は、第2実施形態に係る本番環境の構成の一例を示す図である。
図15図15は、第2実施形態に係る情報処理装置の構成の一例を示す図である。
図16図16は、第2実施形態に係る情報処理装置の自動チューニング実行部から出力される自動チューニング推論結果の一例を示す図である。
図17図17は、第2実施形態に係る情報処理装置の補正部による自動チューニング推論結果の補正内容の一例を示す図である。
図18図18は、第2実施形態に係る情報処理装置の処理部による自動チューニング実行処理の一例を示すフローチャートである。
図19図19は、第2実施形態に係る情報処理装置の処理部によるリスク評価処理の一例を示すフローチャートである。
図20図20は、第2実施形態に係る情報処理装置の処理部による推論結果補正処理の一例を示すフローチャートである。
図21図21は、第2実施形態に係る情報処理装置の処理部による本番環境適用処理の一例を示すフローチャートである。
図22図22は、実施形態に係る情報処理装置の機能を実現するコンピュータの一例を示すハードウェア構成図である。
【発明を実施するための形態】
【0011】
以下に、本願に係る情報処理装置、情報処理方法、および情報処理プログラムを実施するための形態(以下、「実施形態」と呼ぶ)について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係る情報処理装置、情報処理方法、および情報処理プログラムが限定されるものではない。また、各実施形態は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。また、以下の各実施形態において同一の部位には同一の符号を付し、重複する説明は省略される。
【0012】
〔1.第1実施形態〕
〔1.1.情報処理の一例〕
まず、図1を用いて、第1実施形態に係る情報処理の一例について説明する。図1は、第1実施形態に係る情報処理の一例を示す図であり、情報処理装置1によって実行される。
【0013】
図1に示す情報処理装置1には、CI/CD(Continuous Integration/Continuous Delivery:継続的インテグレーション・継続的デリバリー)に自動チューニング機能が取り入れられており、本番環境5で用いられるソフトウェアであって自動チューニングの対象となるソフトウェアのパラメータ値のチューニングを行う。以下において、自動チューニングの対象となるソフトウェアを自動チューニング対象ソフトウェアと記載する場合がある。
【0014】
継続的インテグレーションは、自動チューニング対象ソフトウェアのビルド処理やテスト処理を自動化する。継続的デリバリーは、テスト後に利用環境に導入可能な状態にリリースする工程までを自動化する。
【0015】
図1に示すように、情報処理装置1は、ユーザUの端末装置2から送信される自動チューニング要求を受け付ける(ステップS1)。自動チューニング要求には、自動チューニングに関する定義情報が含まれている。
【0016】
定義情報には、例えば、自動チューニングリスク評価指示情報、自動チューニング補正指示情報などが含まれる。自動チューニングリスク評価指示情報には、性能値と比較される閾値の情報が含まれ、自動チューニング補正指示情報には、テスト環境4と本番環境5との差に応じた補正値の情報が含まれる。
【0017】
情報処理装置1は、自動チューニング対象ソフトウェアのテスト環境4でのテストを実行する(ステップS2)。テスト環境4は、情報処理装置1のうち自動チューニング対象ソフトウェアを実行するテスト実行部50と、自動チューニング対象ソフトウェアによって制御される周辺テスト環境3とを含む。
【0018】
ステップS2において、情報処理装置1は、自動チューニング対象ソフトウェアのビルドを実行して物理マシンや仮想マシンで実行可能となるバイナリファイルを生成する。そして、情報処理装置1は、テスト環境4において、テストスクリプトに記載されたテストシナリオに従ってテストを実行する。ステップS2の処理は、テスト実行部50内での処理(ステップS2-1)、および、テスト実行部50による周辺テスト環境3の制御(ステップS2-2)などを含む。
【0019】
テストシナリオは、例えば、上述したバイナリファイルに引数を記載する実行コマンド、および、上述したバイナルファイルを多重に起動して、自動チューニング対象ソフトウェアや周辺テスト環境3などに負荷をかける実行コマンドなどを含む。
【0020】
情報処理装置1は、自動チューニング対象ソフトウェアのテストの実行中にテスト環境4のメトリクスデータを取得する(ステップS3)。テスト環境4のメトリクスデータは、例えば、CPU利用率、メモリの空き容量、I/O(Input/Output)の統計情報などのデータである。
【0021】
つづいて、情報処理装置1は、ステップS3で取得されたメトリクスデータと自動チューニングモデルとを用いて、チューニングパラメータ値を推論する自動チューニング推論処理を実行する(ステップS4)。チューニングパラメータ値は、チューニング値の一例である。
【0022】
チューニングパラメータ値は、自動チューニングによって推論されるチューニングされたパラメータ値であり、例えば、自動チューニング対象ソフトウェアのチューニングパラメータ値、自動チューニング対象ソフトウェアがアクセスする周辺テスト環境3のチューニングパラメータ値などを含む。
【0023】
ステップS3の自動チューニング推論処理において、情報処理装置1は、例えば、ステップS3で取得されたメトリクスデータを自動チューニングモデルに入力し、自動チューニングモデルから出力されるパラメータ値をチューニングパラメータ値の推論結果とする。
【0024】
つづいて、情報処理装置1は、ステップS4で推論されたチューニングパラメータ値を自動チューニング対象ソフトウェアや周辺テスト環境3に設定した後、自動チューニング対象ソフトウェアのテスト環境4でのテストを再実行する(ステップS5)。ステップS5の処理は、ステップS2の処理と同様に、テスト実行部50内での処理(ステップS5-1)、および、テスト実行部50による周辺テスト環境3の制御(ステップS5-2)などを含む。
【0025】
情報処理装置1は、自動チューニング対象ソフトウェアのテストの再実行中におけるテスト環境4のスループット値およびレスポンスタイム値などの性能値を取得する(ステップS6)。そして、情報処理装置1は、ステップS6で取得した性能値に基づいて、チューニングパラメータ値に基づく情報である適用情報の本番環境5への適用のリスクである適用リスクを評価する(ステップS7)。
【0026】
例えば、情報処理装置1は、スループット値が上述した閾値を下回る場合、自動チューニングのパラメータを本番環境5に適用しても、事前に指示された以上の性能を達成可能なため、適用リスクなし、と判定する。一方、情報処理装置1は、スループット値が上述した閾値以上である場合、自動チューニングのパラメータを本番環境5に適用すると、事前に指示された性能を下回ると判定する。
【0027】
つづいて、情報処理装置1は、テスト環境4と本番環境5との差(例えば、マシンスペックやデータサイズなどの差)に応じた補正値に基づいて、ステップS4で推論したチューニングパラメータ値を補正する(ステップS8)。
【0028】
情報処理装置1は、ステップS8において、例えば、ステップS1で受け付けた自動チューニング要求の定義情報に上述した補正値の情報が含まれる場合、かかる補正値に基づいて、チューニングパラメータ値を補正する。
【0029】
また、情報処理装置1は、自動チューニング要求の定義情報に上述した補正値の情報が含まれない場合などにおいて、テスト環境4と本番環境5との差(例えば、マシンスペックやデータサイズなどの差)に基づいて、チューニングパラメータ値を補正する補正値を算出する。この場合、情報処理装置1は、算出した補正値を用いてチューニングパラメータ値を補正する。
【0030】
つづいて、情報処理装置1は、ステップS8で補正したチューニングパラメータ値を含む情報を適用情報として本番環境5に適用する(ステップS9)。適用情報の本番環境5への適用は、自動チューニング対象ソフトウェアや周辺テスト環境3にステップS8で補正されたチューニングパラメータ値を適用することによって行われる。以下において、補正値によって補正されたチューニングパラメータ補正値と記載する場合がある。
【0031】
自動チューニング対象ソフトウェアへのチューニングパラメータ補正値の適用は、例えば、自動チューニング対象ソフトウェアの定義ファイルにチューニングパラメータ補正値を記載したり、自動チューニング対象ソフトウェアの引数にチューニングパラメータ補正値を記載したりすることによって行われる。定義ファイルや引数は、適用情報の一例である。
【0032】
このように、情報処理装置1は、自動チューニング対象ソフトウェアをテスト環境4でテストを実行し、テストスプリクトでのテストの実行中にテスト環境4のメトリクスデータを入力データとする自動チューニングモデルを用いて自動チューニング対象ソフトウェアのテスト環境4でのチューニングされたパラメータ値であるチューニングパラメータ値を推論する。
【0033】
そして、情報処理装置1は、チューニングパラメータ値に基づく情報を含む適用情報の本番環境5へのパラメータ値の適用リスクを評価する。これにより、情報処理装置1は、チューニング値であるチューニングパラメータ値に基づく情報を適用情報として本番環境5に適用する前に、そのリスクを把握することができる。そのため、情報処理装置1は、自動チューニングモデルが出力するチューニング値に基づく情報である適用情報を適切に本番環境5に適用することが可能となる。
【0034】
また、情報処理装置1は、テスト環境4と本番環境5との差に応じた補正値を用いて、チューニング値であるチューニングパラメータ値を補正する。これにより、情報処理装置1は、本番環境5に適用するチューニング値を適切な内容とすることができる。そのため、情報処理装置1は、自動チューニングモデルが出力するチューニング値に基づく情報を適用情報として適切に本番環境5に適用することが可能となる。
【0035】
以下、このような処理を行う情報処理装置1および端末装置2を含む情報処理システムの構成などについて、詳細に説明する。
【0036】
〔1.2.情報処理システムの構成〕
図2は、第1実施形態に係る情報処理システムの構成の一例を示す図である。図2に示すように、第1実施形態に係る情報処理システム100は、情報処理装置1と、端末装置2と、周辺テスト環境3と、本番環境5と、ソースコード管理システム6と、モデル管理システム7とを含む。
【0037】
端末装置2は、自動チューニング対象ソフトウェアを含む本番環境5の自動チューニングを要求するユーザUによって用いられるクラアント端末などである。端末装置2は、例えば、ノートPC(Personal Computer)やデスクトップPCであるが、スマートフォンやタブレットPCなどであってもよい。
【0038】
ユーザUは、端末装置2から、定義情報を含む自動チューニング要求を情報処理装置1にネットワークNを介して送信することで、情報処理装置1に自動チューニング処理を開始させる。
【0039】
情報処理装置1、端末装置2、周辺テスト環境3、本番環境5、ソースコード管理システム6、およびモデル管理システム7は、ネットワークNを介して、有線または無線により互いに通信可能に接続される。なお、図2に示す情報処理システム100には、情報処理装置1、端末装置2、周辺テスト環境3、本番環境5、ソースコード管理システム6、およびモデル管理システム7などの各々が複数含まれてもよい。
【0040】
ネットワークNは、例えば、インターネットなどのWAN(Wide Area Network)およびLTE(Long Term Evolution)、4G(4th Generation)、5G(5th Generation:第5世代移動通信システム)などの移動体通信網などを含む。
【0041】
端末装置2は、移動体通信網や、Bluetooth(登録商標)、無線LAN(Local Area Network)などの近距離無線通信を介してネットワークNに接続し、情報処理装置1と通信することができる。
【0042】
周辺テスト環境3は、複数の周辺テストシステム9,9,・・・,9を含む。nは、例えば、3以上の整数である。以下において、周辺テストシステム9,9,・・・,9の各々を個別に区別せずに示す場合、周辺テストシステム9と記載する場合がある。周辺テストシステム9は、例えば、データベースサーバやメールサーバなどのサーバ装置であるが、かかる例に限定されない。
【0043】
本番環境5は、本番環境システム8を含む。本番環境システム8は、例えば、自動チューニング対象ソフトウェアが実行されるOSがインストールされる主装置や1以上の周辺装置などが含まれる。周辺装置は、例えば、データベースサーバやメールサーバなどのサーバ装置であるが、かかる例に限定されない。
【0044】
ソースコード管理システム6は、自動チューニング対象ソフトウェアのソースコードと、かかる自動チューニング対象ソフトウェアの正常動作や負荷テストを行うためのテストスクリプトのソースコードとを保持し管理する。
【0045】
モデル管理システム7は、自動チューニングを行うための機械学習モデルである自動チューニングモデルの情報を保持し管理する。自動チューニングモデルは、メトリクスデータを入力とし、テスト環境4のパラメータの推論値を出力するモデルである。
【0046】
テスト環境4のパラメータの推論値は、例えば、自動チューニング対象ソフトウェアおよび周辺テスト環境3の周辺テストシステム9の各々のパラメータの推論値である。自動チューニングモデルは、例えば、上述した非特許文献に記載のガウス過程回帰モデルやニューラルネットワークなどの機械学習モデルであるが、かかる例に限定されない。
【0047】
〔1.3.情報処理装置1の構成〕
図3は、第1実施形態に係る情報処理装置1の構成の一例を示す図である。図3に示すように、情報処理装置1は、通信部10と、記憶部11と、処理部12とを有する。
【0048】
〔1.3.1.通信部10〕
通信部10は、例えば、通信モジュールやNIC(Network Interface Card)などによって実現される。そして、通信部10は、ネットワークNと有線または無線で接続され、他の各種装置との間で情報の送受信を行う。例えば、通信部10は、端末装置2などとの間でネットワークNを介して情報の送受信を行う。
【0049】
〔1.3.2.記憶部11〕
記憶部11は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)などの半導体メモリ素子、または、ハードディスク、光ディスクなどの記憶装置によって実現される。
【0050】
〔1.3.3.処理部12〕
処理部12は、コントローラ(controller)であり、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)などのプロセッサによって、情報処理装置1内部の記憶装置に記憶されている各種プログラム(情報処理プログラムの一例に相当)がRAMなどを作業領域として実行されることにより実現される。
【0051】
また、処理部12は、コントローラ(controller)であり、例えば、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)、GPGPU(General Purpose Graphic Processing Unit)などの集積回路により実現されてもよい。
【0052】
図3に示すように、処理部12は、全体制御部20と、自動チューニング部21とを有し、以下に説明する情報処理の機能や作用を実現または実行する。なお、処理部12の内部構成は、図3に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。
【0053】
〔1.3.3.1.全体制御部20〕
全体制御部20は、情報処理装置1の全体を制御する。かかる全体制御部20は、自動チューニング要求を受け付ける要求受付部30と、要求受付部30によって受け付けられた自動チューニング要求に含まれる定義情報を抽出する定義情報抽出部31とを備える。
【0054】
図4は、第1実施形態に係る情報処理装置1の要求受付部30によって受け付けられた自動チューニング要求に含まれる定義情報の一例を示す図である。図4に示すように、自動チューニング要求に含まれる定義情報には、例えば、ソースコード管理システム接続情報、対象ソフトウェア指定情報、テストスプリクト指定情報、モデル管理システム接続情報、周辺テストシステム接続情報、本番環境システム接続情報、自動チューニングリスク評価指示情報、自動チューニング補正指示情報などが含まれる。
【0055】
ソースコード管理システム接続情報は、ソースコード管理システム6に接続するための情報であり、例えば、ソースコード管理システム6のIP(Internet Protocol)アドレス、ホスト名、ログインユーザ名、ログインパスワードなどの情報を含む。
【0056】
対象ソフトウェア指定情報は、自動チューニング対象ソフトウェアを指定する情報であり、例えば、自動チューニング対象ソフトウェアの名称やバージョン番号などの情報を含む。
【0057】
テストスプリクト指定情報は、自動チューニング対象ソフトウェアをテストするためのテストスプリクトを指定する情報であり、例えば、テストスプリクトの名称やバージョン番号などの情報を含む。
【0058】
モデル管理システム接続情報は、モデル管理システム7に接続するための情報であり、例えば、モデル管理システム7のIPアドレス、ホスト名、ログインユーザ名、ログインパスワードなどの情報を含む。
【0059】
周辺テストシステム接続情報は、周辺テストシステム9に接続するための情報であり、例えば、周辺テストシステム9のIPアドレス、ホスト名、ログインユーザ名、ログインパスワードなどの情報を含む。
【0060】
本番環境システム接続情報は、本番環境システム8に接続するための情報であり、例えば、本番環境システム8のIPアドレス、ホスト名、ログインユーザ名、ログインパスワードなどの情報を含む。
【0061】
自動チューニングリスク評価指示情報は、自動チューニングの結果が本番環境5において意図しない性能劣化を起こさないかのリスク確認の条件であるリスク評価条件を示す情報を含む。例えば、リスク評価指示情報は、自動チューニング対象ソフトウェアが本番環境5で達成するべきスループットやレスポンスタイムといった値を示す情報を閾値の情報として含む。
【0062】
図4に示す自動チューニングリスク評価指示情報には、自動チューニングで推論されるパラメータ値であるチューニングパラメータ値を用いた自動チューニング対象ソフトウェアの実行時におけるスループット値(throughput_auto_tuning)が閾値(throughput_default)以上であればリスクがないとするリスク評価条件を示す情報が含まれる。
【0063】
自動チューニング補正指示情報は、自動チューニングによって得られるチューニングパラメータ値に対する補正値であって、テスト環境4と本番環境5との差(例えば、マシンスペックやデータサイズなどの差異)に応じた補正値に関する情報を含む。
【0064】
図5に示す自動チューニング補正指示情報には、「parameter_01」の補正値「2.0」を示す情報、「parameter_02」の補正値「1.5」を示す情報が含まれる。補正値は、自動チューニングによって得られるチューニングパラメータ値に乗算される補正係数であるが、かかる例に限定されない。
【0065】
〔1.3.3.2.自動チューニング部21〕
自動チューニング部21は、自動チューニング対象ソフトウェアを含む本番環境5に対する自動チューニング処理を行う。自動チューニング部21は、自動チューニング準備部40と、自動チューニング実行部41と、リスク評価部42と、補正部43と、本番適用部44とを備える。
【0066】
〔1.3.3.2.1.自動チューニング準備部40〕
自動チューニング準備部40は、ユーザUからの自動チューニング要求が要求受付部30によって受け付けられた場合に、自動チューニング部21が最初に実行する処理モジュールである。
【0067】
自動チューニング準備部40は、ユーザUからの自動チューニング要求が要求受付部30によって受け付けられた場合、かかる自動チューニング要求に含まれる定義情報であって自動チューニング処理に必要となる定義情報を解析する。
【0068】
自動チューニング準備部40は、ソースコード管理システム接続情報、対象ソフトウェア指定情報、テストスプリクト指定情報、モデル管理システム接続情報、周辺テストシステム接続情報、本番環境システム接続情報、自動チューニングリスク評価指示情報、自動チューニング補正指示情報などの各々の情報を定義情報の解析結果として定義情報から抽出する。
【0069】
自動チューニング準備部40は、定義情報から抽出したソースコード管理システム接続情報、対象ソフトウェア指定情報、テストスプリクト指定情報、モデル管理システム接続情報、周辺テストシステム接続情報、本番環境システム接続情報などに基づいて、自動チューニングに必要となる情報の取得や必要システムへのアクセスを行う。
【0070】
例えば、自動チューニング準備部40は、ソースコード管理システム接続情報に基づいて、ソースコード管理システム6にアクセスし、対象ソフトウェア指定情報で指定される自動チューニング対象ソフトウェアのソースコードを含むコード情報とテストスプリクト指定情報で指定されるテストスプリクトとをソースコード管理システム6から取得するダウンロード処理を実行する。
【0071】
また、自動チューニング準備部40は、モデル管理システム接続情報に基づいて、モデル管理システム7にアクセスし、モデル管理システム7から自動チューニングモデルを取得するダウンロード処理を実行する。
【0072】
なお、定義情報には、自動チューニングモデルを指定する情報を含む自動チューニングモデル指定情報が含まれていてもよく、この場合、自動チューニング準備部40は、自動チューニングモデル指定情報で指定された自動チューニングモデルをモデル管理システム7から取得する。
【0073】
〔1.3.3.2.2.自動チューニング実行部41〕
自動チューニング実行部41は、自動チューニング準備部40によって取得された自動チューニング対象ソフトウェアのコード情報、テストスプリクト、および自動チューニングモデルの情報を用いて、自動チューニング対象ソフトウェアの自動チューニングを行う処理モジュールである。
【0074】
自動チューニング実行部41は、自動チューニング準備部40によって取得された自動チューニング対象ソフトウェアのコード情報とテストスクリプトに含まれるビルドコマンドなどを利用して、自動チューニング対象ソフトウェアのビルドを実行する。かかるビルドの実行により、自動チューニング対象ソフトウェアが物理マシンや仮想マシンで実行可能となるバイナリファイルが生成される。
【0075】
自動チューニング実行部41は、テスト実行部50と、メトリクスデータ取得部51と、自動チューニング推論部52と、性能値取得部53とを備える。テスト実行部50は、自動チューニング準備部40で抽出された周辺テストシステム接続情報を用いて、テスト環境4に含まれる周辺テストシステム9にログインし、テスト環境4において、テストスクリプトに記載されたテストシナリオに従って、テストを実行する処理を繰り返す。かかる繰り返し処理は、全てのテストシナリオを実施し終えるまで、実行される。
【0076】
テストシナリオは、例えば、上述したバイナリファイルに引数を記載する実行コマンド、および、上述したバイナルファイルを多重に起動して、自動チューニング対象ソフトウェアや周辺テストシステム9などに負荷をかける実行コマンドなどを含む。これらの実行コマンドが、1つ以上、テストスクリプトに記載されており、テストスクリプトに記載されたコマンドを全て実行し終えるまで、上述した繰り返し処理が実行される。
【0077】
メトリクスデータ取得部51は、テスト実行部50によるテストスプリクトでのテストの実行中にテスト環境4に含まれるテスト実行部50や各周辺テストシステム9のメトリクスデータを取得する。テスト環境4のメトリクスデータは、例えば、CPU利用率、メモリの空き容量、I/Oの統計情報などのデータである。
【0078】
自動チューニング推論部52は、自動チューニング実行部41によってテストが終了した場合、メトリクスデータ取得部51によって取得されたメトリクスデータと自動チューニング準備部40によって取得された自動チューニングモデルとを用いて、自動チューニング推論処理を実行する。
【0079】
自動チューニング推論処理は、自動チューニング対象ソフトウェアのチューニングパラメータ値、自動チューニング対象ソフトウェアがアクセスする周辺テストシステム9のチューニングパラメータ値などを推論する処理である。チューニングパラメータ値は、自動チューニングによって推論されるチューニングされたパラメータ値である。
【0080】
自動チューニング推論部52は、メトリクスデータ取得部51によって取得されたメトリクスデータを自動チューニングモデルに入力し、自動チューニングモデルから出力されるパラメータ値をチューニングパラメータ値として推論する。
【0081】
テスト実行部50は、自動チューニング推論部52によって推論されたチューニングパラメータ値を自動チューニング対象ソフトウェアや周辺テストシステム9に設定した後、テストスプリクトを用いて自動チューニング対象ソフトウェアをテスト環境4で実行する。
【0082】
性能値取得部53は、テスト実行部50による自動チューニング対象ソフトウェアの実行時におけるスループット値およびレスポンスタイム値などを性能値として取得する。例えば、性能値取得部53は、データベース処理を行う周辺テストシステム9から、データベース処理のスループット値を性能値として取得する。
【0083】
自動チューニング実行部41は、自動チューニング推論部52によって推論されたチューニングパラメータ値と、性能値取得部53によって取得された性能値とを含む情報を含む自動チューニング推論結果を出力する。
【0084】
図5は、第1実施形態に係る情報処理装置1の自動チューニング実行部41から出力される自動チューニング推論結果の一例を示す図である。図5に示す自動チューニング推論結果では、性能値取得部53によって取得された性能値を含む情報として、「throughput_auto_tuning:tp1」と、「response_time_auto_tuning:rp1」とが含まれる。
【0085】
「throughput_auto_tuning:tp1」は、自動チューニング推論部52によって推論されたチューニングパラメータ値を自動チューニング対象ソフトウェアや周辺テストシステム9に設定して自動チューニング対象ソフトウェアを実行した際に得られるスループット値が「tp1」であることを示す。なお、「tp1」は、数値であるが、説明の便宜上、英文字と数字で示している。
【0086】
「response_time_auto_tuning:rp1」は、自動チューニング推論部52によって推論されたチューニングパラメータ値を自動チューニング対象ソフトウェアや周辺テストシステム9に設定して自動チューニング対象ソフトウェアを実行した際に得られるレスポンスタイム値が「rp1」であることを示す。なお、「rp1」は、数値であるが、説明の便宜上、英文字と数字で示している。
【0087】
また、図5に示す自動チューニング推論結果では、自動チューニング推論部52によって推論されたチューニングパラメータ値を含む情報として、「parameter_01:value_01」、「parameter_02:value_02」、・・・などの情報が含まれる。
【0088】
「parameter_01:value_01」は、パラメータ「parameter_01」に対するパラメータ値が「value_01」であることを示し、「parameter_02:value_02」は、パラメータ「parameter_02」に対するパラメータ値が「value_02」であることを示す。「value_01」や「value_02」は、数値であるが、説明の便宜上、英文字と数字で示している。
【0089】
図5に示す自動チューニング推論結果では、チューニングパラメータ値を含む情報として、自動チューニング対象ソフトウェアのチューニングパラメータ値を含む情報、周辺テストシステム9のチューニングパラメータ値を含む情報、周辺テストシステム9のチューニングパラメータ値を含む情報、・・・、周辺テストシステム9のチューニングパラメータ値を含む情報などが含まれている。
【0090】
〔1.3.3.2.3.リスク評価部42〕
リスク評価部42は、自動チューニング実行部41から出力される自動チューニング推論結果を取得し、取得した自動チューニング推論結果に含まれる性能値に基づいて、チューニングパラメータ値に基づく情報である適用情報の本番環境5への適用のリスクである適用リスクを評価する処理モジュールである。
【0091】
リスク評価部42は、定義情報抽出部31によって抽出された定義情報に含まれる自動チューニングリスク評価指示情報によって示されるリスク評価条件を用いて、自動チューニング推論結果に含まれる性能値に基づき、チューニングパラメータ値に基づく情報である適用情報の本番環境5への適用のリスクを評価する。
【0092】
例えば、自動チューニングリスク評価指示情報が図4に示す状態であるとする。図4に示す例では、リスク評価条件は、自動チューニングで推論されるチューニングパラメータ値を用いた自動チューニング対象ソフトウェアの実行時におけるスループット値(throughput_auto_tuning)が閾値(throughput_default)以上であれば、スループット値に関する適用リスクがないとする条件である。
【0093】
この場合、リスク評価部42は、スループット値(throughput_auto_tuning)と閾値(throughput_default)とを比較する。リスク評価部42は、スループット値(throughput_auto_tuning)が閾値(throughput_default)以上である場合、チューニングパラメータ値を本番環境5に適用しても、事前に指示された以上の性能を達成可能なため、適用リスクなし、と判定して、自動チューニングによる性能劣化のリスク有無を表すリスクフラグの値をOFFにする。
【0094】
また、リスク評価部42は、スループット値(throughput_auto_tuning)が閾値(throughput_default)を下回る場合、チューニングパラメータ値を本番環境5に適用すると、事前に指示された性能を下回ると判定し、リスクフラグの値をONにする。
【0095】
また、リスク評価条件は、自動チューニングで推論されるチューニングパラメータ値を用いた自動チューニング対象ソフトウェアの実行時におけるレスポンスタイム値(response_time_auto_tuning)が閾値(response_time_default)未満であれば、レスポンスタイム値に関する適用リスクがないとする条件であるとする。
【0096】
この場合、リスク評価部42は、レスポンスタイム値(response_time_auto_tuning)と閾値(response_time_default)とを比較する。リスク評価部42は、レスポンスタイム値(response_time_auto_tuning)が閾値(response_time_default)未満である場合、チューニングパラメータ値を本番環境5に適用しても、事前に指示された以上の性能を達成可能なため、適用リスクなし、と判定して、自動チューニングによる性能劣化のリスク有無を表すリスクフラグの値をOFFに設定する。
【0097】
また、リスク評価部42は、レスポンスタイム値(response_time_auto_tuning)が閾値(response_time_default)以上である場合、チューニングパラメータ値を本番環境5に適用すると、事前に指示された性能を下回ると判定し、リスクフラグの値をONに設定する。
【0098】
リスク評価条件は、スループット値(throughput_auto_tuning)が閾値(throughput_default)以上且つレスポンスタイム値(response_time_auto_tuning)が閾値(response_time_default)未満であれば、レスポンスタイム値に関する適用リスクがないとする条件であってもよい。
【0099】
この場合、リスク評価部42は、スループット値(throughput_auto_tuning)が閾値(throughput_default)以上且つレスポンスタイム値(response_time_auto_tuning)が閾値(response_time_default)未満である場合に、リスクフラグの値をOFFに設定する。
【0100】
また、リスク評価部42は、スループット値(throughput_auto_tuning)が閾値(throughput_default)未満であるかレスポンスタイム値(response_time_auto_tuning)が閾値(response_time_default)以上である場合に、リスクフラグの値をONに設定する。
【0101】
〔1.3.3.2.4.補正部43〕
補正部43は、リスク評価部42によって適用リスクがないと判定された場合に、テスト環境4と本番環境5との差に応じた補正値を用いて、自動チューニング推論部52によって推論されたチューニングパラメータ値を補正する処理モジュールである。リスク評価部42によって適用リスクがないか否かの判定結果は、リスクフラグの値がOFFであるか否かによって特定される。
【0102】
補正部43は、定義情報抽出部31によって抽出された定義情報に含まれる自動チューニング補正指示情報によって示される補正値を用いて、自動チューニング推論部52によって推論されたチューニングパラメータ値を補正する。
【0103】
また、補正部43は、自動チューニング要求の定義情報に上述した補正値の情報が含まれない場合などにおいて、テスト環境4と本番環境5との差(例えば、マシンスペックやデータサイズなどの差)に基づいて、チューニングパラメータ値を補正する補正値を算出する。この場合、補正部43は、算出した補正値を用いてチューニングパラメータ値を補正する。
【0104】
補正部43は、まず、リスクフラグの値がONであるかOFFであるかを判定する。補正部43は、リスクフラグの値がOFFである場合に、補正処理を実行し、リスクフラグの値がONである場合に、補正処理を実行しない。
【0105】
補正部43は、補正処理において、自動チューニング実行部41から出力される自動チューニング推論結果を取得する。かかる自動チューニング推論結果には、上述したように、自動チューニング推論部52によって推論されたチューニングパラメータ値を示す情報が含まれており、補正部43は、自動チューニング推論部52によって推論されたチューニングパラメータ値を示す情報を自動チューニング推論結果から抽出する。
【0106】
そして、補正部43は、定義情報抽出部31によって抽出された定義情報に含まれる自動チューニング補正指示情報によって示される補正値を用いて、自動チューニング推論部52によって推論されたチューニングパラメータ値を補正する。
【0107】
例えば、補正部43は、自動チューニング補正指示情報によって示される補正値が補正係数である場合、かかる補正係数を、自動チューニング推論部52によって推論されたチューニングパラメータ値に乗算することによって、チューニングパラメータ値を補正する。
【0108】
例えば、自動チューニング要求に含まれる定義情報が図4に示す状態であるとし、自動チューニング推論結果が図5に示す状態であるとする。この場合、補正部43は、パラメータ「parameter_01」に対するチューニングパラメータ値「value_01」に補正係数「2.0」を乗算して得られる値「value_01*2.0」をパラメータ「parameter_01」の補正後のチューニングパラメータ値とする。
【0109】
また、補正部43は、パラメータ「parameter_02」に対するチューニングパラメータ値「value_02」に補正係数「1.5」を乗算して得られる値「value_02*1.5」をパラメータ「parameter_02」の補正後のチューニングパラメータ値とする。
【0110】
補正部43は、自動チューニング推論部52によって推論されたチューニングパラメータ値に対して補正処理を行った結果を示す情報である自動チューニング推論補正結果を出力する。なお、補正部43によるチューニングパラメータ値の補正は、自動チューニング補正指示情報で指定されるパラメータに対応するチューニングパラメータ値に対して行われる。補正部43によって補正対象とならなかったチューニングパラメータ値は、そのまま自動チューニング推論補正結果に含まれる。
【0111】
図6は、第1実施形態に係る情報処理装置1の補正部43から出力される自動チューニング推論補正結果の一例を示す図である。図6に示す自動チューニング推論補正結果は、自動チューニング要求に含まれる定義情報が図6に示す状態であり、自動チューニング推論結果が図7に示す状態である場合の例を示している。
【0112】
図6に示す例では、パラメータ「parameter_02」に対するチューニングパラメータ値が「value_01*2.0」として含まれ、パラメータ「parameter_02」に対するチューニングパラメータ値が「value_02*1.5」として含まれている。なお、図6に示す自動チューニング推論補正結果では、2つのチューニングパラメータ値が補正されているが、これら以外のチューニングパラメータ値が補正されてもよい。
【0113】
〔1.3.3.2.5.本番適用部44〕
本番適用部44は、リスク評価部42によって適用リスクがないと判定された場合に、自動チューニング推論結果を本番環境5に適用する本番環境適用処理を実行する処理モジュールである。リスク評価部42によって適用リスクがないか否かの判定結果は、リスクフラグの値がOFFであるか否かによって特定される。
【0114】
例えば、本番適用部44は、補正部43から出力されるチューニング推論補正結果に基づいて、補正部43によって補正されたチューニングパラメータ値を含む情報を適用情報として本番環境5に適用することで、本番環境適用処理を実行する。
【0115】
適用情報の本番環境5への適用は、例えば、補正部43によって補正されたチューニングパラメータ値を自動チューニング対象ソフトウェアの定義ファイルに設定し、補正部43によって補正されたチューニングパラメータ値を設定した定義ファイルを本番環境5に適用することによって行われる。この場合の定義ファイルは、適用情報の一例である。
【0116】
本番適用部44は、本番環境適用処理において、まず、定義情報抽出部31によって抽出された定義情報に含まれる本番環境システム接続情報に基づいて、本番環境システム8へのアクセスを行う。
【0117】
そして、本番適用部44は、自動チューニング実行部41によってビルドされた自動チューニング対象ソフトウェアのバイナリファイルであって自動チューニング実行部41から取得したバイナリファイルを本番環境システム8にインストールする。
【0118】
本番適用部44は、リスク評価部42によって適用リスクがないと判定された場合、自動チューニング推論補正結果に基づく適用情報として本番環境5に適用する本番環境適用処理を実行する。適用情報の本番環境5への適用は、例えば、自動チューニング対象ソフトウェアの定義ファイルに補正したパラメータ値を記載したり、自動チューニング対象ソフトウェアの引数に補正したパラメータ値を記載したりすることによって行われる。この場合の定義ファイルおよび引数は、適用情報の一例である。
【0119】
また、本番適用部44は、本番環境システム8に周辺テストシステム9に対応するデータベースシステムやメールシステムが含まれる場合は、これらデータベースシステムやメールシステムにアクセスする。そして、本番適用部44は、データベースシステムやメールシステムに自動チューニング推論補正結果に含まれるチューニングパラメータ値を適用する。かかるチューニングパラメータ値は、適用情報の一例である。
【0120】
本番環境システム8におけるデータベースシステムやメールシステムへの接続情報は、自動チューニング要求に含まれる定義情報に含まれており、本番適用部44は、定義情報に含まれる接続情報に基づいて、データベースシステムやメールシステムにアクセスする。なお、データベースシステムやメールシステムへの接続情報は、本番環境システム接続情報に含まれる情報であってもよい。
【0121】
本番適用部44は、リスク評価部42によって適用リスクがあると判定された場合、すなわち、リスクフラグの値がONである場合、本番環境適用処理において、自動チューニング対象ソフトウェアのデフォルトパラメータ値を本番環境システム8に適用する。
【0122】
〔1.4.処理手順〕
次に、第1実施形態に係る情報処理装置1の処理部12による情報処理の手順について説明する。図7は、第1実施形態に係る情報処理装置1の処理部12による情報処理の一例を示すフローチャートである。
【0123】
図7に示すように、情報処理装置1の処理部12は、端末装置2からの自動チューニング要求を受け付けたか否かを判定する(ステップS10)。処理部12は、自動チューニング要求を受け付けたと判定した場合(ステップS10:Yes)、自動チューニング準備処理を行う(ステップS11)。ステップS11の処理は、図8に示すステップS20~S25の処理であり、後で詳述する。
【0124】
処理部12は、ステップS11の処理を終了した場合、自動チューニング実行処理を行う(ステップS12)。ステップS12の処理は、図9に示すステップS30~S39の処理であり、後で詳述する。
【0125】
処理部12は、ステップS12の処理を終了した場合、リスク評価処理を行う(ステップS13)。ステップS13の処理は、図10に示すステップS40~S43の処理であり、後で詳述する。
【0126】
処理部12は、ステップS13の処理を終了した場合、推論結果補正処理を行う(ステップS14)。ステップS14の処理は、図11に示すステップS50~S53の処理であり、後で詳述する。
【0127】
処理部12は、ステップS14の処理を終了した場合、本番環境適用処理を行う(ステップS15)。ステップS15の処理は、図12に示すステップS60~S64の処理であり、後で詳述する。
【0128】
処理部12は、ステップS15の処理を終了した場合、または自動チューニング要求を受け付けていないと判定した場合(ステップS10:No)、動作終了タイミングになったか否かを判定する(ステップS16)。処理部12は、例えば、情報処理装置1の電源がオフにされた場合、または情報処理装置1の不図示の操作部への操作によって終了操作が行われたと判定した場合に、動作終了タイミングになったと判定する。
【0129】
処理部12は、動作終了タイミングになっていないと判定した場合(ステップS16:No)、処理をステップS10へ移行し、動作終了タイミングになったと判定した場合(ステップS16:Yes)、図7に示す処理を終了する。
【0130】
図8は、第1実施形態に係る情報処理装置1の処理部12による自動チューニング準備処理の一例を示すフローチャートである。図8に示すように、処理部12は、自動チューニング要求に含まれる定義情報であって自動チューニングに必要となる定義情報を解析する(ステップS20)。
【0131】
つづいて、処理部12は、定義情報に含まれるソースコード管理システム接続情報に基づいて、ソースコード管理システム6にアクセスする(ステップS21)。そして、処理部12は、定義情報に含まれる対象ソフトウェア指定情報で指定される自動チューニング対象ソフトウェアのコード情報をソースコード管理システム6から取得する(ステップS22)。また、処理部12は、定義情報に含まれるテストスプリクト指定情報で指定されるテストスプリクトをソースコード管理システム6から取得する(ステップS23)。
【0132】
また、処理部12は、定義情報に含まれるモデル管理システム接続情報に基づいて、モデル管理システム7にアクセスする(ステップS24)。そして、処理部12は、モデル管理システム7から自動チューニングモデルを取得し(ステップS25)、図8に示す処理を終了する。
【0133】
図9は、第1実施形態に係る情報処理装置1の処理部12による自動チューニング実行処理の一例を示すフローチャートである。図9に示すように、処理部12は、自動チューニング対象ソフトウェアのビルドを実行する(ステップS30)。
【0134】
つづいて、処理部12は、テストスクリプトに記載されたテストシナリオに含まれる複数のテストのうち未実施のテストがあるか否かを判定する(ステップS31)。処理部12は、未実施のテストがあると判定した場合(ステップS31:Yes)、テスト環境4において未実施のテストを実行し(ステップS32)、テスト環境4のメトリクスデータを取得する(ステップS33)。
【0135】
処理部12は、ステップS32,S33の処理をテストスクリプトに記載されたコマンドを全て実行し終えるまで繰り返し実行する。そして、処理部12は、未実施のテストがないと判定した場合(ステップS31:No)、自動チューニング推論処理を行う(ステップS34)。
【0136】
自動チューニング推論処理は、自動チューニング対象ソフトウェアのチューニングパラメータ値、自動チューニング対象ソフトウェアがアクセスする周辺テストシステム9のチューニングパラメータ値などを推論する処理である。チューニングパラメータ値は、自動チューニングによって推論されるチューニングされたパラメータ値であり、チューニング値の一例である。
【0137】
つづいて、処理部12は、推論したチューニングパラメータ値をテスト環境4に設定し、テストスクリプトに従って自動チューニング対象ソフトウェアの再実行を開始する(ステップS35)。そして、処理部12は、テストスクリプトに記載されたテストシナリオに含まれる複数のテストのうち未実施のテストがあるか否かを判定する(ステップS36)。
【0138】
処理部12は、未実施のテストがあると判定した場合(ステップS36:Yes)、テスト環境4において未実施のテストを実行し(ステップS37)、テスト環境4の性能値を取得する(ステップS38)。テスト環境4の性能値は、自動チューニング対象ソフトウェアのテストの再実行中におけるテスト環境4のスループット値およびレスポンスタイム値などである。処理部12は、ステップS37,S38の処理をテストスクリプトに記載されたコマンドを全て実行し終えるまで繰り返し実行する。
【0139】
処理部12は、未実施のテストがないと判定した場合(ステップS36:No)、ステップS34で推論したチューニングパラメータ値とステップS38で取得した性能値とを含む情報を自動チューニング推論結果として出力し(ステップS39)、図9に示す処理を終了する。
【0140】
図10は、第1実施形態に係る情報処理装置1の処理部12によるリスク評価処理の一例を示すフローチャートである。図10に示すように、処理部12は、自動チューニング実行処理で出力される自動チューニング推論結果を取得する(ステップS40)。
【0141】
つづいて、処理部12は、性能値が適用リスクなしの条件を満たすか否かを判定する(ステップS41)。例えば、性能値がスループット値(throughput_auto_tuning)である場合、適用リスクなしの条件は、スループット値(throughput_auto_tuning)が閾値(throughput_default)以上であるという条件である。
【0142】
また、性能値がレスポンスタイム値(response_time_auto_tuning)である場合、適用リスクなしの条件は、レスポンスタイム値(response_time_auto_tuning)が閾値(response_time_default)未満であるという条件である。
【0143】
処理部12は、性能値が適用リスクなしの条件を満たすと判定した場合(ステップS41:Yes)、リスクフラグの値をOFFに設定し(ステップS42)、性能値が適用リスクなしの条件を満たさないと判定した場合(ステップS41:No)、リスクフラグの値をONに設定する(ステップS43)。処理部12は、ステップS42の処理を終了した場合、またはステップS43の処理を終了した場合、図10に示す処理を終了する。
【0144】
図11は、第1実施形態に係る情報処理装置1の処理部12による推論結果補正処理の一例を示すフローチャートである。図11に示すように、処理部12は、リスクフラグの値がOFFであるか否かを判定する(ステップS50)。
【0145】
処理部12は、リスクフラグの値がOFFであると判定した場合(ステップS50:Yes)、自動チューニング実行処理で出力される自動チューニング推論結果を取得する(ステップS51)。
【0146】
つづいて、処理部12は、自動チューニング推論結果に含まれるチューニングパラメータ値に補正係数を乗算することで、チューニングパラメータ値の補正を行う(ステップS52)。補正係数は、上述した定義情報に含まれる自動チューニング補正指示情報に含まれる情報である。
【0147】
つづいて、処理部12は、自動チューニング推論結果において、ステップS34で推認されたチューニングパラメータ値を、ステップS52で補正したチューニングパラメータ値に置き換えて得られる自動チューニング推論補正結果を出力する(ステップS53)。
【0148】
処理部12は、ステップS53の処理が終了した場合、または、リスクフラグの値がOFFではないと判定した場合(ステップS50:No)、図11に示す処理を終了する。
【0149】
図12は、第1実施形態に係る情報処理装置1の処理部12による本番環境適用処理の一例を示すフローチャートである。図12に示すように、処理部12は、定義情報に含まれる本番環境システム接続情報に基づいて、本番環境システム8にアクセスする(ステップS60)。
【0150】
つづいて、処理部12は、本番環境システム8に自動チューニング対象ソフトウェアをインストールする(ステップS61)。処理部12は、例えば、自動チューニング対象ソフトウェアのバイナリファイルを本番環境システム8にインストールすることによって、本番環境システム8に自動チューニング対象ソフトウェアをインストールする。
【0151】
つづいて、処理部12は、リスクフラグの値がOFFであるか否かを判定する(ステップS62)。処理部12は、リスクフラグの値がOFFであると判定した場合(ステップS62:Yes)、本番環境5に自動チューニング推論補正結果に基づく情報である適用情報を適用する(ステップS63)。
【0152】
適用情報の本番環境5への適用は、例えば、自動チューニング対象ソフトウェアの定義ファイルに補正したパラメータ値を記載したり、自動チューニング対象ソフトウェアの引数に補正したパラメータ値を記載したりすることによって行われる。
【0153】
また、処理部12は、リスクフラグの値がOFFではないと判定した場合(ステップS62:No)、本番環境5にデフォルトパラメータ値を適用する(ステップS64)。処理部12は、ステップS63の処理が終了した場合、またはステップS64の処理が終了した場合、図12に示す処理を終了する。
【0154】
〔2.第2実施形態〕
〔2.1.情報処理システムの構成〕
図13は、第2実施形態に係る情報処理システムの構成の一例を示す図である。図13に示すように、第2実施形態に係る情報処理システム100Aは、情報処理装置1および本番環境5に代えて、情報処理装置1Aおよび本番環境5Aを有する点で、情報処理装置1と異なる。
【0155】
図14は、第2実施形態に係る本番環境5Aの構成の一例を示す図である。図14に示すように、本番環境5Aは、情報処理装置1Aによる自動チューニングによってCPUコア数やメモリサイズなどがチューニングされる仮想マシン70を有する本番環境システム8Aを備える。なお、第1実施形態に係る本番環境5の本番環境システム8も、仮想マシンを有する構成であってもよい。
【0156】
情報処理システム100Aでは、情報処理装置1Aにおける自動チューニングモデルの出力が、自動チューニング対象ソフトウェアや周辺テストシステム9のパラメータ値に代えて、自動チューニング対象ソフトウェアをホストする仮想マシンのCPUコア数とメモリサイズといったスペックを含む点で、第1実施形態に係る情報処理システム100と異なる。
【0157】
情報処理装置1Aは、事前に指定された性能要件を満たすテスト環境4の仮想マシンのスペックを、自動チューニングモデルを用いて推論することにより、本番環境5Aの仮想マシン70のスペックの選定やチューニングの省力化を図ることができ、加えて、仮想マシン70における計算機リソースの利用効率向上を図ることができる。
【0158】
情報処理システム100Aでは、端末装置2から送信される自動チューニング要求に含まれる定義情報において、性能要件指定情報が含まれ、自動チューニングリスク評価指示情報と自動チューニング補正指示情報とに含まれる情報が異なる点で、情報処理システム100と異なる。
【0159】
性能要件指定情報は、自動チューニング対象ソフトウェアが本番環境5Aで達成するべきスループット値やレスポンスタイム値などを示す情報を含む。かかる性能要件指定情報は、例えば、ユーザUが事前に閾値として与えられるスループット値やレスポンスタイム値などを示す情報を含む。
【0160】
自動チューニングリスク評価指示情報は、第1実施形態の情報処理装置1と同様の性能値に関するリスク評価条件を示す情報(例えば、図4に示す自動チューニング評価指示情報)に加えて、仮想マシンのスペックにリスクがあるかどうかのリスク確認の条件であるリスク評価条件を示す情報を含む。例えば、リスク評価条件は、CPUコア数が大きな値となり、多量の計算機リソースを消費しないかのリスク確認の条件である。
【0161】
自動チューニング補正指示情報は、テスト環境4と本番環境5Aとの差に応じた補正値を示す情報を含む。補正値は、テスト環境4で自動チューニング対象ソフトウェアが実行中のテスト環境4のメトリクスデータを入力データとする自動チューニングモデルが出力する仮想マシンのスペックを補正する補正値である。
【0162】
テスト環境4と本番環境5Aとの差は、例えば、自動チューニング対象ソフトウェアが処理するデータ量や対応する呼び出し回数などの差である。自動チューニング補正指示情報は、例えば、自動チューニング対象ソフトウェアがテスト環境4で処理するデータ量や対応する呼び出し回数と、自動チューニング対象ソフトウェアが本番環境5Aで処理するデータ量やその呼び出し回数などとの差に応じた補正値を示す情報を含む。
【0163】
例えば、テスト環境4と本番環境5Aとの差に応じた補正値は、テスト環境4と比べて、本番環境5Aでは、ソフトウェアの呼び出し回数が2倍となる場合において、自動チューニングモデルが出力する仮想マシンのスペックの1つであるCPUのリソースの値を2倍にするための補正値である。
【0164】
〔2.2.情報処理装置1Aの構成〕
図15は、第2実施形態に係る情報処理装置1Aの構成の一例を示す図である。図15に示す情報処理装置1Aは、処理部12に代えて、処理部12Aを有する点で、情報処理装置1と異なる。処理部12Aは、自動チューニング部21に代えて、自動チューニング部21Aを有する点で異なる。
【0165】
自動チューニング部21Aは、自動チューニング実行部41、リスク評価部42、補正部43、および本番適用部44に代えて、自動チューニング実行部41A、リスク評価部42A、補正部43A、および本番適用部44Aを有する点で、自動チューニング部21と異なる。自動チューニング実行部41Aは、自動チューニング推論部52に代えて、自動チューニング推論部52Aを備える点で、自動チューニング実行部41と異なる。
【0166】
自動チューニング推論部52Aは、自動チューニング実行部41によってテストが終了した場合、メトリクスデータ取得部51によって取得されたメトリクスデータと自動チューニング準備部40によって取得された自動チューニングモデルとを用いて、自動チューニング推論処理を実行する。自動チューニング推論処理は、自動チューニング対象ソフトウェアを実行する仮想マシンのCPUコア数およびメモリサイズなどを推論する処理である。
【0167】
自動チューニング準備部40によって取得される自動チューニングモデルは、メトリクスデータ取得部51によって取得されたメトリクスデータを入力データとし、テスト環境4における仮想マシンのCPUコア数(cpu_auto_tuning)およびメモリサイズ(memory_auto_tuning)を出力データとして出力する機械学習モデルである。
【0168】
自動チューニング推論部52Aで用いられる自動チューニングモデルは、自動チューニング推論部52で用いられる自動チューニングモデルと同様に、ガウス過程回帰モデルやニューラルネットワークなどの機械学習モデルであるが、かかる例に限定されない。
【0169】
自動チューニング推論部52Aは、メトリクスデータ取得部51によって取得されたメトリクスデータを自動チューニングモデルに入力し、自動チューニングモデルから出力されるCPUコア数(cpu_auto_tuning)およびメモリサイズ(memory_auto_tuning)をチューニングCPUコア数およびチューニングメモリサイズとして推論する。以下において、チューニングCPUコア数およびチューニングメモリサイズを含む情報をチューニングスペック値と記載する場合がある。チューニングスペック値は、チューニング値の一例である。
【0170】
テスト実行部50は、自動チューニング推論部52Aによって推論されたチューニングスペック値に合わせた仮想マシンであるチューニング仮想マシンをテスト実行部50内に作成した後、テストスプリクトを用いてチューニング仮想マシンで実行する。そして、性能値取得部53は、テスト実行部50による自動チューニング対象ソフトウェアの実行時におけるスループット値およびレスポンスタイム値などを性能値として取得する。
【0171】
自動チューニング実行部41Aは、自動チューニング推論部52Aによって推論されたチューニングスペック値と、性能値取得部53によって取得された性能値とを含む情報を含む自動チューニング推論結果を出力する。
【0172】
図16は、第2実施形態に係る情報処理装置1Aの自動チューニング実行部41Aから出力される自動チューニング推論結果の一例を示す図である。図16に示す自動チューニング推論結果では、図16に示す自動チューニング推論結果と同様に、性能値取得部53によって取得された性能値を含む情報として、「throughput_auto_tuning:tp1」と、「response_time_auto_tuning:rp1」とが含まれる。
【0173】
また、図16に示す自動チューニング推論結果では、自動チューニング推論部52Aによって推論されたチューニングスペック値を含む情報(図16では、仮想マシンスペックとして示される情報)として、「cpu_auto_tuning:2 cores」、「memory_auto_tuning:8GB」などの情報が含まれる。
【0174】
「cpu_auto_tuning:2 cores」は、仮想マシンのCPUコア数が「2」であることを示し、「memory_auto_tuning:8GB」は、仮想マシンのメモリサイズが「8GB(ギガバイト)」であることを示す。
【0175】
リスク評価部42Aは、自動チューニング実行部41Aから出力される自動チューニング推論結果を取得する。そして、リスク評価部42Aは、自動チューニング推論結果に含まれるチューニングスペック値に基づいて、自動チューニング推論結果に含まれるチューニングスペック値に基づく情報である適用情報の本番環境5Aへの適用のリスクである適用リスクを評価する。
【0176】
リスク評価部42Aは、定義情報抽出部31によって抽出された定義情報に含まれる自動チューニングリスク評価指示情報によって示されるリスク評価条件を用いて、自動チューニング推論結果に含まれるチューニングスペック値に基づき、チューニングスペック値に基づく情報である適用情報の本番環境5Aへの適用のリスクを評価する。
【0177】
自動チューニングリスク評価指示情報には、上述したように、仮想マシン70のスペックにリスクがあるかどうかのリスク確認の条件であるリスク評価条件を示す情報が含まれる。
【0178】
例えば、リスク評価条件は、CPUコア数が大きな値となり、多量の計算機リソースを消費しないかのリスク確認の条件、例えば、CPUコア数(cpu_auto_tuning)が閾値(cpu_threshold)以下であれば適用リスクがないとする条件である。閾値(cpu_threshold)は、これ以上のCPUコア数は計算機リソースの多量消費につながるという閾値である。
【0179】
この場合、リスク評価部42Aは、CPUコア数(cpu_auto_tuning)と閾値(cpu_threshold)とを比較し、CPUコア数(cpu_auto_tuning)が閾値(cpu_threshold)以下あればスペックパラメータ値を本番環境5Aに適用しても、事前に指示された以上の性能を達成可能なため、適用リスクなし、と判定して、自動チューニングによる性能劣化のリスク有無を表すリスクフラグの値をOFFに設定する。
【0180】
また、リスク評価部42Aは、CPUコア数(cpu_auto_tuning)が閾値(cpu_threshold)を上回る場合、チューニングスペック値を本番環境5Aに適用すると、事前に指示された性能を下回ると判定し、リスクフラグの値をONにする。
【0181】
また、リスク評価条件は、メモリの消費量が大きな値となり、多量の計算機リソースを消費しないかのリスク確認の条件、例えば、メモリサイズ(memory_auto_tuning)が閾値(memory_threshold)以下であれば適用リスクがないとする条件であってもよい。閾値(memory_threshold)は、これ以上のメモリサイズは計算機リソースの多量消費につながるという閾値である。
【0182】
この場合、リスク評価部42Aは、メモリサイズ(memory_auto_tuning)と閾値(memory_threshold)とを比較し、メモリサイズ(memory_auto_tuning)が閾値(memory_threshold)以下あればスペックパラメータ値を本番環境5Aに適用しても、事前に指示された以上の性能を達成可能なため、適用リスクなし、と判定して、自動チューニングによる性能劣化のリスク有無を表すリスクフラグの値をOFFに設定する。
【0183】
また、リスク評価部42Aは、メモリサイズ(memory_auto_tuning)が閾値(memory_threshold)を上回る場合、チューニングスペック値を本番環境5Aに適用すると、事前に指示された性能を下回ると判定し、リスクフラグの値をONにする。
【0184】
リスク評価条件は、CPUコア数(cpu_auto_tuning)が閾値(cpu_threshold)以下且つメモリサイズ(memory_auto_tuning)が閾値(memory_threshold)以下であるという条件であってもよい。
【0185】
この場合、リスク評価部42Aは、CPUコア数(cpu_auto_tuning)が閾値(cpu_threshold)以下且つメモリサイズ(memory_auto_tuning)が閾値(memory_threshold)以下あればスペックパラメータ値を本番環境5Aに適用しても、事前に指示された以上の性能を達成可能なため、適用リスクなし、と判定して、自動チューニングによる性能劣化のリスク有無を表すリスクフラグの値をOFFに設定する。
【0186】
また、リスク評価部42Aは、CPUコア数(cpu_auto_tuning)が閾値(cpu_threshold)を上回るか、メモリサイズ(memory_auto_tuning)が閾値(memory_threshold)を上回る場合、チューニングスペック値を本番環境5Aに適用すると、事前に指示された性能を下回ると判定し、リスクフラグの値をONにする。
【0187】
補正部43Aは、リスク評価部42Aによって適用リスクがないと判定された場合に、テスト環境4と本番環境5Aとの差に応じた補正値を用いて、自動チューニング推論部52Aによって推論されたチューニングスペック値を補正する処理モジュールである。
【0188】
補正部43Aは、定義情報抽出部31によって抽出された定義情報に含まれる自動チューニング補正指示情報によって示される補正値を用いて、自動チューニング推論部52Aによって推論されたチューニングスペック値を補正する。
【0189】
補正部43Aは、まず、リスクフラグの値がONであるかOFFであるかを判定する。補正部43Aは、リスクフラグの値がOFFである場合に、補正処理を実行し、リスクフラグの値がONである場合に、補正処理を実行しない。
【0190】
補正部43Aは、補正処理において、自動チューニング実行部41Aから出力される自動チューニング推論結果を取得する。かかる自動チューニング推論結果には、上述したように、自動チューニング推論部52Aによって推論されたチューニングスペック値を示す情報が含まれており、補正部43Aは、自動チューニング推論部52Aによって推論されたチューニングスペック値を示す情報を自動チューニング推論結果から抽出する。
【0191】
そして、補正部43Aは、定義情報抽出部31によって抽出された定義情報に含まれる自動チューニング補正指示情報によって示される補正値を用いて、自動チューニング推論部52Aによって推論されたチューニングスペック値を補正する。
【0192】
例えば、補正部43Aは、自動チューニング補正指示情報によって示される補正値で補正係数を、自動チューニング推論部52Aによって推論されたチューニングスペック値に乗算することによって、チューニングスペック値を補正する。
【0193】
図17は、第2実施形態に係る情報処理装置1Aの補正部43Aによる自動チューニング推論結果の補正内容の一例を示す図である。図17に示す例では、自動チューニング要求の定義情報に含まれる自動チューニング補正指示情報は、CPUコア数(cpu_auto_tuning)の補正値が「2.0」であることを示す情報と、メモリサイズ(memory_auto_tuning)の補正値が「1.5」であることを示す情報とを含む。
【0194】
また、図17に示す自動チューニング推論結果では、自動チューニング推論部52Aによって推論されたチューニングスペック値を含む情報として、「cpu_auto_tuning:2 cores」、「memory_auto_tuning:8GB」が含まれる。
【0195】
この場合、補正部43Aは、CPUコア数(cpu_auto_tuning)に対するチューニングスペック値「2 coes」に補正係数「2.0」を乗算して得られる値「4 cores」をCPUコア数(cpu_auto_tuning)の補正後のチューニングスペック値とする。
【0196】
また、補正部43Aは、メモリサイズ(memory_auto_tuning)に対するチューニングスペック値「8GB」に補正係数「1.5」を乗算して得られる値「12.0GB」をメモリサイズ(memory_auto_tuning)の補正後のチューニングスペック値とする。
【0197】
補正部43Aは、自動チューニング推論部52Aによって推論されたチューニングスペック値に対して補正処理を行った結果を示す情報を含む自動チューニング推論補正結果を出力する。
【0198】
図17に示す例では、CPUコア数(cpu_auto_tuning)の補正後のチューニングスペック値が「4 cores」として含まれ、メモリサイズ(memory_auto_tuning)の補正後のチューニングスペック値が「12.0GB」として含まれている。このように、図17に示す例では、補正部43Aは、本番環境システム8Aにおいて自動チューニング対象ソフトウェアをホストする仮想マシンのCPUコア数を2コア×2.0=4コアとし、メモリサイズを8GB×1.5=12GBとする仮想マシンのスペックを補正後のチューニングスペック値として含む自動チューニング推論補正結果を出力する。
【0199】
本番適用部44Aは、リスク評価部42Aによって適用リスクがないと判定された場合に、自動チューニング推論結果を本番環境5Aに適用する本番環境適用処理を実行する処理モジュールである。リスク評価部42Aによって適用リスクがないか否かの判定は、リスクフラグの値がOFFであるか否かによって行われる。
【0200】
例えば、本番適用部44Aは、リスクフラグの値がOFFである場合、補正部43Aから出力されるチューニング推論補正結果に基づいて、補正部43Aによって補正されたチューニングスペック値を含む情報を適用情報として本番環境5Aに適用することで、本番環境適用処理を実行する。
【0201】
補正部43Aによって補正されたチューニングスペック値を含む情報である適用情報の本番環境5Aへの適用は、例えば、補正部43Aによって補正されたチューニングスペック値に対応する仮想マシン70を本番環境システム8Aに作成することによって行われる。
【0202】
本番適用部44Aは、本番環境適用処理において、まず、定義情報抽出部31によって抽出された定義情報に含まれる本番環境システム接続情報に基づいて、本番環境システム8Aへのアクセスを行う。
【0203】
そして、本番適用部44Aは、本番環境システム8Aにおいて、補正部43Aによって補正されたチューニングスペック値に対応する仮想マシン70を作成する。例えば、チューニング推論補正結果が図17に示す状態である場合、本番適用部44Aは、CPUコア数が「4」でメモリサイズが「12GB」である仮想マシン70を本番環境システム8Aに作成する。
【0204】
つづいて、本番適用部44Aは、自動チューニング実行部41Aによってビルドされた自動チューニング対象ソフトウェアのバイナリファイルであって自動チューニング実行部41Aから取得したバイナリファイルを本番環境システム8Aの仮想マシン70にインストールする。
【0205】
これにより、情報処理装置1Aは、自動チューニング要求の定義情報で指定される性能値を満たしつつ、かつ、本番環境5Aで多量の計算機リソースを消費しない、仮想マシン70のスペックの自動チューニングを実現することができる。
【0206】
〔2.3.処理手順〕
次に、第2実施形態に係る情報処理装置1Aの処理部12Aによる情報処理の手順について説明する。
【0207】
情報処理装置1Aの処理部12Aによる情報処理は、図7に示す処理のうち、ステップS12の自動チューニング実行処理、ステップS13のリスク評価処理、ステップS14の推論結果補正処理、およびステップS15の本番環境適用処理が、情報処理装置1の処理部12による情報処理と異なる。
【0208】
図18は、第2実施形態に係る情報処理装置1Aの処理部12Aによる自動チューニング実行処理の一例を示すフローチャートである。図18に示すステップS70~S73,S76~S79の処理は、図9に示すステップS30~S33,S36~S39の処理と同じであるため、説明を省略する。
【0209】
処理部12Aは、ステップS74において、仮想マシンのチューニングスペック値を推論する自動チューニング推論処理を行う。そして、処理部12Aは、ステップS74で推論したチューニングスペック値に応じた仮想マシンをテスト環境4に作成し、作成した仮想マシンでテストスクリプトに従って自動チューニング対象ソフトウェアの再実行を開始する(ステップS75)。
【0210】
図19は、第2実施形態に係る情報処理装置1Aの処理部12Aによるリスク評価処理の一例を示すフローチャートである。図19に示すステップS80,S82,S83,S84の処理は、図10に示すステップS40,S41,S42,S43の処理と同じであるため、説明を省略する。
【0211】
処理部12Aは、ステップS81において、チューニングスペック値が適用リスクなしの条件を満たすか否かを判定する。チューニングスペック値における適用リスクなしの条件は、CPUコア数(cpu_auto_tuning)が閾値(cpu_threshold)以下であるという条件、およびメモリサイズ(memory_auto_tuning)が閾値(memory_threshold)以下あるという条件のうちの少なくとも1つを含む。
【0212】
処理部12Aは、チューニングスペック値が適用リスクなしの条件を満たすと判定した場合(ステップS81:Yes)、処理をステップS82に移行し、チューニングスペック値が適用リスクなしの条件を満たさないと判定した場合(ステップS81:No)、処理をステップS83に移行する。
【0213】
図20は、第2実施形態に係る情報処理装置1Aの処理部12Aによる推論結果補正処理の一例を示すフローチャートである。図20に示すステップS90,S91,S93の処理は、図11に示すステップS50,S51,S53の処理と同じであるため、説明を省略する。
【0214】
処理部12Aは、ステップS92において、自動チューニング推論結果に含まれるチューニングスペック値に補正係数を乗算することで、チューニングスペック値の補正を行う。補正係数は、上述した定義情報に含まれる自動チューニング補正指示情報に含まれる情報である。
【0215】
図21は、第2実施形態に係る情報処理装置1Aの処理部12Aによる本番環境適用処理の一例を示すフローチャートである。図21に示すように、処理部12Aは、定義情報に含まれる本番環境システム接続情報に基づいて、本番環境システム8Aにアクセスする(ステップS100)。
【0216】
つづいて、処理部12Aは、リスクフラグの値がOFFであるか否かを判定する(ステップS101)。処理部12Aは、リスクフラグの値がOFFであると判定した場合(ステップS101:Yes)、自動チューニング推論補正結果を取得する(ステップS102)。
【0217】
そして、処理部12Aは、自動チューニング推論補正結果に基づいて、チューニングスペックの仮想マシン70を本番環境システム8Aに作成する(ステップS103)。チューニングスペックの仮想マシンは、上述したチューニングスペック値に応じた仮想マシンであり、例えば、チューニングスペック値が「cpu_auto_tuning:4 cores」、「memory_auto_tuning:12GB」であれば、CPUコア数が4コアであり、メモリサイズが12GBの仮想マシン70を本番環境システム8Aに作成する。
【0218】
また、処理部12Aは、リスクフラグの値がOFFではないと判定した場合(ステップS101:No)、デフォルトスペックの仮想マシンを本番環境システム8Aに作成する(ステップS104)。
【0219】
処理部12Aは、ステップS103の処理が終了した場合、またはステップS104の処理が終了した場合、本番環境システム8Aに自動チューニング対象ソフトウェアをインストールして(ステップS105)、図21の処理を終了する。処理部12Aは、例えば、自動チューニング対象ソフトウェアのバイナリファイルを本番環境システム8Aにインストールすることによって、本番環境システム8Aに自動チューニング対象ソフトウェアをインストールする。
【0220】
〔3.ハードウェア構成〕
上述してきた実施形態に係る情報処理装置1,1Aは、例えば図22に示すような構成のコンピュータ80によって実現される。図22は、実施形態に係る情報処理装置1,1Aの機能を実現するコンピュータ80の一例を示すハードウェア構成図である。コンピュータ80は、CPU81、RAM82、ROM(Read Only Memory)83、HDD(Hard Disk Drive)84、通信インターフェイス(I/F)85、入出力インターフェイス(I/F)86、およびメディアインターフェイス(I/F)87を有する。
【0221】
CPU81は、ROM83またはHDD84に記憶されたプログラムに基づいて動作し、各部の制御を行う。ROM83は、コンピュータ80の起動時にCPU81によって実行されるブートプログラムや、コンピュータ80のハードウェアに依存するプログラムなどを記憶する。
【0222】
HDD84は、CPU81によって実行されるプログラム、および、かかるプログラムによって使用されるデータなどを記憶する。通信インターフェイス85は、ネットワークN(図2参照)を介して他の機器からデータを受信してCPU81へ送り、CPU81が生成したデータを、ネットワークNを介して他の機器へ送信する。
【0223】
CPU81は、入出力インターフェイス86を介して、ディスプレイやプリンタなどの出力装置、および、キーボードまたはマウスなどの入力装置を制御する。CPU81は、入出力インターフェイス86を介して、入力装置からデータを取得する。また、CPU81は、入出力インターフェイス86を介して生成したデータを出力装置へ出力する。
【0224】
メディアインターフェイス87は、記録媒体88に記憶されたプログラムまたはデータを読み取り、RAM82を介してCPU81に提供する。CPU81は、かかるプログラムを、メディアインターフェイス87を介して記録媒体88からRAM82上にロードし、ロードしたプログラムを実行する。記録媒体88は、例えばDVD(Digital Versatile Disc)、PD(Phase change rewritable Disk)などの光学記録媒体、MO(Magneto-Optical disk)などの光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリなどである。
【0225】
例えば、コンピュータ80が実施形態に係る情報処理装置1,1Aとして機能する場合、コンピュータ80のCPU81は、RAM82上にロードされたプログラムを実行することにより処理部12,12Aの機能を実現する。また、HDD84には、記憶部11内のデータが記憶される。コンピュータ80のCPU81は、これらのプログラムを記録媒体88から読み取って実行するが、他の例として、他の装置からネットワークNを介してこれらのプログラムを取得してもよい。
【0226】
〔4.その他〕
また、上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
【0227】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【0228】
例えば、上述した情報処理装置1,1Aは、複数のサーバコンピュータで実現してもよく、また、機能によっては外部のプラットホームなどをAPIやネットワークコンピューティングなどで呼び出して実現するなど、構成は柔軟に変更できる。
【0229】
また、上述してきた実施形態および変形例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【0230】
〔5.効果〕
上述してきたように、実施形態に係る情報処理装置1,1Aは、テスト実行部50と、自動チューニング推論部52,52Aと、リスク評価部42,42Aとを備える。テスト実行部50は、チューニングの対象となるソフトウェアをテスト環境4で実行する。自動チューニング推論部52,52Aは、テスト実行部50によるテスト環境4でのソフトウェアの実行中にテスト環境4のメトリクスデータを入力データとする自動チューニングモデルを用いてソフトウェアのテスト環境4でのチューニング値を推論する。リスク評価部42,42Aは、自動チューニング推論部52によって推論されたチューニング値に基づく情報である適用情報を本番環境5,5Aに適用した場合のリスクである適用リスクを評価する。これにより、情報処理装置1,1Aは、チューニング値に基づく情報を適用情報として本番環境5,5Aに適用する前に、そのリスクを把握することができる。そのため、情報処理装置1,1Aは、自動チューニングモデルを用いたチューニング結果である適用情報を適切に本番環境5,5Aに適用することが可能となる。
【0231】
また、自動チューニング推論部52は、ソフトウェアのテスト環境4でのパラメータ値をチューニング値として推論する。これにより、情報処理装置1は、チューニングパラメータ値に基づく情報である適用情報を本番環境5に適用する前に、そのリスクを把握することができる。そのため、情報処理装置1は、自動チューニングモデルを用いたチューニング結果である適用情報を適切に本番環境5に適用することが可能となる。
【0232】
また、テスト実行部50は、自動チューニング推論部52によって推論されたパラメータ値を用いてソフトウェアをテスト環境4で実行し、リスク評価部42は、自動チューニング推論部52によって推論されたパラメータ値に基づいて実行されるソフトウェアのテスト環境4での性能値に基づいて、適用リスクを評価する。これにより、例えば、情報処理装置1は、事前に指示された以上の性能を達成可能な場合に、適用リスクなし、と判定することができる。
【0233】
また、性能値は、スループット値およびレスポンスタイム値のうちの少なくとも1つを含む。これにより、例えば、情報処理装置1は、スループット値およびレスポンスタイム値のうちの少なくとも1つが事前に指示された以上の性能を達成可能な場合に、適用リスクなし、と判定することができる。
【0234】
また、自動チューニング推論部52Aは、ソフトウェアのテスト環境4での仮想マシンのスペック値をチューニング値として推論する。これにより、情報処理装置1Aは、チューニングスペック値に基づく本番環境5Aへのパラメータ値の適用前に、そのリスクを把握することができる。そのため、情報処理装置1Aは、自動チューニングモデルを用いたチューニング結果である適用情報を適切に本番環境5Aに適用することが可能となる。
【0235】
また、スペック値は、CPUコア数およびメモリサイズのうちの少なくとも1つを含む。これにより、例えば、情報処理装置1Aは、CPUコア数およびメモリサイズのうちの少なくとも1つが計算機リソースの多量消費につながらない場合に、適用リスクなし、と判定することができる。
【0236】
また、テスト実行部50は、自動チューニング推論部52Aによって推論されたスペック値を用いてソフトウェアをテスト環境4で実行し、リスク評価部42Aは、自動チューニング推論部52Aによって推論されたスペック値と予め定められた閾値との比較結果に基づいて、適用リスクを評価する。これにより、例えば、情報処理装置1Aは、CPUコア数およびメモリサイズのうちの少なくとも1つが計算機リソースの多量消費につながらない場合に、適用リスクなし、と判定することができる。
【0237】
また、情報処理装置1,1Aは、テスト環境4と本番環境5,5Aとの差に応じた補正値に基づいて、自動チューニング推論部52,52Aによって推論されたチューニング値を補正する補正部43,43Aを備える。これにより、情報処理装置1,1Aは、自動チューニング推論部52,52Aによって推論されたチューニング値を本番環境5,5Aに適切に適用可能な内容とすることができる。
【0238】
また、情報処理装置1,1Aは、補正部43による補正結果に基づく情報を適用情報として本番環境5,5Aに適用する本番適用部44を備える。これにより、情報処理装置1,1Aは、テスト環境4と本番環境5との差がある場合であっても、適切な適用情報を本番環境5,5Aに適用することができる。
【0239】
また、本番適用部44,44Aは、チューニング値をソフトウェアの定義ファイルに設定し、チューニング値を設定した定義ファイルを適用情報として本番環境5,5Aに適用する。これにより、情報処理装置1,1Aは、適切な適用情報を本番環境5に適用することができる。
【0240】
以上、本願の実施形態を図面に基づいて詳細に説明したが、これは例示であり、発明の開示の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
【0241】
また、上述してきた「部(section、module、unit)」は、「手段」や「回路」などに読み替えることができる。例えば、取得部は、取得手段や取得回路に読み替えることができる。
【符号の説明】
【0242】
1,1A 情報処理装置
2 端末装置
3 周辺テスト環境
4 テスト環境
5,5A 本番環境
6 ソースコード管理システム
7 モデル管理システム
8,8A 本番環境システム
9,9,9,・・・,9 周辺テストシステム
10 通信部
11 記憶部
12,12A 処理部
20 全体制御部
21,21A 自動チューニング部
30 要求受付部
31 定義情報抽出部
40 自動チューニング準備部
41,41A 自動チューニング実行部
42,42A リスク評価部
43,43A 補正部
44,44A 本番適用部
50 テスト実行部
51 メトリクスデータ取得部
52,52A 自動チューニング推論部
53 性能値取得部
70 仮想マシン
100,100A 情報処理システム
N ネットワーク
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22