(57)【特許請求の範囲】
【請求項１】
システムにおいて調整可能なパラメータの複数の候補値を設定するパラメータ設定部と、
前記パラメータ設定部により設定された前記パラメータの複数の候補値のそれぞれを、所定時間または所定回数、前記システムに対して試行して、前記システムにおける報酬をそれぞれ算出するパラメータ試行部と、
前記パラメータ試行部による試行が所定の終了条件を満たした場合に、前記パラメータの複数の候補値のうち、最大の報酬が算出された前記パラメータの候補値を選択して、選択された前記パラメータの候補値を前記システムに適用するパラメータ適用部と、
前記パラメータ適用部により選択された前記パラメータの候補値に基づいて、前記パラメータ設定部に前記パラメータの複数の候補値を再設定させ、再設定された前記パラメータの複数の候補値で、前記パラメータ設定部、前記パラメータ試行部、および前記パラメータ適用部の各処理が繰り返されるよう制御する制御部と、
を備える情報処理装置。
【請求項２】
前記制御部は、前記パラメータ適用部により選択されたパラメータの候補値、および当該パラメータの候補値の上下のパラメータの候補値を含むよう、前記パラメータ設定部にパラメータの複数の候補値を再設定させる、請求項１に記載の情報処理装置。
【請求項３】
前記制御部は、前記システムが稼働する間、前記パラメータ設定部、前記パラメータ試行部、および前記パラメータ適用部の各処理が繰り返されるよう制御する、
請求項１または２に記載の情報処理装置。
【請求項４】
前記制御部は、前記パラメータ適用部により選択されたパラメータの候補値が、次回のパラメータ試行部による試行において、パラメータの複数の候補値のうち中央または中央近傍となるよう、前記パラメータ設定部にパラメータの複数の候補値を再設定させる、
請求項１から３のいずれか１項に記載の情報処理装置。
【請求項５】
前記パラメータ試行部は、固定時間あるいは固定回数試行を実行した場合、または、所定の報酬が累積された場合に、試行を終了し、
前記パラメータ適用部は、試行終了時点で最大の報酬が算出されたパラメータの候補値を選択して、選択されたパラメータの候補値を前記システムに適用する、
請求項１から４のいずれか１項に記載の情報処理装置。
【請求項６】
前記制御部は、再設定すべきパラメータの複数の候補値の間の幅を動的に変更して、前記パラメータ設定部に前記パラメータの複数の候補値を再設定させる、
請求項１から５のいずれか１項に記載の情報処理装置。
【請求項７】
前記制御部は、前記パラメータの複数の候補値の間の前記報酬の差分の前記幅に対する割合が、前回の試行における割合より小さい場合に、前記幅が小さくなるよう、前記割合が前回の試行における割合より大きい場合に、前記幅が大きくなるよう、前記幅を動的に変更する、
請求項６に記載の情報処理装置。
【請求項８】
前記制御部は、相互に関連する複数のパラメータのうち、第１のパラメータを、前記パラメータ設定部、前記パラメータ試行部、および前記パラメータ適用部の各処理を繰り返すことで調整し、その後、前記複数のパラメータのうち、第２のパラメータを、前記パラメータ設定部、前記パラメータ試行部、および前記パラメータ適用部の各処理を繰り返すことで調整し、前記第１のパラメータおよび前記第２のパラメータの調整を繰り返す、
請求項１から７のいずれか１項に記載の情報処理装置。
【請求項９】
前記制御部は、前記パラメータ設定部にすでに設定されたパラメータの複数の候補値とは異なる、ランダムに選択されたパラメータの候補値が設定されるよう制御する、
請求項１から８のいずれか１項に記載の情報処理装置。
【請求項１０】
前記制御部は、前記パラメータ設定部にすでに設定されたパラメータの複数の候補値より小さい値をランダムに選択する、
請求項９に記載の情報処理装置。
【請求項１１】
前記パラメータ適用部は、前記パラメータ試行部が、前記パラメータの複数の候補値のそれぞれを試行する所定時間または所定回数より多い時間または回数、選択されたパラメータの候補値の前記システムに対する適用を繰り返す、
請求項１から１０のいずれか１項に記載の情報処理装置。
【請求項１２】
情報処理装置が実行する情報処理方法であって、
システムにおいて調整可能なパラメータの複数の候補値を設定するステップと、
設定された前記パラメータの複数の候補値のそれぞれを、所定時間または所定回数、前記システムに対して試行して、前記システムにおける報酬をそれぞれ算出するステップと、
試行が所定の終了条件を満たした場合に、前記パラメータの複数の候補値のうち、最大の報酬が算出された前記パラメータの候補値を選択して、選択された前記パラメータの候補値を前記システムに適用するステップと、
選択された前記パラメータの候補値に基づいて、前記パラメータの複数の候補値を再設定し、再設定された前記パラメータの複数の候補値で、前記パラメータの設定、前記パラメータの試行、および前記パラメータの適用の各処理を繰り返すステップと、
を含む情報処理方法。
【請求項１３】
情報処理をコンピュータに実行させるための情報処理プログラムであって、該プログラムは、前記コンピュータに、
システムにおいて調整可能なパラメータの複数の候補値を設定するパラメータ設定処理と、
前記パラメータ設定処理により設定された前記パラメータの複数の候補値のそれぞれを、所定時間または所定回数、前記システムに対して試行して、前記システムにおける報酬をそれぞれ算出するパラメータ試行処理と、
前記パラメータ試行処理による試行が所定の終了条件を満たした場合に、前記パラメータの複数の候補値のうち、最大の報酬が算出された前記パラメータの候補値を選択して、選択された前記パラメータの候補値を前記システムに適用するパラメータ適用処理と、
前記パラメータ適用処理により選択された前記パラメータの候補値に基づいて、前記パラメータ設定部に前記パラメータの複数の候補値を再設定させ、再設定された前記パラメータの複数の候補値で、前記パラメータ設定処理、前記パラメータ試行処理、および前記パラメータ適用処理の各処理が繰り返されるよう制御する制御処理と、を含む処理を実行させるためのものである、
情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法およびプログラムに関し、特に、コンピュータシステムのパラメータを動的にチューニングするための技術に関する。
【背景技術】
【０００２】
コンピュータシステムにおいては、システムのパフォーマンス改善および安定稼働が常に求められる。
例えば、一定時間以上通信がされない場合に、タイムアウトして終了するプログラムを稼働させるコンピュータシステムにおいては、プログラムのタイムアウト終了に伴うクライアントとの通信セッションの切断および再確立によるパフォーマンス低下を回避する必要がある。このため、クライアントからヘルスチェックの要求を定期的に当該コンピュータシステムに送信することで、通信セッションが維持される。
【０００３】
特許文献１は、ホストの状態を監視するホスト状態監視方式を開示する。
具体的には、特許文献１の監視方式においては、ワークステーションのホスト状態監視プロセスは、ホストに状態監視コマンドを送信してホストの状態の結果として、ホストが終了状態、正常動作中、待機状態等を受信する。そして、ホストが正常動作中であって、かつ一定時間以上通信していない場合、ワークステーションのホスト状態監視プロセスは、ワークステーションプログラムからの送信要求を代行して、ダミーデータをホストに送信する。これにより、タイムアウトによるホストプログラムの終了を防いでいる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平２−２１２９６６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、このようなダミーデータを過度に大量にコンピュータシステムに送信したのでは、ダミーデータのための通信や処理の負荷が増大し、却って、コンピュータシステムのパフォーマンスを低下させて、ユーザクライアントからの通常の送信要求に対する応答時間に悪影響を及ぼしかねない。このような応答時間の悪化を避けるためには、コンピュータシステムのパフォーマンスが最適化するように、ダミーデータの送信頻度や送信量のパラメータを調整しなければならない。
【０００６】
特に、オンライントランザクション型のコンピュータシステムにおいては、時間帯や曜日によって、コンピュータシステムが受信して処理すべきトランザクション数が時々刻々と動的に変化してゆく。このため、ダミーデータのトランザクションの送信頻度や送信量のパラメータも、実トランザクション数の変化に追従して、例えば、数時間ごとの高頻度で調整していかなければならない。このような高頻度のパラメータ最適化を、手動によるオペレーションで行うことは、過度な時間と労力を要し、極めて困難である。
【０００７】
近年のコンピュータシステムはますます複雑化し、システムのパフォーマンス改善に寄与する調整対象パラメータの数は膨大になっている。例えば、マイクロサービス（Ｍｉｃｒｏｓｅｒｖｉｃｅ）化されたコンピュータシステムでは、それぞれのサービスコンポーネントは独立しており、システム内部での通信数、スケール可能なサービス数、データベース数等、調整対象パラメータは多岐に亘る。また、コンピュータシステムに搭載されるミドルウエアが提供する調整可能なパラメータ数も膨大になっている。
このように膨大な数を有し、取り得るパラメータ値も広範であり、かつ相互関連する調整対象パラメータを、１つ１つ手動でパフォーマンスを検証しながら動的に調整していくことは、ますます困難化している。
【０００８】
本発明は上記課題を解決するためになされたものであり、その目的は、コンピュータシステムのパフォーマンスに関連するパラメータを動的かつ自律的に調整することが可能な情報処理装置、情報処理方法およびプログラムを提供することにある。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、本発明に係る情報処理装置の一態様は、システムにおいて調整可能なパラメータの複数の候補値を設定するパラメータ設定部と、前記パラメータ設定部により設定された前記パラメータの複数の候補値のそれぞれを、所定時間または所定回数、前記システムに対して試行して、前記システムにおける報酬をそれぞれ算出するパラメータ試行部と、前記パラメータ試行部による試行が所定の終了条件を満たした場合に、前記パラメータの複数の候補値のうち、最大の報酬が算出された前記パラメータの候補値を選択して、選択された前記パラメータの候補値を前記システムに適用するパラメータ適用部と、前記パラメータ適用部により選択された前記パラメータの候補値に基づいて、前記パラメータ設定部に前記パラメータの複数の候補値を再設定させ、再設定された前記パラメータの複数の候補値で、前記パラメータ設定部、前記パラメータ試行部、および前記パラメータ適用部の各処理が繰り返されるよう制御する制御部と、を備える。
【００１０】
前記制御部は、前記パラメータ適用部により選択されたパラメータの候補値、および当該パラメータの候補値の上下のパラメータの候補値を含むよう、前記パラメータ設定部にパラメータの複数の候補値を再設定してよい。
前記制御部は、前記システムが稼働する間、前記パラメータ設定部、前記パラメータ試行部、および前記パラメータ適用部の各処理が繰り返されるよう制御してよい。
【００１１】
前記制御部は、前記パラメータ適用部により選択されたパラメータの候補値が、次回のパラメータ試行部による試行において、パラメータの複数の候補値のうち中央または中央近傍となるよう、前記パラメータ設定部にパラメータの複数の候補値を再設定してよい。
【００１２】
前記パラメータ試行部は、固定時間あるいは固定回数試行を実行した場合、または、所定の報酬が累積された場合に、試行を終了し、前記パラメータ適用部は、試行終了時点で最大の報酬が算出されたパラメータの候補値を選択して、選択されたパラメータの候補値を前記システムに適用してよい。
【００１３】
前記制御部は、再設定すべきパラメータの複数の候補値の間の幅を動的に変更して、前記パラメータ設定部に前記パラメータの複数の候補値を再設定させてよい。
【００１４】
前記制御部は、前記パラメータの複数の候補値の間の前記報酬の差分の前記幅に対する割合が、前回の試行における割合より小さい場合に、前記幅が小さくなるよう、前記割合が前回の試行における割合より大きい場合に、前記幅が大きくなるよう、前記幅を動的に変更してよい。
【００１５】
前記制御部は、相互に関連する複数のパラメータのうち、第１のパラメータを、前記パラメータ設定部、前記パラメータ試行部、および前記パラメータ適用部の各処理を繰り返すことで調整し、その後、前記複数のパラメータのうち、第２のパラメータを、前記パラメータ設定部、前記パラメータ試行部、および前記パラメータ適用部の各処理を繰り返すことで調整し、前記第１のパラメータおよび前記第２のパラメータの調整を繰り返してよい。
【００１６】
前記制御部は、前記パラメータ設定部にすでに設定されたパラメータの複数の候補値とは異なる、ランダムに選択されたパラメータの候補値が設定されるよう制御してよい。
【００１７】
前記制御部は、前記パラメータ設定部にすでに設定されたパラメータの複数の候補値より小さい値をランダムに選択してよい。
【００１８】
前記パラメータ適用部は、前記パラメータ試行部が、前記パラメータの複数の候補値のそれぞれを試行する所定時間または所定回数より多い時間または回数、選択されたパラメータの候補値の前記システムに対する適用を繰り返してよい。
【００１９】
本発明に係る情報処理方法の一態様は、情報処理装置が実行する情報処理方法であって、システムにおいて調整可能なパラメータの複数の候補値を設定するステップと、設定された前記パラメータの複数の候補値のそれぞれを、所定時間または所定回数、前記システムに対して試行して、前記システムにおける報酬をそれぞれ算出するステップと、試行が所定の終了条件を満たした場合に、前記パラメータの複数の候補値のうち、最大の報酬が算出された前記パラメータの候補値を選択して、選択された前記パラメータの候補値を前記システムに適用するステップと、選択された前記パラメータの候補値に基づいて、前記パラメータの複数の候補値を再設定し、再設定された前記パラメータの複数の候補値で、前記パラメータの設定、前記パラメータの試行、および前記パラメータの適用の各処理を繰り返すステップと、を含む。
【００２０】
本発明に係る情報処理プログラムの一態様は、情報処理をコンピュータに実行させるための情報処理プログラムであって、該プログラムは、前記コンピュータに、システムにおいて調整可能なパラメータの複数の候補値を設定するパラメータ設定処理と、前記パラメータ設定処理により設定された前記パラメータの複数の候補値のそれぞれを、所定時間または所定回数、前記システムに対して試行して、前記システムにおける報酬をそれぞれ算出するパラメータ試行処理と、前記パラメータ試行処理による試行が所定の終了条件を満たした場合に、前記パラメータの複数の候補値のうち、最大の報酬が算出された前記パラメータの候補値を選択して、選択された前記パラメータの候補値を前記システムに適用するパラメータ適用処理と、前記パラメータ適用処理により選択された前記パラメータの候補値に基づいて、前記パラメータ設定部に前記パラメータの複数の候補値を再設定させ、再設定された前記パラメータの複数の候補値で、前記パラメータ設定処理、前記パラメータ試行処理、および前記パラメータ適用処理の各処理が繰り返されるよう制御する制御処理と、を含む処理を実行させるためのものである。
【発明の効果】
【００２１】
本発明によれば、コンピュータシステムのパフォーマンスに関連するパラメータを動的かつ自律的に調整することができる。
上記した本発明の目的、態様及び効果並びに上記されなかった本発明の目的、態様及び効果は、当業者であれば添付図面及び請求の範囲の記載を参照することにより下記の発明を実施するための形態から理解できるであろう。
【図面の簡単な説明】
【００２２】
【図１】図１は、本発明の各実施形態に係るパラメータ調整装置のハードウエア構成の一例を示すブロック図である。
【図２】図２は、各本実施形態に係るパラメータ調整装置の機能構成の一例を示すブロック図である。
【図３】図３は、各実施形態に係るパラメータ調整装置が調整対象とするダミーリクエスト数（テストデータ送信数）が投入されるコンピュータシステムの一例を示す概略図である。
【図４】図４は、実施形態１に係るパラメータ調整装置が実行するパラメータ調整処理の処理手順の一例を示すフローチャートである。
【図５】図５は、図４に示すパラメータ調整処理を実行することで、時系列上、パラメータの最適値が推移することを説明する概略図である。
【図６】図６は、実施形態２に係るパラメータ調整装置が実行するパラメータ調整処理の処理手順の一例を示すフローチャートである。
【図７】図７は、実施形態３に係るパラメータ調整装置が実行するパラメータ調整処理の処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【００２３】
以下、添付図面を参照して、本発明を実施するための実施形態について詳細に説明する。以下に開示される構成要素のうち、同一機能を有するものには同一の符号を付し、その説明を省略する。なお、以下に開示される実施形態は、本発明の実現手段としての一例であり、本発明が適用される装置の構成や各種条件によって適宜修正または変更されるべきものであり、本発明は以下の実施形態に限定されるものではない。また、本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
【００２４】
（実施形態１）
本実施形態に係るパラメータ調整装置は、コンピュータシステムのパフォーマンスに関連するパラメータを、自律的かつ動的に調整する。
以下では、パラメータ調整装置が、通信セッションを維持するため、オンライントランザクション型コンピュータシステムに投入されるダミーリクエスト数をパラメータとし、システムの応答時間（レスポンスタイム）を報酬として評価することにより、単位時間当たりのダミーリクエスト数を調整する一例を説明する。
しかしながら、本実施形態はこれに限定されず、コンピュータシステムのパフォーマンスに関連するあらゆるパラメータを調整するため、広範に適用可能である。
【００２５】
＜パラメータ調整装置のハードウエア構成＞
図１は、本実施形態に係るパラメータ調整装置１のハードウエア構成の一例を示す図である。
本実施形態に係るパラメータ調整装置１は、単一または複数の、あらゆるコンピュータ、モバイルデバイス、または他のいかなる処理プラットフォーム上に実装することができる。
図１に示すように、パラメータ調整装置１は、ＣＰＵ１１と、ＲＯＭ１２と、ＲＡＭ１３と、ＨＤＤ１４と、入力部１５と、表示部１６と、通信Ｉ／Ｆ１７と、システムバス１８とを備える。パラメータ調整装置１はまた、外部メモリを備えてよい。
【００２６】
ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１１は、パラメータ調整装置１における動作を統括的に制御するものであり、データ伝送路であるシステムバス１８を介して、各構成部（１２〜１７）を制御する。
ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１２は、ＣＰＵ１１が処理を実行するために必要な制御プログラム等を記憶する不揮発性メモリである。なお、当該プログラムは、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）１４、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の不揮発性メモリや着脱可能な記憶媒体（不図示）等の外部メモリに記憶されていてもよい。
ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１３は、揮発性メモリであり、ＣＰＵ１１の主メモリ、ワークエリア等として機能する。すなわち、ＣＰＵ１１は、処理の実行に際してＲＯＭ１２から必要なプログラム等をＲＡＭ１３にロードし、当該プログラム等を実行することで各種の機能動作を実現する。
【００２７】
ＨＤＤ１４は、例えば、ＣＰＵ１１がプログラムを用いた処理を行う際に必要な各種データや各種情報等を記憶している。また、ＨＤＤ１４には、例えば、ＣＰＵ１１がプログラム等を用いた処理を行うことにより得られた各種データや各種情報等が記憶される。
入力部１５は、キーボードやマウス等のポインティングデバイスにより構成される。
表示部１６は、液晶ディスプレイ（ＬＣＤ）等のモニターにより構成される。表示部１６は、パラメータ調整処理で使用される各種パラメータや、他の装置との通信で使用される通信パラメータ等をパラメータ調整装置１へ指示入力するためのＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）を提供してよい。
通信Ｉ／Ｆ１７は、パラメータ調整装置１と外部装置との通信を制御するインタフェースである。
【００２８】
図１に示すパラメータ調整装置１の各要素のうち少なくとも一部の機能は、ＣＰＵ１１がプログラムを実行することで実現することができる。ただし、後述する図２に示すパラメータ調整装置１の各要素のうち少なくとも一部の機能が専用のハードウエアとして動作するようにしてもよい。この場合、専用のハードウエアは、ＣＰＵ１１の制御に基づいて動作する。
【００２９】
＜パラメータ調整装置の機能構成＞
図２は、本実施形態に係るパラメータ調整装置１の機能構成の一例を示すブロック図である。
図２に示すパラメータ調整装置１は、データ入力部２１、パラメータ設定部２２、パラメータ探索部２３、パラメータ適用部２４、制御部２５、および通信部２６を備える。
【００３０】
データ入力部２１は、パラメータ調整装置１において調整すべきパラメータ、およびパラメータの調整を実行するために必要な各種パラメータの入力を受け付ける。パラメータの調整を実行するために必要な各種パラメータは、各パラメータの値の上限および下限、増分、試行における選択肢の数、各選択肢が選択される選択確率の初期値、試行の終了条件（試行回数や試行時間等）、当該パラメータを評価するための評価関数、評価の閾値等を含む。
データ入力部２１は、入力された各種データをＨＤＤ１４等の不揮発性記憶装置に予め記憶し、パラメータ探索部２３、パラメータ適用部２４が記憶装置に記憶された各種入力データを読み出して後述するパラメータ調整処理に供してもよい。
【００３１】
パラメータ設定部２２は、データ入力部２１に入力された、調整すべきパラメータの値の上限および下限、増分（幅）から、パラメータの候補値の母集団を形成し、形成されたパラメータの候補値の母集団のうち、所定数のパラメータの候補値を選択肢として設定する。パラメータ設定部２２は、パラメータの候補値の母集団から、好適には、現在、パラメータが適用されるコンピュータシステムにおいて使用されているパラメータ値を含んだ複数の選択肢を設定してよい。
【００３２】
パラメータ探索部２３は、パラメータ設定部２２により設定された所定数のパラメータの候補値を選択肢として、各選択肢を試行することで、所定数のパラメータの候補値のうちの最適解を探索する。
具体的には、パラメータ探索部２３は、複数の選択肢のそれぞれを、所定の選択確率で選択し、選択された選択肢のパラメータの候補値を、所定回数または所定時間、繰り返して試行する。そして、パラメータ探索部２３は、選択された選択肢の試行により得られるシステムのパフォーマンス指標（例えば、応答時間）を報酬として、例えば、所定の評価関数を用いて算出し、所定の終了条件に到達するまで、各選択肢の報酬を累積していき、終了条件に到達した時点で最高の報酬が累積された選択肢を最適解として選択する。
【００３３】
パラメータ適用部２４は、パラメータ探索部２３により探索された最適解であるパラメータの候補値を、所定回数または所定時間、コンピュータシステムに適用する。パラメータ適用部２４が最適解であるパラメータの候補値をコンピュータシステムに適用する所定回数または所定時間は、パラメータ探索部２３が選択肢を試行する所定回数または所定時間と異なってよく、好適には、試行の所定回数または所定時間より多くてよい。試行において探索された最適解を限られた調整期間内でより多く適用できるため、より早期のコンピュータシステムのパフォーマンス改善が実現し得る。
【００３４】
制御部２５は、データ入力部２１、パラメータ設定部２２、パラメータ探索部２３、パラメータ適用部２４、および通信部２６の動作を統括的に制御して、パラメータ調整装置１にパラメータ調整処理を実行させる。
【００３５】
本実施形態において、制御部２５は、パラメータ適用部２４が、所定回数または所定時間、最適解であるパラメータの候補値をコンピュータシステムに対して適用した後、パラメータ設定部２２に、所定数のパラメータの候補値を再設定させる。具体的には、制御部２５は、パラメータ適用部２４がコンピュータシステムに適用した最適解であるパラメータの候補値が、上限値または下限値の選択肢とならないよう、換言すると、最適解であるパラメータの候補値の上下の候補値が選択肢に含まれるよう、所定数のパラメータの候補値を選択肢に再設定する。制御部２５は、パラメータ設定部２２に再設定させた選択肢で、パラメータ探索部２３およびパラメータ適用部２４にパラメータ試行（探索）および適用の処理を実行させる。
制御部２５はまた、表示部１６を制御して、パラメータ調整装置１が実行するパラメータ調整処理の実行結果を、表示出力させてよい。
【００３６】
通信部２６は、ネットワークとのインタフェースを提供し、ネットワークを介して、外部装置との通信を実行する。通信部２６を介して、外部装置との間で、例えば調整すべきパラメータやパラメータの試行や適用に使用される各種パラメータ等が受信され、チューニング対象であるコンピュータシステムに、調整すべきパラメータの選択肢や最適解等が送信される。本実施形態では、通信部２６は、イーサネット（登録商標）等の通信規格に準拠する有線ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）や専用線を介した通信を実行してよい。ただし、本実施形態で利用可能なネットワークはこれに限定されず、無線ネットワークで構成されてもよい。この無線ネットワークは、Ｂｌｕｅｔｏｏｔｈ（登録商標）、ＺｉｇＢｅｅ（登録商標）、ＵＷＢ（Ｕｌｔｒａ  Ｗｉｄｅ  Ｂａｎｄ）等の無線ＰＡＮ（Ｐｅｒｓｏｎａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）を含む。また、Ｗｉ−Ｆｉ（Ｗｉｒｅｌｅｓｓ  Ｆｉｄｅｌｉｔｙ）（登録商標）等の無線ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）や、ＷｉＭＡＸ（登録商標）等の無線ＭＡＮ（Ｍｅｔｒｏｐｏｌｉｔａｎ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）を含む。さらに、ＬＴＥ／３Ｇ、４Ｇ、５Ｇ等の無線ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）を含む。なお、ネットワークは、各機器を相互に通信可能に接続し、通信が可能であればよく、通信の規格、規模、構成は上記に限定されない。
【００３７】
なお、パラメータ設定部２２は、請求項におけるパラメータ設定部に、パラメータ探索部２３は、請求項におけるパラメータ試行部に、パラメータ適用部２４は、請求項におけるパラメータ適用部に、制御部２５は、請求項における制御部に、それぞれ相当する。
【００３８】
以下、本実施形態に係るパラメータ調整装置１が、コンピュータシステムに投入されるダミーリクエストの数（頻度）を調整すべきパラメータとして、コンピュータシステムの応答時間を最小化するようなダミーリクエスト数を探索していく例を説明する。
図３は、本実施形態に係るパラメータ調整装置１が調整対象とするダミーリクエスト数（テストデータ送信数）が投入されるコンピュータシステムの一例を示す概略図である。
図３を参照して、コンピュータシステムは、クライアント３１、ロードバランサ３２、および複数のレプリカサーバ３３ａ、３３ｂ、・・・３３ｎを備える。なお、レプリカサーバ３３ａ、３３ｂ、・・・３３ｎの数は、固定であってもよく、可変であってもよい。また、レプリカサーバ３３ａ、３３ｂ、・・・３３ｎに替えて、単一のサーバを設けてもよい。
【００３９】
クライアント３１から、例えば、１００回ずつ、ロードバランサ３２を介して、複数のダミーリクエスト数の選択肢（ｘ、ｘ−１、ｘ＋１ＱＰＳ（Ｑｕｅｒｙ  ｐｅｒ  Ｓｅｃｏｎｄ））にそれぞれ対応するレプリカサーバ３３ａ、３３ｂ、３３ｃにリクエストを送り、それぞれのレプリカサーバ３３ａ、３３ｂ、３３ｃからの応答時間ｔ１、ｔ２、ｔ３を計測する。図３に示すレプリカサーバ３３ａ、３３ｂ、・・・３３ｎには、ロードバランサ３２を介して、実トランザクションのリクエストも送信されているから、応答時間が最小になるようなＱＰＳｘは、時々刻々と変化していく。
なお、本実施形態において、パラメータを適用すべきコンピュータシステムは、図３に示す構成に限定されず、他のネットワーク構成を備えてもよく、単一のコンピュータで実現されてもよい。
【００４０】
本実施形態では、パラメータ調整装置１のパラメータ探索部２３およびパラメータ適用部２４は、バンディットアルゴリズム（Ｂａｎｄｉｔ  Ａｌｇｏｒｉｔｈｍ）を利用して、未知の最適解を探索する。
バンディットアルゴリズムは、強化学習とも称される、教師なしの機械学習法である。バンディットアルゴリズムは、すべての選択肢（以下、「アーム」ともいう。）についてそれぞれ報酬を計算して最適解を探索する探索（Ｅｘｐｌｏｒｅ）を実行しながら、探索された最適解を多く活用して報酬を高める活用（Ｅｘｐｌｏｉｔ）を併用していくことで、一定期間（回数または時間）の中で、報酬を最大化するアルゴリズムである。
【００４１】
本実施形態では、このバンディッドアルゴリズムを利用して、多数のパラメータの候補値の中から、実トランザクション数の変化に追従するよう、自律的かつ動的に、パラメータを調整していく。
具体的には、本実施形態に係るパラメータ調整装置１は、多数のパラメータの候補値の中から複数の選択肢（アーム）、例えば、{ｘ−α，ｘ，ｘ＋α}、を設定し、それぞれのアームを一定時間Ｔまたは一定回数Ｎだけ試行して、その間にターゲットとなるパフォーマンス指標（応答時間等）を計測する。これを１回の試行とする。
パラメータ調整装置１は、このような試行を複数回実行していくが、その際、バンディッドアルゴリズム（多腕バンディッドアルゴリズム）を使用することによって、パフォーマンスが低下するようなパラメータの選択を少なくしながら、可及的に早い段階で最適なパラメータを見出す。
【００４２】
＜パラメータ調整処理の処理手順＞
図４は、本実施形態に係るパラメータ調整装置１が実行する、パラメータ調整処理の処理手順の一例を示すフローチャートである。
なお、図４の各ステップは、パラメータ調整装置１のＨＤＤ１４等の記憶装置に記憶されたプログラムをＣＰＵ１１が読み出し、実行することで実現される。また、図４に示すフローチャートの少なくとも一部をハードウエアにより実現してもよい。ハードウエアにより実現する場合、例えば、所定のコンパイラを用いることで、各ステップを実現するためのプログラムからＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）上に自動的に専用回路を生成すればよい。また、ＦＰＧＡと同様にしてＧａｔｅ  Ａｒｒａｙ回路を形成し、ハードウエアとして実現するようにしてもよい。また、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）により実現するようにしてもよい。
【００４３】
Ｓ１で、パラメータ調整装置１のパラメータ設定部２２は、データ入力部２１に入力された、調整すべきパラメータの値の上限および下限、増分（幅）から、調整すべきパラメータが取り得る候補値の母集団を形成する。パラメータ設定部２２は、形成されたパラメータの候補値の母集団のうち、所定数のパラメータの候補値を、バンディッドアルゴリズムにより試行すべき選択肢であるアームとして設定する。図４のフローチャートでは、Ｓ３〜Ｓ５に示されるように、３つのアームが設定されている。ただし、アームの数は３つに限定されず、２つでもよいし、４つ以上でもよい。
【００４４】
Ｓ２で、パラメータ調整装置１のパラメータ探索部２３は、Ｓ１でパラメータ設定部２２により設定された複数のアームのうち、今回試行すべき１つのアームを選択する。図４では、Ｓ３〜Ｓ５の３つのアームのうち、いずれかのアームを選択して当該アームで規定されたパラメータの候補値を試行する。
【００４５】
Ｓ２で、Ｓ３のアームが選択された場合、Ｓ３で、パラメータ調整装置１のパラメータ探索部２３は、Ｎ−ｎＱＰＳ（Ｑｕｅｒｙ  Ｐｅｒ  Ｓｅｃｏｎｄ）で一定時間、コンピュータシステムにダミーリクエスト（テストデータ）を送信する。
Ｓ２で、Ｓ４のアームが選択された場合、Ｓ４で、パラメータ調整装置１のパラメータ探索部２３は、Ｎ  ＱＰＳで一定時間、コンピュータシステムにダミーリクエストを送信する。
Ｓ２で、Ｓ５のアームが選択された場合、Ｓ５で、パラメータ調整装置１のパラメータ探索部２３は、Ｎ＋ｎＱＰＳで一定時間、コンピュータシステムにダミーリクエストを送信する。ここで、Ｎは、ダミーリクエスト送信頻度の固定値であり、ｎは幅である。
【００４６】
なお、パラメータ探索部２３が、Ｓ３〜Ｓ５の３つのアームから１つのアームを選択する確率の初期値は、１／３であってよい。すなわち、パラメータ探索部２３は、Ｓ３〜Ｓ５のアームを等確率で選択してよい。その後、パラメータ探索部２３は、後述するＳ８で更新された報酬に基づいて、Ｓ３〜Ｓ５のアームの選択確率を変更してもよい。あるいは、パラメータ探索部２３は、後続するパラメータ適用段階（Ｓ９）におけるパラメータの最適値の収束に応じて、各アームの選択確率を変更してもよい。
【００４７】
Ｓ３〜Ｓ５の各アームにおいて、Ｎ−ｎＱＰＳ、Ｎ  ＱＰＳ、Ｎ＋ｎＱＰＳの各頻度でコンピュータシステムにダミーリクエストを送信する一定時間は、例えば、数十秒から数分程度であってよい。あるいは、Ｓ３〜Ｓ５の各アームでは、各頻度で一定回数、例えば数十回から数百回程度、コンピュータシステムにダミーリクエストを送信してよい。
【００４８】
Ｓ６で、パラメータ調整装置１のパラメータ探索部２３は、Ｓ３〜Ｓ５の各アームの試行の結果得られる報酬をパフォーマンス指標として計算する。具体的には、パラメータ探索部２３は、Ｓ３〜Ｓ５の各アームで規定されたＮ−ｎＱＰＳ、Ｎ  ＱＰＳ、Ｎ＋ｎＱＰＳの各頻度でコンピュータシステムにダミーリクエストを送信した際の、送信された各ダミーリクエストに対する応答時間（レスポンスタイム）を計測する。
パラメータ探索部２３は、一定時間または一定回数送信されたダミーリクエストの応答時間の平均値をパフォーマンス指標として算出してよい。あるいは、パラメータ探索部２３は、応答時間が所定の閾値（例えば、数百ｍｓ）以下であるダミーリクエストのリクエスト総数に対する割合を算出してよい。
【００４９】
Ｓ６の報酬計算において、パラメータ指標として、Ｎ−ｎＱＰＳ、Ｎ  ＱＰＳ、Ｎ＋ｎＱＰＳの各頻度でコンピュータシステムにダミーリクエストを一定時間または一定回数送信した場合の応答時間を評価する際に、パラメータ探索部２３は、以下の式１に示す評価関数Ｅ（ｉ）を用いて、ｉ回目の試行を評価してよい。
【００５０】
【数１】
0006900537.tif 000002
（式１）
ここで、Ｔは、応答時間の許容上限値、例えば、５００ｍｓｅｃであり、ｔは応答時間計測値であり、上記式１に示す評価関数は、応答時間ｔが応答時間の許容上限値Tを越えた回数をカウントしている。
【００５１】
あるいは、パラメータ探索部２３は、以下の式２に示す評価関数Ｅ（ｉ）を用いて、ｉ回目の試行を評価してよい。上記式２に示す評価関数は、応答時間の許容上限値Tと応答時間ｔとの差分最大値を累積している。
【００５２】
【数２】
0006900537.tif 000003
（式２）
【００５３】
本実施形態に係るパラメータ探索部２３が使用可能な報酬計算のための評価関数は、上記に限定されない。たとえば、パラメータ探索部２３は、応答時間の平均値や加重平均値、移動平均値等を算出して評価してもよい。
Ｓ７で、パラメータ調整装置１の制御部２５は、アーム試行の終了条件をクリアしたか否かを判定する。アーム試行の終了条件は、任意であってよいが、例えば、アーム試行が所定回数以上（例えば、１０００回）繰り返されたこと、アーム試行が所定時間（例えば、数分から数十分）繰り返されたこと、所定の基準以上の報酬が得られたこと、等を含む。
アーム試行の終了条件をクリアした場合（Ｓ７：Ｙ）、Ｓ９に進み、一方、アーム試行の終了条件をクリアしていない場合（Ｓ７：Ｎ）、Ｓ８に進む。
Ｓ８で、パラメータ調整装置１の制御部２５は、直前のＳ２で選択されたＳ３〜Ｓ５の各アームに対応する、各パラメータ指標（例えば、応答時間）の報酬を更新する。その後、制御部２５は、Ｓ２に戻り、アームの選択および試行、ならびに報酬の計算等を、終了条件をクリアするまで、パラメータ探索部２３に繰り返し実行させる。上述したように、パラメータ探索部２３は、直前のＳ８で更新された報酬に基づいて、Ｓ３〜Ｓ５のアームの選択確率を変更してもよい。すなわち、パラメータ探索部２３は、Ｓ２において、それ以前に更新されたより高い報酬に対応するアームをより高い確率で選択してもよい。
【００５４】
Ｓ９で、パラメータ調整装置１のパラメータ適用部２４は、Ｓ７で終了条件がクリアされた時点において、Ｓ３〜Ｓ５のアームのうち、最大の報酬が算出されたパラメータの候補値を最良のパラメータの候補値として選択し、選択された最良のパラメータの候補値を、一定時間、コンピュータシステムに適用する。ここでは、選択された最良のアームであるパラメータの候補値を、Ｎ´ＱＰＳとする。Ｎ´ＱＰＳは、Ｓ３〜Ｓ５のアームのうち、最大の報酬、すなわち最小の応答時間が算出されたパラメータの値である。
なお、Ｓ９において、パラメータ適用部２４がコンピュータシステムに最良のパラメータの候補値を適用する一定時間は、例えば、数分から数時間であってよく、Ｓ３〜Ｓ５でアームを試行する一定時間より長くてよい。アームを試行する時間より長く、最良のパラメータ値をコンピュータシステムに適用することで、より最大の報酬をより短時間で実現できる蓋然性が高まる。
【００５５】
Ｓ１０で、パラメータ調整装置１の制御部２５は、Ｓ３〜Ｓ５のアームにおけるＮ  ＱＰＳを、Ｎ´ＱＰＳに更新して、パラメータ設定部２２に、バンディッドアルゴリズムで試行すべきアームを変更させる。具体的には、制御部２５は、Ｓ３〜Ｓ５のアームにおけるＮ  ＱＰＳを、Ｓ６で最大の報酬が算出された最良のパラメータ候補値であるＮ´ＱＰＳに更新し、パラメータ設定部２２に、Ｎ´−ｎＱＰＳ、Ｎ´ＱＰＳ、およびＮ´＋ｎＱＰＳをアームとして設定させる。すなわち、制御部２５は、次回に試行されるアーム群として、最大の報酬が算出されたパラメータ候補値Ｎ´ＱＰＳが、アーム群の中央または中央近傍となるよう、Ｎ´ＱＰＳの上下の各パラメータ候補値をそれぞれ設定する。これにより、アーム試行による探索範囲を最適化することができる。
【００５６】
例えば、３つのアーム群として、{３、５、７}ＱＰＳのパラメータ候補値が設定されている場合において、最大の報酬が算出されたパラメータ候補値が７ＱＰＳであると判定されたとする。この場合、次回に試行されるアーム群として、７ＱＰＳがアーム群の中央となるよう、{５、７、９}ＱＰＳのパラメータ候補値が設定されてもよい。また、４つのアーム群として、{３、５、７、９}ＱＰＳのパラメータ候補値が設定されている場合において、最大の報酬が算出されたパラメータ候補値が７ＱＰＳであると判定されたとする。この場合、次回に試行されるアーム群として、直前の{３、５、７、９}ＱＰＳのパラメータ候補値がそのまま使用されてもよいし、{５、７、９、１１}ＱＰＳのパラメータ候補値が新たに設定されてもよい。
【００５７】
なお、次回に試行されるアーム群として、最大の報酬が算出されたパラメータ候補値がアーム群の中央または中央近傍となるよう、上下の各パラメータ候補値がそれぞれ設定される場合を例に挙げて説明したが、本実施形態はこれに限定されない。例えば、最大の報酬が算出されたパラメータ候補値が、少なくともアーム群に含まれていればよい。
例えば、３つのアーム群として、{３、５、７}ＱＰＳのパラメータ候補値が設定されている場合において、最大の報酬が算出されたパラメータ候補値が７ＱＰＳであると判定されたとする。この場合、次回に試行されるアーム群として、最大の報酬が算出された７ＱＰＳのパラメータ候補値が既に含まれている、直前の{３、５、７}ＱＰＳのパラメータ候補値が、そのまま使用されてもよい。これにより、探索中のダミーリクエスト数の増加が、コンピュータシステムにより高い負荷を与えることを回避できる。
また、２つのアーム群として、{５、７}ＱＰＳのパラメータ候補値が設定されている場合において、最大の報酬が算出されたパラメータ候補値が７ＱＰＳであると判定されたとする。この場合、次回に試行されるアーム群として、直前の{５、７}ＱＰＳのパラメータ候補値がそのまま使用されてもよいし、{７、９}ＱＰＳのパラメータ候補値が新たに設定されてもよい。
また、一定期間ごとに、Ｓ３〜Ｓ５において、アーム選択確率や報酬計算方式を変更してもよい。
また、制御部２５は、調整すべきパラメータが適用されるコンピュータシステムが稼働する間、Ｓ１〜Ｓ１０の処理を、停止が指示された場合を除き、常に繰り返して実行してよい。これにより、時々刻々と変化するコンピュータシステムの状況変化に追従して、パラメータの最適値を変化させることができる。
【００５８】
図５は、図４に示すパラメータ調整処理を実行することで、時系列上、パラメータの最適値が推移することを説明する概略図である。図５では、図３に示すクライアント３１とレプリカサーバ３３ａ〜３３ｎの間の通信、および各レプリカサーバ３３ａ〜３３ｎ内のマイクロサービス間の通信セッションが途絶せず維持されるための、実トランザクションのリクエストに加えて投入されるダミーリクエストの数を、調整すべきパラメータとして設定している。
【００５９】
図５を参照して、左から、パラメータ調整装置１のパラメータ探索部２３によるある１回の探索（図４のＳ１〜Ｓ８）においては、３つのアームとして、まず{３、５、７}ＱＰＳが設定され、それぞれのアームが所定回数または所定時間試行され、報酬計算がされることで、当該探索における最適解が判定される。
この１回の探索では、単位時間当たり、コンピュータシステムに実際に投入される実トランザクションの数（実ＴＸＮ数）が多い状態で、７ＱＰＳが最適解と判定されたものとする。
次に、パラメータ適用部２４は、当該探索で最適解と判定された７ＱＰＳの頻度で、コンピュータシステムにダミーリクエストを投入する。これにより、通信セッションが最も効率的に維持される。制御部２５は、パラメータ設定部２２に、当初のＮの値（Ｎ＝５）を、最適解と判定された７ＱＰＳに更新して、Ｎ＝７とさせる。図５において、幅ｎは、２ＱＰＳである。
【００６０】
次の１回の探索においては、３つのアームとして、{５，７，９}ＱＰＳが設定され、それぞれのアームが所定回数または所定時間試行され、報酬計算がされることで、当該探索における最適解が判定される。
この１回の探索では、先行する試行の際と同様、単位時間当たり、コンピュータシステムに実際に投入される実トランザクションの数が多い状態で、再度７ＱＰＳが最適解として判定されたものとする。
次に、パラメータ適用部２４は、当該探索で最適解と判定された７ＱＰＳの頻度で、コンピュータシステムにダミーリクエストを投入する。これにより、通信セッションが最も効率的に維持される。この場合、Ｎ＝Ｎ´＝７であるから、現在のＮの値は更新されず、また、アームのパラメータの候補値も変更されない。
【００６１】
ここで、図５に示すように時間の経過に伴い、コンピュータシステムに実際に投入される実トランザクションの数（実ＴＸＮ数）が減少して、単位時間当たり、コンピュータシステムに投入される実トランザクションの数が少ない状態に遷移したものとする。
その後の１回の探索においては、３つのアームとして、{５，７，９}ＱＰＳが設定され、それぞれのアームが所定回数または所定時間試行され、報酬計算がされることで、当該探索における最適解が判定される。
【００６２】
この１回の探索では、単位時間当たり、コンピュータシステムに実際に投入される実トランザクションの数が少ない状態で、９ＱＰＳが最適解と判定されたものとする。コンピュータシステムに実際に投入される実トランザクションの数が減少したことにより、実トランザクションの投入を補完して、コンピュータシステムの通信セッションの維持に寄与すべきダミーリクエストの数の最適値は、逆に増加することになる。
以降、パラメータ適用部２４は、当該探索で最適解と判定された９ＱＰＳの頻度で、コンピュータシステムにダミーリクエストを投入する。これにより、通信セッションが最も効率的に維持される。制御部２５は、パラメータ設定部２２に、現在のＮの値（Ｎ＝７）を、最適解と判定された９ＱＰＳに更新して、Ｎ＝９とさせる。
【００６３】
このように、本実施形態に係るパラメータ調整装置は、コンピュータシステムの時々刻々と変化する、通信状態や負荷状態を含む動作状態に追従して、少なくともコンピュータシステムの動作中は、調整すべきパラメータの調整動作を継続していく。
【００６４】
以上説明したように、本実施形態によれば、パラメータ調整装置は、システムにおいて調整可能な複数のパラメータのうち、複数のパラメータの候補（アーム）を設定し、設定された複数のパラメータの候補のそれぞれを、所定時間または所定回数、システムに対して試行して、システムにおける報酬（パフォーマンス指標）をそれぞれ算出する。パラメータ調整装置はさらに、所定の終了条件を満たしたと判定された場合に、複数のパラメータの候補のうち、最も高い報酬が算出されたパラメータの候補を選択して、選択されたパラメータの候補を前記システムに適用し、選択されたパラメータの候補および当該パラメータの候補の上下の値を持つ各パラメータ候補を含むよう、複数のパラメータの候補を再設定し、再設定された複数のパラメータ候補で、試行および適用の処理を繰り返す。
【００６５】
これにより、コンピュータシステムのパフォーマンスに関連するパラメータを、自律的かつ動的に調整することができる。
したがって、システムのパフォーマンスが悪化するようなパラメータの候補値の選択を少なくすることができるので、より迅速に最適解であるパラメータを探索してシステムに適用することで、時々刻々変化するシステムの動作に追従してシステムのチューニングを最適化できる。
【００６６】
（実施形態２）
以下、図６を参照して、実施形態２を、実施形態１と異なる点についてのみ詳細に説明する。
上記で説明した実施形態１では、パラメータ調整装置１が試行する複数の選択肢（アーム）間のパラメータの候補値の幅は、固定幅とした。これに対して、本実施形態では、複数の選択肢間のパラメータの候補値の幅を、動的に変更する。
実施形態２に係るパラメータ調整装置１のハードウエアおよび機能構成は、図１および図２を参照して説明した実施形態１に係るパラメータ調整装置と同様であるため、その説明を省略する。
【００６７】
図６は、実施形態２に係るパラメータ調整装置１が実行するパラメータ調整処理の処理手順の一例を示すフローチャートである。
図６のフローチャートでは、図４に示す実施形態１のパラメータ調整装置１が実行するパラメータ調整処理に対して、Ｓ７とＳ９の間に、Ｓ１１〜Ｓ１５の処理が追加されている。
Ｓ１〜Ｓ７の処理は、図４に示す実施形態１と同様である。すなわち、実施形態１と同様、アーム間のパラメータ値の幅ｎは、固定幅に設定されて、各アームが試行される。
Ｓ７で、３つのアームの試行の終了基準をクリアしたと判定された場合（Ｓ７：Ｙ）、Ｓ１１〜Ｓ１５で、パラメータ調整装置１の制御部２５は、アーム間のパラメータ値の変化量である幅ｎを変更すべきか否かを判定し、幅ｎを変更する場合に増加させるか減少させるかを判定する。
【００６８】
具体的には、Ｓ１１で、制御部２５は、終了基準まで繰り返された各アームの試行で累積された報酬Ｒの平均を算出し、現在の幅ｎに対する、算出された報酬平均のアーム間の差分の割合ｒを算出する。
Ｓ１２で、パラメータ調整装置１の制御部２５は、Ｓ１１で算出された割合ｒと、前回算出された割合ｒ＿ｐｒｅｖとを比較する。
【００６９】
前回算出された割合ｒ＿ｐｒｅｖとＳ１１で算出された割合ｒとが等しい場合、Ｓ１５に進む。一方、前回算出された割合ｒ＿ｐｒｅｖより、Ｓ１１で算出された割合ｒが小さい場合、Ｓ１３に進み、制御部２５は、幅ｎを減少させて、Ｓ１５に進む。他方、前回算出された割合ｒ＿ｐｒｅｖより、Ｓ１１で算出された割合ｒが大きい場合、Ｓ１３に進み、制御部２５は、幅ｎを増加させて、Ｓ１５に進む。
【００７０】
Ｓ１５で、パラメータ制御装置１の制御部２５は、Ｓ１１で算出された割合ｒを、前回算出された割合ｒ＿ｐｒｅｖに代入する。以降のＳ９〜Ｓ１０の処理は、図４に示す実施形態１と同様であり、Ｓ９で、パラメータ調整装置１のパラメータ適用部２４は、今回の試行において報酬が最も大きく、最適値と評価されたパラメータの候補値Ｎ´ＱＰＳをコンピュータシステムシステムに適用し、Ｓ１０で、制御部２５は、Ｓ９でコンピュータシステムに適用された、最適値と評価されたパラメータの候補値Ｎ´でＮを更新して、図６に示すパラメータ調整処理を繰り返す。
【００７１】
以上説明したように、本実施形態によれば、パラメータ調整装置１は、試行におけるアーム間の幅ｎに対する、アーム間の報酬の差分の割合を算出し、前回の試行と比較して、割合が小さくなる場合には次回の試行で幅ｎが小さくなるよう、割合が大きくなる場合には次回の試行で幅ｎが大きくなるよう、幅ｎを変更する。
【００７２】
前回の試行より割合が小さくなる場合は、パラメータ値が変わっても算出される報酬があまり変わらないと予測できるため、パラメータ調整装置１は、アーム間のパラメータの候補値の幅を小さくすることで、探索の範囲を局所化する。一方、前回の試行より割合が大きくなる場合は、パラメータ値が変わると算出される報酬が大きく変わると予測できるため、パラメータ調整装置１は、アーム間のパラメータの候補値の幅を大きくすることで、探索の範囲を大域化する。
これにより、コンピュータシステムにおいて取り得るパラメータの候補値の母集団の中から、試行における探索の方向を限定して、探索範囲を最適化することが可能となる。
【００７３】
（実施形態３）
以下、図７を参照して、実施形態３を、上記各実施形態と異なる点についてのみ詳細に説明する。
上記で説明した各実施形態では、調整すべき１つのパラメータの試行および適用を繰り返した。これに対して、本実施形態では、相互に関連する複数のパラメータを、同一のパラメータ調整処理中で調整する。
実施形態３に係るパラメータ調整装置１のハードウエアおよび機能構成は、図１および図２を参照して説明した実施形態１に係るパラメータ調整装置と同様であるため、その説明を省略する。
【００７４】
図７は、実施形態３に係るパラメータ調整装置１が実行するパラメータ調整処理の処理手順の一例を示すフローチャートである。
Ｓ７１で、パラメータ調整装置１は、相互に関連する複数のパラメータＡおよびＢのうち、パラメータＡを調整する。Ｓ７１では、パラメータ調整装置１は、パラメータＡにつき、図４に示すＳ１〜Ｓ９と同様の試行および適用処理を実行してよい。
Ｓ７２で、パラメータ調整装置１は、パラメータＡの調整の終了基準をクリアしたか否かを判定する。パラメータＡの終了基準がクリアされない間（Ｓ７２：Ｎ）、Ｓ７１に戻り、パラメータ調整装置１は、パラメータＡの調整処理を繰り返す。一方、パラメータＡの終了基準がクリアされた場合（Ｓ７２：Ｙ）、Ｓ７３に進む。
【００７５】
Ｓ７３で、パラメータ調整装置１は、パラメータＢを調整する。Ｓ７３では、パラメータ調整装置１は、パラメータＢにつき、図４に示すＳ１〜Ｓ９と同様の試行および適用処理を実行してよい。
Ｓ７４で、パラメータ調整装置１は、パラメータＢの調整の終了基準をクリアしたか否かを判定する。パラメータＢの終了基準がクリアされない間（Ｓ７４：Ｎ）、Ｓ７３に戻り、パラメータ調整装置１は、パラメータＢの調整処理を繰り返す。一方、パラメータＢの終了基準がクリアされた場合（Ｓ７４：Ｙ）、Ｓ７５に進む。
Ｓ７５で、パラメータ調整装置１は、パラメータＡおよびパラメータＢについてそれぞれ、最も高い報酬が算出されたアームのパラメータの候補値Ｎ´でＮを更新して、Ｓ７１に戻り、Ｓ７１〜Ｓ７５の処理を繰り返す。
【００７６】
相互に関連する複数のパラメータを調整していくには、ある程度の時間を要する。このため、本実施形態は、例えば、複数のＤＢパラメータの調整等、通常は高頻度（例えば、日次）でパラメータ値を変更しないパラメータに対して適用することが好適である。
このように、長期間に亘り調整していくパラメータに対して本実施形態を適用する場合、調整を終了すべき時間の制約は少ない。このため、Ｓ７２およびＳ７４における終了基準には、時間や回数に替えて、報酬の大きさや何らかのパフォーマンス指標を設定してよい。
【００７７】
図７に示すように、相互に関連する複数のパラメータを交互に調整していくことで、必ずしも大域的な最適解が得られるわけではないが、少なくとも、双方のパラメータに対する局所的な最適解を得ることができる。
なお、図７に示される複数パラメータのパラメータ調整処理において、複数のアーム間の幅を、実施形態２と同様、動的に変更してもよい。
以上説明したように、本実施形態によれば、相互に関連する複数のパラメータを並行して調整することができる。
【００７８】
（変形例）
以上、本発明の各実施形態を詳細に説明したが、本発明は上記各実施形態に限定されず、様々な変形が可能である。
ある変形例として、複数のアームの試行中に、例えば、ランダムに、設定されたアームとは離れたパラメータ値を探索してもよい。この場合、上述のようにダミーリクエスト数を調整すべきパラメータを例とすると、現在のダミーリクエスト数（例えば、５ＱＰＳ）より大きい方向に離れたパラメータ値（例えば、１０ＱＰＳ）について探索した場合には、コンピュータシステムにより高い負荷を与える可能性がある。このため、好適には、現在のダミーリクエスト数より小さい方向に離れたパラメータ値（例えば、１ＱＰＳ）のみについて探索すればよい。これにより、コンピュータシステムへの過度な負荷を低減しつつ、局所最適解への収束を有効に防止することができる。
【００７９】
他の変形例として、調整すべきパラメータの種類やパラメータを評価するための報酬の種類を任意に変更してもよい。
例えば、一定時間を上回る応答時間Ｔのレスポンスの発生を防止するため、ネットワークにおいてサービスを提供するレプリカサーバの数を調整してもよい。
図３を参照して、レプリカサーバ３３ａ、３３ｂ、・・・３３ｎの数を調整する場合を考える。クライアント３１から、例えば、１００回ずつ、ロードバランサ３２を介して、ｎ個、ｎ−１個、ｎ＋１個のレプリカサーバにリクエスト（例えば、オンライン決済トランザクション）を送信し、それぞれの応答時間ｔ１、ｔ２、ｔ３を計測する。
【００８０】
通常、単位時間当たりのリクエスト数が増加すると、通信量が増加するため、レプリカサーバ数も増やすが、その後、リクエスト数が減少した場合に、レプリカサーバ数がそのまま維持されると、タイムアウトによる通信セッションの切断と再接続の負荷が発生して、レスポンスが低下してしまう。
本変形例によれば、応答時間ｔを最小にするようなレプリカサーバ数ｎを、上記各実施形態と同様、バンディットアルゴリズムを利用して動的かつ自律的に調整することができる。応答時間ｔを評価するには、上述した各評価関数を使用することができる。
【００８１】
報酬の種類の変形例として、応答時間の平均値や上限値を越えた回数ないし割合に替えて、ＣＰＵやメモリの消費量を評価してもよい。例えば、ダミーリクエスト数を調整する場合、ＣＰＵやメモリの消費量が最小となるアームに対して、最大の報酬を算出すればよい。
パラメータの種類の変形例として、ＤＢ（データベース）のパラメータ、サービスに割り当てるべきＣＰＵやメモリのパラメータ、通信パラメータ等を調整してもよい。例えば、ＤＢのパラメータとして、ＤＢのレスポンスを最大化するため、平均応答時間を報酬として算出することにより、ＤＢのキーバッファサイズ等を調整してもよい。また、他のＤＢのパラメータとして、無駄なメモリを使用することなくキャッシュヒット率を最大化するため、キャッシュヒット率を報酬として算出することにより、ＤＢのキャッシュサイズやキャッシュ場所を調整してもよい。
【００８２】
また、例えば、ＣＰＵやメモリのパラメータとして、最もコスト効率よくスループットを向上させるため、ＣＰＵコスト当たりのスループット数を報酬として算出することにより、ＣＰＵ数を調整してもよい。
さらに、例えば、通信パラメータとして、通信負荷を低減して応答時間を短くするため、平均応答時間を報酬として算出することにより、通信セッションないしコネクションを維持する時間（タイムアウト時間）を調整してもよい。
【００８３】
他の変形例として、試行するアームの数を、３以外の任意の数に変更してもよい。この場合、調整すべきパラメータが理論上または実用上取り得るパラメータ値のトータル数に基づいて、アーム数を適切に選択すればよい。
【００８４】
なお、上記において特定の実施形態が説明されているが、当該実施形態は単なる例示であり、本発明の範囲を限定する意図はない。本明細書に記載された装置及び方法は上記した以外の形態において具現化することができる。また、本発明の範囲から離れることなく、上記した実施形態に対して適宜、省略、置換及び変更をなすこともできる。かかる省略、置換及び変更をなした形態は、請求の範囲に記載されたもの及びこれらの均等物の範疇に含まれ、本発明の技術的範囲に属する。
【符号の説明】
【００８５】
１…パラメータ調整装置、１１…ＣＰＵ、１２…ＲＯＭ、１３…ＲＡＭ、１４…ＨＤＤ、１５…入力部、１６…表示部、１７…通信Ｉ／Ｆ、２１…データ入力部、２２…パラメータ設定部、２３…パラメータ探索部、２４…パラメータ適用部、２５…制御部、２６…通信部、３１…クライアント、３２…ロードバランサ、３３ａ〜３３ｎ…レプリカサーバ
【要約】      （修正有）【課題】コンピュータシステムのパフォーマンスに関連するパラメータを自律的活動的に調整する。【解決手段】パラメータ調整装置は、システムにおいて調整可能なパラメータの複数の候補値を設定するパラメータ設定部と、設定されたパラメータの複数の候補値のそれぞれを、所定時間または所定回数、システムに対して試行して、システムにおける報酬をそれぞれ算出するパラメータ試行部と、試行が所定の終了条件を満たした場合に、パラメータの複数の候補値のうち、最大の報酬が算出されたパラメータの候補値を選択して、選択されたパラメータの候補値をシステムに適用するパラメータ適用部と、選択されたパラメータの候補値に基づいて、パラメータ設定部にパラメータの複数の候補値を再設定させ、再設定されたパラメータの複数の候補値で、パラメータ設定部、パラメータ試行部およびパラメータ適用部の各処理が繰り返されるよう制御する制御部と、を備える。【選択図】図２【図１】
0006900537.tif 000004
【図２】
0006900537.tif 000005
【図３】
0006900537.tif 000006
【図４】
0006900537.tif 000007
【図５】
0006900537.tif 000008
【図６】
0006900537.tif 000009
【図７】
0006900537.tif 000010