JP2021157598A - 情報処理装置、情報処理方法およびプログラム - Google Patents

情報処理装置、情報処理方法およびプログラム Download PDF

Info

Publication number
JP2021157598A
JP2021157598A JP2020058304A JP2020058304A JP2021157598A JP 2021157598 A JP2021157598 A JP 2021157598A JP 2020058304 A JP2020058304 A JP 2020058304A JP 2020058304 A JP2020058304 A JP 2020058304A JP 2021157598 A JP2021157598 A JP 2021157598A
Authority
JP
Japan
Prior art keywords
parameter
unit
candidate values
trial
candidate
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2020058304A
Other languages
English (en)
Other versions
JP6900537B1 (ja
Inventor
恭輔 友田
Kyosuke Tomota
恭輔 友田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Rakuten Group Inc
Original Assignee
Rakuten Group Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Rakuten Group Inc filed Critical Rakuten Group Inc
Priority to JP2020058304A priority Critical patent/JP6900537B1/ja
Priority to US17/197,345 priority patent/US11487337B2/en
Application granted granted Critical
Publication of JP6900537B1 publication Critical patent/JP6900537B1/ja
Publication of JP2021157598A publication Critical patent/JP2021157598A/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/24Resetting means
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B13/00Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion
    • G05B13/02Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric
    • G05B13/0265Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric the criterion being a learning criterion
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B13/00Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion
    • G05B13/02Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric
    • G05B13/04Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric involving the use of models or simulators
    • G05B13/042Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric involving the use of models or simulators in which a parameter or coefficient is automatically adjusted to optimise the performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/01Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Medical Informatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Health & Medical Sciences (AREA)
  • Automation & Control Theory (AREA)
  • Algebra (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computational Linguistics (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】コンピュータシステムのパフォーマンスに関連するパラメータを自律的活動的に調整する。【解決手段】パラメータ調整装置は、システムにおいて調整可能なパラメータの複数の候補値を設定するパラメータ設定部と、設定されたパラメータの複数の候補値のそれぞれを、所定時間または所定回数、システムに対して試行して、システムにおける報酬をそれぞれ算出するパラメータ試行部と、試行が所定の終了条件を満たした場合に、パラメータの複数の候補値のうち、最大の報酬が算出されたパラメータの候補値を選択して、選択されたパラメータの候補値をシステムに適用するパラメータ適用部と、選択されたパラメータの候補値に基づいて、パラメータ設定部にパラメータの複数の候補値を再設定させ、再設定されたパラメータの複数の候補値で、パラメータ設定部、パラメータ試行部およびパラメータ適用部の各処理が繰り返されるよう制御する制御部と、を備える。【選択図】図2

Description

本発明は、情報処理装置、情報処理方法およびプログラムに関し、特に、コンピュータシステムのパラメータを動的にチューニングするための技術に関する。
コンピュータシステムにおいては、システムのパフォーマンス改善および安定稼働が常に求められる。
例えば、一定時間以上通信がされない場合に、タイムアウトして終了するプログラムを稼働させるコンピュータシステムにおいては、プログラムのタイムアウト終了に伴うクライアントとの通信セッションの切断および再確立によるパフォーマンス低下を回避する必要がある。このため、クライアントからヘルスチェックの要求を定期的に当該コンピュータシステムに送信することで、通信セッションが維持される。
特許文献1は、ホストの状態を監視するホスト状態監視方式を開示する。
具体的には、特許文献1の監視方式においては、ワークステーションのホスト状態監視プロセスは、ホストに状態監視コマンドを送信してホストの状態の結果として、ホストが終了状態、正常動作中、待機状態等を受信する。そして、ホストが正常動作中であって、かつ一定時間以上通信していない場合、ワークステーションのホスト状態監視プロセスは、ワークステーションプログラムからの送信要求を代行して、ダミーデータをホストに送信する。これにより、タイムアウトによるホストプログラムの終了を防いでいる。
特開平2−212966号公報
しかしながら、このようなダミーデータを過度に大量にコンピュータシステムに送信したのでは、ダミーデータのための通信や処理の負荷が増大し、却って、コンピュータシステムのパフォーマンスを低下させて、ユーザクライアントからの通常の送信要求に対する応答時間に悪影響を及ぼしかねない。このような応答時間の悪化を避けるためには、コンピュータシステムのパフォーマンスが最適化するように、ダミーデータの送信頻度や送信量のパラメータを調整しなければならない。
特に、オンライントランザクション型のコンピュータシステムにおいては、時間帯や曜日によって、コンピュータシステムが受信して処理すべきトランザクション数が時々刻々と動的に変化してゆく。このため、ダミーデータのトランザクションの送信頻度や送信量のパラメータも、実トランザクション数の変化に追従して、例えば、数時間ごとの高頻度で調整していかなければならない。このような高頻度のパラメータ最適化を、手動によるオペレーションで行うことは、過度な時間と労力を要し、極めて困難である。
近年のコンピュータシステムはますます複雑化し、システムのパフォーマンス改善に寄与する調整対象パラメータの数は膨大になっている。例えば、マイクロサービス(Microservice)化されたコンピュータシステムでは、それぞれのサービスコンポーネントは独立しており、システム内部での通信数、スケール可能なサービス数、データベース数等、調整対象パラメータは多岐に亘る。また、コンピュータシステムに搭載されるミドルウエアが提供する調整可能なパラメータ数も膨大になっている。
このように膨大な数を有し、取り得るパラメータ値も広範であり、かつ相互関連する調整対象パラメータを、1つ1つ手動でパフォーマンスを検証しながら動的に調整していくことは、ますます困難化している。
本発明は上記課題を解決するためになされたものであり、その目的は、コンピュータシステムのパフォーマンスに関連するパラメータを動的かつ自律的に調整することが可能な情報処理装置、情報処理方法およびプログラムを提供することにある。
上記課題を解決するために、本発明に係る情報処理装置の一態様は、システムにおいて調整可能なパラメータの複数の候補値を設定するパラメータ設定部と、前記パラメータ設定部により設定された前記パラメータの複数の候補値のそれぞれを、所定時間または所定回数、前記システムに対して試行して、前記システムにおける報酬をそれぞれ算出するパラメータ試行部と、前記パラメータ試行部による試行が所定の終了条件を満たした場合に、前記パラメータの複数の候補値のうち、最大の報酬が算出された前記パラメータの候補値を選択して、選択された前記パラメータの候補値を前記システムに適用するパラメータ適用部と、前記パラメータ適用部により選択された前記パラメータの候補値に基づいて、前記パラメータ設定部に前記パラメータの複数の候補値を再設定させ、再設定された前記パラメータの複数の候補値で、前記パラメータ設定部、前記パラメータ試行部、および前記パラメータ適用部の各処理が繰り返されるよう制御する制御部と、を備える。
前記制御部は、前記パラメータ適用部により選択されたパラメータの候補値、および当該パラメータの候補値の上下のパラメータの候補値を含むよう、前記パラメータ設定部にパラメータの複数の候補値を再設定してよい。
前記制御部は、前記システムが稼働する間、前記パラメータ設定部、前記パラメータ試行部、および前記パラメータ適用部の各処理が繰り返されるよう制御してよい。
前記制御部は、前記パラメータ適用部により選択されたパラメータの候補値が、次回のパラメータ試行部による試行において、パラメータの複数の候補値のうち中央または中央近傍となるよう、前記パラメータ設定部にパラメータの複数の候補値を再設定してよい。
前記パラメータ試行部は、固定時間あるいは固定回数試行を実行した場合、または、所定の報酬が累積された場合に、試行を終了し、前記パラメータ適用部は、試行終了時点で最大の報酬が算出されたパラメータの候補値を選択して、選択されたパラメータの候補値を前記システムに適用してよい。
前記制御部は、再設定すべきパラメータの複数の候補値の間の幅を動的に変更して、前記パラメータ設定部に前記パラメータの複数の候補値を再設定させてよい。
前記制御部は、前記パラメータの複数の候補値の間の前記報酬の差分の前記幅に対する割合が、前回の試行における割合より小さい場合に、前記幅が小さくなるよう、前記割合が前回の試行における割合より大きい場合に、前記幅が大きくなるよう、前記幅を動的に変更してよい。
前記制御部は、相互に関連する複数のパラメータのうち、第1のパラメータを、前記パラメータ設定部、前記パラメータ試行部、および前記パラメータ適用部の各処理を繰り返すことで調整し、その後、前記複数のパラメータのうち、第2のパラメータを、前記パラメータ設定部、前記パラメータ試行部、および前記パラメータ適用部の各処理を繰り返すことで調整し、前記第1のパラメータおよび前記第2のパラメータの調整を繰り返してよい。
前記制御部は、前記パラメータ設定部にすでに設定されたパラメータの複数の候補値とは異なる、ランダムに選択されたパラメータの候補値が設定されるよう制御してよい。
前記制御部は、前記パラメータ設定部にすでに設定されたパラメータの複数の候補値より小さい値をランダムに選択してよい。
前記パラメータ適用部は、前記パラメータ試行部が、前記パラメータの複数の候補値のそれぞれを試行する所定時間または所定回数より多い時間または回数、選択されたパラメータの候補値の前記システムに対する適用を繰り返してよい。
本発明に係る情報処理方法の一態様は、情報処理装置が実行する情報処理方法であって、システムにおいて調整可能なパラメータの複数の候補値を設定するステップと、設定された前記パラメータの複数の候補値のそれぞれを、所定時間または所定回数、前記システムに対して試行して、前記システムにおける報酬をそれぞれ算出するステップと、試行が所定の終了条件を満たした場合に、前記パラメータの複数の候補値のうち、最大の報酬が算出された前記パラメータの候補値を選択して、選択された前記パラメータの候補値を前記システムに適用するステップと、選択された前記パラメータの候補値に基づいて、前記パラメータの複数の候補値を再設定し、再設定された前記パラメータの複数の候補値で、前記パラメータの設定、前記パラメータの試行、および前記パラメータの適用の各処理を繰り返すステップと、を含む。
本発明に係る情報処理プログラムの一態様は、情報処理をコンピュータに実行させるための情報処理プログラムであって、該プログラムは、前記コンピュータに、システムにおいて調整可能なパラメータの複数の候補値を設定するパラメータ設定処理と、前記パラメータ設定処理により設定された前記パラメータの複数の候補値のそれぞれを、所定時間または所定回数、前記システムに対して試行して、前記システムにおける報酬をそれぞれ算出するパラメータ試行処理と、前記パラメータ試行処理による試行が所定の終了条件を満たした場合に、前記パラメータの複数の候補値のうち、最大の報酬が算出された前記パラメータの候補値を選択して、選択された前記パラメータの候補値を前記システムに適用するパラメータ適用処理と、前記パラメータ適用処理により選択された前記パラメータの候補値に基づいて、前記パラメータ設定部に前記パラメータの複数の候補値を再設定させ、再設定された前記パラメータの複数の候補値で、前記パラメータ設定処理、前記パラメータ試行処理、および前記パラメータ適用処理の各処理が繰り返されるよう制御する制御処理と、を含む処理を実行させるためのものである。
本発明によれば、コンピュータシステムのパフォーマンスに関連するパラメータを動的かつ自律的に調整することができる。
上記した本発明の目的、態様及び効果並びに上記されなかった本発明の目的、態様及び効果は、当業者であれば添付図面及び請求の範囲の記載を参照することにより下記の発明を実施するための形態から理解できるであろう。
図1は、本発明の各実施形態に係るパラメータ調整装置のハードウエア構成の一例を示すブロック図である。 図2は、各本実施形態に係るパラメータ調整装置の機能構成の一例を示すブロック図である。 図3は、各実施形態に係るパラメータ調整装置が調整対象とするダミーリクエスト数(テストデータ送信数)が投入されるコンピュータシステムの一例を示す概略図である。 図4は、実施形態1に係るパラメータ調整装置が実行するパラメータ調整処理の処理手順の一例を示すフローチャートである。 図5は、図4に示すパラメータ調整処理を実行することで、時系列上、パラメータの最適値が推移することを説明する概略図である。 図6は、実施形態2に係るパラメータ調整装置が実行するパラメータ調整処理の処理手順の一例を示すフローチャートである。 図7は、実施形態3に係るパラメータ調整装置が実行するパラメータ調整処理の処理手順の一例を示すフローチャートである。
以下、添付図面を参照して、本発明を実施するための実施形態について詳細に説明する。以下に開示される構成要素のうち、同一機能を有するものには同一の符号を付し、その説明を省略する。なお、以下に開示される実施形態は、本発明の実現手段としての一例であり、本発明が適用される装置の構成や各種条件によって適宜修正または変更されるべきものであり、本発明は以下の実施形態に限定されるものではない。また、本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
(実施形態1)
本実施形態に係るパラメータ調整装置は、コンピュータシステムのパフォーマンスに関連するパラメータを、自律的かつ動的に調整する。
以下では、パラメータ調整装置が、通信セッションを維持するため、オンライントランザクション型コンピュータシステムに投入されるダミーリクエスト数をパラメータとし、システムの応答時間(レスポンスタイム)を報酬として評価することにより、単位時間当たりのダミーリクエスト数を調整する一例を説明する。
しかしながら、本実施形態はこれに限定されず、コンピュータシステムのパフォーマンスに関連するあらゆるパラメータを調整するため、広範に適用可能である。
<パラメータ調整装置のハードウエア構成>
図1は、本実施形態に係るパラメータ調整装置1のハードウエア構成の一例を示す図である。
本実施形態に係るパラメータ調整装置1は、単一または複数の、あらゆるコンピュータ、モバイルデバイス、または他のいかなる処理プラットフォーム上に実装することができる。
図1に示すように、パラメータ調整装置1は、CPU11と、ROM12と、RAM13と、HDD14と、入力部15と、表示部16と、通信I/F17と、システムバス18とを備える。パラメータ調整装置1はまた、外部メモリを備えてよい。
CPU(Central Processing Unit)11は、パラメータ調整装置1における動作を統括的に制御するものであり、データ伝送路であるシステムバス18を介して、各構成部(12〜17)を制御する。
ROM(Read Only Memory)12は、CPU11が処理を実行するために必要な制御プログラム等を記憶する不揮発性メモリである。なお、当該プログラムは、HDD(Hard Disk Drive)14、SSD(Solid State Drive)等の不揮発性メモリや着脱可能な記憶媒体(不図示)等の外部メモリに記憶されていてもよい。
RAM(Random Access Memory)13は、揮発性メモリであり、CPU11の主メモリ、ワークエリア等として機能する。すなわち、CPU11は、処理の実行に際してROM12から必要なプログラム等をRAM13にロードし、当該プログラム等を実行することで各種の機能動作を実現する。
HDD14は、例えば、CPU11がプログラムを用いた処理を行う際に必要な各種データや各種情報等を記憶している。また、HDD14には、例えば、CPU11がプログラム等を用いた処理を行うことにより得られた各種データや各種情報等が記憶される。
入力部15は、キーボードやマウス等のポインティングデバイスにより構成される。
表示部16は、液晶ディスプレイ(LCD)等のモニターにより構成される。表示部16は、パラメータ調整処理で使用される各種パラメータや、他の装置との通信で使用される通信パラメータ等をパラメータ調整装置1へ指示入力するためのGUI(Graphical User Interface)を提供してよい。
通信I/F17は、パラメータ調整装置1と外部装置との通信を制御するインタフェースである。
図1に示すパラメータ調整装置1の各要素のうち少なくとも一部の機能は、CPU11がプログラムを実行することで実現することができる。ただし、後述する図2に示すパラメータ調整装置1の各要素のうち少なくとも一部の機能が専用のハードウエアとして動作するようにしてもよい。この場合、専用のハードウエアは、CPU11の制御に基づいて動作する。
<パラメータ調整装置の機能構成>
図2は、本実施形態に係るパラメータ調整装置1の機能構成の一例を示すブロック図である。
図2に示すパラメータ調整装置1は、データ入力部21、パラメータ設定部22、パラメータ探索部23、パラメータ適用部24、制御部25、および通信部26を備える。
データ入力部21は、パラメータ調整装置1において調整すべきパラメータ、およびパラメータの調整を実行するために必要な各種パラメータの入力を受け付ける。パラメータの調整を実行するために必要な各種パラメータは、各パラメータの値の上限および下限、増分、試行における選択肢の数、各選択肢が選択される選択確率の初期値、試行の終了条件(試行回数や試行時間等)、当該パラメータを評価するための評価関数、評価の閾値等を含む。
データ入力部21は、入力された各種データをHDD14等の不揮発性記憶装置に予め記憶し、パラメータ探索部23、パラメータ適用部24が記憶装置に記憶された各種入力データを読み出して後述するパラメータ調整処理に供してもよい。
パラメータ設定部22は、データ入力部21に入力された、調整すべきパラメータの値の上限および下限、増分(幅)から、パラメータの候補値の母集団を形成し、形成されたパラメータの候補値の母集団のうち、所定数のパラメータの候補値を選択肢として設定する。パラメータ設定部22は、パラメータの候補値の母集団から、好適には、現在、パラメータが適用されるコンピュータシステムにおいて使用されているパラメータ値を含んだ複数の選択肢を設定してよい。
パラメータ探索部23は、パラメータ設定部22により設定された所定数のパラメータの候補値を選択肢として、各選択肢を試行することで、所定数のパラメータの候補値のうちの最適解を探索する。
具体的には、パラメータ探索部23は、複数の選択肢のそれぞれを、所定の選択確率で選択し、選択された選択肢のパラメータの候補値を、所定回数または所定時間、繰り返して試行する。そして、パラメータ探索部23は、選択された選択肢の試行により得られるシステムのパフォーマンス指標(例えば、応答時間)を報酬として、例えば、所定の評価関数を用いて算出し、所定の終了条件に到達するまで、各選択肢の報酬を累積していき、終了条件に到達した時点で最高の報酬が累積された選択肢を最適解として選択する。
パラメータ適用部24は、パラメータ探索部23により探索された最適解であるパラメータの候補値を、所定回数または所定時間、コンピュータシステムに適用する。パラメータ適用部24が最適解であるパラメータの候補値をコンピュータシステムに適用する所定回数または所定時間は、パラメータ探索部23が選択肢を試行する所定回数または所定時間と異なってよく、好適には、試行の所定回数または所定時間より多くてよい。試行において探索された最適解を限られた調整期間内でより多く適用できるため、より早期のコンピュータシステムのパフォーマンス改善が実現し得る。
制御部25は、データ入力部21、パラメータ設定部22、パラメータ探索部23、パラメータ適用部24、および通信部26の動作を統括的に制御して、パラメータ調整装置1にパラメータ調整処理を実行させる。
本実施形態において、制御部25は、パラメータ適用部24が、所定回数または所定時間、最適解であるパラメータの候補値をコンピュータシステムに対して適用した後、パラメータ設定部22に、所定数のパラメータの候補値を再設定させる。具体的には、制御部25は、パラメータ適用部24がコンピュータシステムに適用した最適解であるパラメータの候補値が、上限値または下限値の選択肢とならないよう、換言すると、最適解であるパラメータの候補値の上下の候補値が選択肢に含まれるよう、所定数のパラメータの候補値を選択肢に再設定する。制御部25は、パラメータ設定部22に再設定させた選択肢で、パラメータ探索部23およびパラメータ適用部24にパラメータ試行(探索)および適用の処理を実行させる。
制御部25はまた、表示部16を制御して、パラメータ調整装置1が実行するパラメータ調整処理の実行結果を、表示出力させてよい。
通信部26は、ネットワークとのインタフェースを提供し、ネットワークを介して、外部装置との通信を実行する。通信部26を介して、外部装置との間で、例えば調整すべきパラメータやパラメータの試行や適用に使用される各種パラメータ等が受信され、チューニング対象であるコンピュータシステムに、調整すべきパラメータの選択肢や最適解等が送信される。本実施形態では、通信部26は、イーサネット(登録商標)等の通信規格に準拠する有線LAN(Local Area Network)や専用線を介した通信を実行してよい。ただし、本実施形態で利用可能なネットワークはこれに限定されず、無線ネットワークで構成されてもよい。この無線ネットワークは、Bluetooth(登録商標)、ZigBee(登録商標)、UWB(Ultra Wide Band)等の無線PAN(Personal Area Network)を含む。また、Wi−Fi(Wireless Fidelity)(登録商標)等の無線LAN(Local Area Network)や、WiMAX(登録商標)等の無線MAN(Metropolitan Area Network)を含む。さらに、LTE/3G、4G、5G等の無線WAN(Wide Area Network)を含む。なお、ネットワークは、各機器を相互に通信可能に接続し、通信が可能であればよく、通信の規格、規模、構成は上記に限定されない。
なお、パラメータ設定部22は、請求項におけるパラメータ設定部に、パラメータ探索部23は、請求項におけるパラメータ試行部に、パラメータ適用部24は、請求項におけるパラメータ適用部に、制御部25は、請求項における制御部に、それぞれ相当する。
以下、本実施形態に係るパラメータ調整装置1が、コンピュータシステムに投入されるダミーリクエストの数(頻度)を調整すべきパラメータとして、コンピュータシステムの応答時間を最小化するようなダミーリクエスト数を探索していく例を説明する。
図3は、本実施形態に係るパラメータ調整装置1が調整対象とするダミーリクエスト数(テストデータ送信数)が投入されるコンピュータシステムの一例を示す概略図である。
図3を参照して、コンピュータシステムは、クライアント31、ロードバランサ32、および複数のレプリカサーバ33a、33b、・・・33nを備える。なお、レプリカサーバ33a、33b、・・・33nの数は、固定であってもよく、可変であってもよい。また、レプリカサーバ33a、33b、・・・33nに替えて、単一のサーバを設けてもよい。
クライアント31から、例えば、100回ずつ、ロードバランサ32を介して、複数のダミーリクエスト数の選択肢(x、x−1、x+1QPS(Query per Second))にそれぞれ対応するレプリカサーバ33a、33b、33cにリクエストを送り、それぞれのレプリカサーバ33a、33b、33cからの応答時間t1、t2、t3を計測する。図3に示すレプリカサーバ33a、33b、・・・33nには、ロードバランサ32を介して、実トランザクションのリクエストも送信されているから、応答時間が最小になるようなQPSxは、時々刻々と変化していく。
なお、本実施形態において、パラメータを適用すべきコンピュータシステムは、図3に示す構成に限定されず、他のネットワーク構成を備えてもよく、単一のコンピュータで実現されてもよい。
本実施形態では、パラメータ調整装置1のパラメータ探索部23およびパラメータ適用部24は、バンディットアルゴリズム(Bandit Algorithm)を利用して、未知の最適解を探索する。
バンディットアルゴリズムは、強化学習とも称される、教師なしの機械学習法である。バンディットアルゴリズムは、すべての選択肢(以下、「アーム」ともいう。)についてそれぞれ報酬を計算して最適解を探索する探索(Explore)を実行しながら、探索された最適解を多く活用して報酬を高める活用(Exploit)を併用していくことで、一定期間(回数または時間)の中で、報酬を最大化するアルゴリズムである。
本実施形態では、このバンディッドアルゴリズムを利用して、多数のパラメータの候補値の中から、実トランザクション数の変化に追従するよう、自律的かつ動的に、パラメータを調整していく。
具体的には、本実施形態に係るパラメータ調整装置1は、多数のパラメータの候補値の中から複数の選択肢(アーム)、例えば、{x−α,x,x+α}、を設定し、それぞれのアームを一定時間Tまたは一定回数Nだけ試行して、その間にターゲットとなるパフォーマンス指標(応答時間等)を計測する。これを1回の試行とする。
パラメータ調整装置1は、このような試行を複数回実行していくが、その際、バンディッドアルゴリズム(多腕バンディッドアルゴリズム)を使用することによって、パフォーマンスが低下するようなパラメータの選択を少なくしながら、可及的に早い段階で最適なパラメータを見出す。
<パラメータ調整処理の処理手順>
図4は、本実施形態に係るパラメータ調整装置1が実行する、パラメータ調整処理の処理手順の一例を示すフローチャートである。
なお、図4の各ステップは、パラメータ調整装置1のHDD14等の記憶装置に記憶されたプログラムをCPU11が読み出し、実行することで実現される。また、図4に示すフローチャートの少なくとも一部をハードウエアにより実現してもよい。ハードウエアにより実現する場合、例えば、所定のコンパイラを用いることで、各ステップを実現するためのプログラムからFPGA(Field Programmable Gate Array)上に自動的に専用回路を生成すればよい。また、FPGAと同様にしてGate Array回路を形成し、ハードウエアとして実現するようにしてもよい。また、ASIC(Application Specific Integrated Circuit)により実現するようにしてもよい。
S1で、パラメータ調整装置1のパラメータ設定部22は、データ入力部21に入力された、調整すべきパラメータの値の上限および下限、増分(幅)から、調整すべきパラメータが取り得る候補値の母集団を形成する。パラメータ設定部22は、形成されたパラメータの候補値の母集団のうち、所定数のパラメータの候補値を、バンディッドアルゴリズムにより試行すべき選択肢であるアームとして設定する。図4のフローチャートでは、S3〜S5に示されるように、3つのアームが設定されている。ただし、アームの数は3つに限定されず、2つでもよいし、4つ以上でもよい。
S2で、パラメータ調整装置1のパラメータ探索部23は、S1でパラメータ設定部22により設定された複数のアームのうち、今回試行すべき1つのアームを選択する。図4では、S3〜S5の3つのアームのうち、いずれかのアームを選択して当該アームで規定されたパラメータの候補値を試行する。
S2で、S3のアームが選択された場合、S3で、パラメータ調整装置1のパラメータ探索部23は、N−nQPS(Query Per Second)で一定時間、コンピュータシステムにダミーリクエスト(テストデータ)を送信する。
S2で、S4のアームが選択された場合、S4で、パラメータ調整装置1のパラメータ探索部23は、N QPSで一定時間、コンピュータシステムにダミーリクエストを送信する。
S2で、S5のアームが選択された場合、S5で、パラメータ調整装置1のパラメータ探索部23は、N+nQPSで一定時間、コンピュータシステムにダミーリクエストを送信する。ここで、Nは、ダミーリクエスト送信頻度の固定値であり、nは幅である。
なお、パラメータ探索部23が、S3〜S5の3つのアームから1つのアームを選択する確率の初期値は、1/3であってよい。すなわち、パラメータ探索部23は、S3〜S5のアームを等確率で選択してよい。その後、パラメータ探索部23は、後述するS8で更新された報酬に基づいて、S3〜S5のアームの選択確率を変更してもよい。あるいは、パラメータ探索部23は、後続するパラメータ適用段階(S9)におけるパラメータの最適値の収束に応じて、各アームの選択確率を変更してもよい。
S3〜S5の各アームにおいて、N−nQPS、N QPS、N+nQPSの各頻度でコンピュータシステムにダミーリクエストを送信する一定時間は、例えば、数十秒から数分程度であってよい。あるいは、S3〜S5の各アームでは、各頻度で一定回数、例えば数十回から数百回程度、コンピュータシステムにダミーリクエストを送信してよい。
S6で、パラメータ調整装置1のパラメータ探索部23は、S3〜S5の各アームの試行の結果得られる報酬をパフォーマンス指標として計算する。具体的には、パラメータ探索部23は、S3〜S5の各アームで規定されたN−nQPS、N QPS、N+nQPSの各頻度でコンピュータシステムにダミーリクエストを送信した際の、送信された各ダミーリクエストに対する応答時間(レスポンスタイム)を計測する。
パラメータ探索部23は、一定時間または一定回数送信されたダミーリクエストの応答時間の平均値をパフォーマンス指標として算出してよい。あるいは、パラメータ探索部23は、応答時間が所定の閾値(例えば、数百ms)以下であるダミーリクエストのリクエスト総数に対する割合を算出してよい。
S6の報酬計算において、パラメータ指標として、N−nQPS、N QPS、N+nQPSの各頻度でコンピュータシステムにダミーリクエストを一定時間または一定回数送信した場合の応答時間を評価する際に、パラメータ探索部23は、以下の式1に示す評価関数E(i)を用いて、i回目の試行を評価してよい。
Figure 2021157598
(式1)
ここで、Tは、応答時間の許容上限値、例えば、500msecであり、tは応答時間計測値であり、上記式1に示す評価関数は、応答時間tが応答時間の許容上限値Tを越えた回数をカウントしている。
あるいは、パラメータ探索部23は、以下の式2に示す評価関数E(i)を用いて、i回目の試行を評価してよい。上記式2に示す評価関数は、応答時間の許容上限値Tと応答時間tとの差分最大値を累積している。
Figure 2021157598
(式2)
本実施形態に係るパラメータ探索部23が使用可能な報酬計算のための評価関数は、上記に限定されない。たとえば、パラメータ探索部23は、応答時間の平均値や加重平均値、移動平均値等を算出して評価してもよい。
S7で、パラメータ調整装置1の制御部25は、アーム試行の終了条件をクリアしたか否かを判定する。アーム試行の終了条件は、任意であってよいが、例えば、アーム試行が所定回数以上(例えば、1000回)繰り返されたこと、アーム試行が所定時間(例えば、数分から数十分)繰り返されたこと、所定の基準以上の報酬が得られたこと、等を含む。
アーム試行の終了条件をクリアした場合(S7:Y)、S9に進み、一方、アーム試行の終了条件をクリアしていない場合(S7:N)、S8に進む。
S8で、パラメータ調整装置1の制御部25は、直前のS2で選択されたS3〜S5の各アームに対応する、各パラメータ指標(例えば、応答時間)の報酬を更新する。その後、制御部25は、S2に戻り、アームの選択および試行、ならびに報酬の計算等を、終了条件をクリアするまで、パラメータ探索部23に繰り返し実行させる。上述したように、パラメータ探索部23は、直前のS8で更新された報酬に基づいて、S3〜S5のアームの選択確率を変更してもよい。すなわち、パラメータ探索部23は、S2において、それ以前に更新されたより高い報酬に対応するアームをより高い確率で選択してもよい。
S9で、パラメータ調整装置1のパラメータ適用部24は、S7で終了条件がクリアされた時点において、S3〜S5のアームのうち、最大の報酬が算出されたパラメータの候補値を最良のパラメータの候補値として選択し、選択された最良のパラメータの候補値を、一定時間、コンピュータシステムに適用する。ここでは、選択された最良のアームであるパラメータの候補値を、N´QPSとする。N´QPSは、S3〜S5のアームのうち、最大の報酬、すなわち最小の応答時間が算出されたパラメータの値である。
なお、S9において、パラメータ適用部24がコンピュータシステムに最良のパラメータの候補値を適用する一定時間は、例えば、数分から数時間であってよく、S3〜S5でアームを試行する一定時間より長くてよい。アームを試行する時間より長く、最良のパラメータ値をコンピュータシステムに適用することで、より最大の報酬をより短時間で実現できる蓋然性が高まる。
S10で、パラメータ調整装置1の制御部25は、S3〜S5のアームにおけるN QPSを、N´QPSに更新して、パラメータ設定部22に、バンディッドアルゴリズムで試行すべきアームを変更させる。具体的には、制御部25は、S3〜S5のアームにおけるN QPSを、S6で最大の報酬が算出された最良のパラメータ候補値であるN´QPSに更新し、パラメータ設定部22に、N´−nQPS、N´QPS、およびN´+nQPSをアームとして設定させる。すなわち、制御部25は、次回に試行されるアーム群として、最大の報酬が算出されたパラメータ候補値N´QPSが、アーム群の中央または中央近傍となるよう、N´QPSの上下の各パラメータ候補値をそれぞれ設定する。これにより、アーム試行による探索範囲を最適化することができる。
例えば、3つのアーム群として、{3、5、7}QPSのパラメータ候補値が設定されている場合において、最大の報酬が算出されたパラメータ候補値が7QPSであると判定されたとする。この場合、次回に試行されるアーム群として、7QPSがアーム群の中央となるよう、{5、7、9}QPSのパラメータ候補値が設定されてもよい。また、4つのアーム群として、{3、5、7、9}QPSのパラメータ候補値が設定されている場合において、最大の報酬が算出されたパラメータ候補値が7QPSであると判定されたとする。この場合、次回に試行されるアーム群として、直前の{3、5、7、9}QPSのパラメータ候補値がそのまま使用されてもよいし、{5、7、9、11}QPSのパラメータ候補値が新たに設定されてもよい。
なお、次回に試行されるアーム群として、最大の報酬が算出されたパラメータ候補値がアーム群の中央または中央近傍となるよう、上下の各パラメータ候補値がそれぞれ設定される場合を例に挙げて説明したが、本実施形態はこれに限定されない。例えば、最大の報酬が算出されたパラメータ候補値が、少なくともアーム群に含まれていればよい。
例えば、3つのアーム群として、{3、5、7}QPSのパラメータ候補値が設定されている場合において、最大の報酬が算出されたパラメータ候補値が7QPSであると判定されたとする。この場合、次回に試行されるアーム群として、最大の報酬が算出された7QPSのパラメータ候補値が既に含まれている、直前の{3、5、7}QPSのパラメータ候補値が、そのまま使用されてもよい。これにより、探索中のダミーリクエスト数の増加が、コンピュータシステムにより高い負荷を与えることを回避できる。
また、2つのアーム群として、{5、7}QPSのパラメータ候補値が設定されている場合において、最大の報酬が算出されたパラメータ候補値が7QPSであると判定されたとする。この場合、次回に試行されるアーム群として、直前の{5、7}QPSのパラメータ候補値がそのまま使用されてもよいし、{7、9}QPSのパラメータ候補値が新たに設定されてもよい。
また、一定期間ごとに、S3〜S5において、アーム選択確率や報酬計算方式を変更してもよい。
また、制御部25は、調整すべきパラメータが適用されるコンピュータシステムが稼働する間、S1〜S10の処理を、停止が指示された場合を除き、常に繰り返して実行してよい。これにより、時々刻々と変化するコンピュータシステムの状況変化に追従して、パラメータの最適値を変化させることができる。
図5は、図4に示すパラメータ調整処理を実行することで、時系列上、パラメータの最適値が推移することを説明する概略図である。図5では、図3に示すクライアント31とレプリカサーバ33a〜33nの間の通信、および各レプリカサーバ33a〜33n内のマイクロサービス間の通信セッションが途絶せず維持されるための、実トランザクションのリクエストに加えて投入されるダミーリクエストの数を、調整すべきパラメータとして設定している。
図5を参照して、左から、パラメータ調整装置1のパラメータ探索部23によるある1回の探索(図4のS1〜S8)においては、3つのアームとして、まず{3、5、7}QPSが設定され、それぞれのアームが所定回数または所定時間試行され、報酬計算がされることで、当該探索における最適解が判定される。
この1回の探索では、単位時間当たり、コンピュータシステムに実際に投入される実トランザクションの数(実TXN数)が多い状態で、7QPSが最適解と判定されたものとする。
次に、パラメータ適用部24は、当該探索で最適解と判定された7QPSの頻度で、コンピュータシステムにダミーリクエストを投入する。これにより、通信セッションが最も効率的に維持される。制御部25は、パラメータ設定部22に、当初のNの値(N=5)を、最適解と判定された7QPSに更新して、N=7とさせる。図5において、幅nは、2QPSである。
次の1回の探索においては、3つのアームとして、{5,7,9}QPSが設定され、それぞれのアームが所定回数または所定時間試行され、報酬計算がされることで、当該探索における最適解が判定される。
この1回の探索では、先行する試行の際と同様、単位時間当たり、コンピュータシステムに実際に投入される実トランザクションの数が多い状態で、再度7QPSが最適解として判定されたものとする。
次に、パラメータ適用部24は、当該探索で最適解と判定された7QPSの頻度で、コンピュータシステムにダミーリクエストを投入する。これにより、通信セッションが最も効率的に維持される。この場合、N=N´=7であるから、現在のNの値は更新されず、また、アームのパラメータの候補値も変更されない。
ここで、図5に示すように時間の経過に伴い、コンピュータシステムに実際に投入される実トランザクションの数(実TXN数)が減少して、単位時間当たり、コンピュータシステムに投入される実トランザクションの数が少ない状態に遷移したものとする。
その後の1回の探索においては、3つのアームとして、{5,7,9}QPSが設定され、それぞれのアームが所定回数または所定時間試行され、報酬計算がされることで、当該探索における最適解が判定される。
この1回の探索では、単位時間当たり、コンピュータシステムに実際に投入される実トランザクションの数が少ない状態で、9QPSが最適解と判定されたものとする。コンピュータシステムに実際に投入される実トランザクションの数が減少したことにより、実トランザクションの投入を補完して、コンピュータシステムの通信セッションの維持に寄与すべきダミーリクエストの数の最適値は、逆に増加することになる。
以降、パラメータ適用部24は、当該探索で最適解と判定された9QPSの頻度で、コンピュータシステムにダミーリクエストを投入する。これにより、通信セッションが最も効率的に維持される。制御部25は、パラメータ設定部22に、現在のNの値(N=7)を、最適解と判定された9QPSに更新して、N=9とさせる。
このように、本実施形態に係るパラメータ調整装置は、コンピュータシステムの時々刻々と変化する、通信状態や負荷状態を含む動作状態に追従して、少なくともコンピュータシステムの動作中は、調整すべきパラメータの調整動作を継続していく。
以上説明したように、本実施形態によれば、パラメータ調整装置は、システムにおいて調整可能な複数のパラメータのうち、複数のパラメータの候補(アーム)を設定し、設定された複数のパラメータの候補のそれぞれを、所定時間または所定回数、システムに対して試行して、システムにおける報酬(パフォーマンス指標)をそれぞれ算出する。パラメータ調整装置はさらに、所定の終了条件を満たしたと判定された場合に、複数のパラメータの候補のうち、最も高い報酬が算出されたパラメータの候補を選択して、選択されたパラメータの候補を前記システムに適用し、選択されたパラメータの候補および当該パラメータの候補の上下の値を持つ各パラメータ候補を含むよう、複数のパラメータの候補を再設定し、再設定された複数のパラメータ候補で、試行および適用の処理を繰り返す。
これにより、コンピュータシステムのパフォーマンスに関連するパラメータを、自律的かつ動的に調整することができる。
したがって、システムのパフォーマンスが悪化するようなパラメータの候補値の選択を少なくすることができるので、より迅速に最適解であるパラメータを探索してシステムに適用することで、時々刻々変化するシステムの動作に追従してシステムのチューニングを最適化できる。
(実施形態2)
以下、図6を参照して、実施形態2を、実施形態1と異なる点についてのみ詳細に説明する。
上記で説明した実施形態1では、パラメータ調整装置1が試行する複数の選択肢(アーム)間のパラメータの候補値の幅は、固定幅とした。これに対して、本実施形態では、複数の選択肢間のパラメータの候補値の幅を、動的に変更する。
実施形態2に係るパラメータ調整装置1のハードウエアおよび機能構成は、図1および図2を参照して説明した実施形態1に係るパラメータ調整装置と同様であるため、その説明を省略する。
図6は、実施形態2に係るパラメータ調整装置1が実行するパラメータ調整処理の処理手順の一例を示すフローチャートである。
図6のフローチャートでは、図4に示す実施形態1のパラメータ調整装置1が実行するパラメータ調整処理に対して、S7とS9の間に、S11〜S15の処理が追加されている。
S1〜S7の処理は、図4に示す実施形態1と同様である。すなわち、実施形態1と同様、アーム間のパラメータ値の幅nは、固定幅に設定されて、各アームが試行される。
S7で、3つのアームの試行の終了基準をクリアしたと判定された場合(S7:Y)、S11〜S15で、パラメータ調整装置1の制御部25は、アーム間のパラメータ値の変化量である幅nを変更すべきか否かを判定し、幅nを変更する場合に増加させるか減少させるかを判定する。
具体的には、S11で、制御部25は、終了基準まで繰り返された各アームの試行で累積された報酬Rの平均を算出し、現在の幅nに対する、算出された報酬平均のアーム間の差分の割合rを算出する。
S12で、パラメータ調整装置1の制御部25は、S11で算出された割合rと、前回算出された割合r_prevとを比較する。
前回算出された割合r_prevとS11で算出された割合rとが等しい場合、S15に進む。一方、前回算出された割合r_prevより、S11で算出された割合rが小さい場合、S13に進み、制御部25は、幅nを減少させて、S15に進む。他方、前回算出された割合r_prevより、S11で算出された割合rが大きい場合、S13に進み、制御部25は、幅nを増加させて、S15に進む。
S15で、パラメータ制御装置1の制御部25は、S11で算出された割合rを、前回算出された割合r_prevに代入する。以降のS9〜S10の処理は、図4に示す実施形態1と同様であり、S9で、パラメータ調整装置1のパラメータ適用部24は、今回の試行において報酬が最も大きく、最適値と評価されたパラメータの候補値N´QPSをコンピュータシステムシステムに適用し、S10で、制御部25は、S9でコンピュータシステムに適用された、最適値と評価されたパラメータの候補値N´でNを更新して、図6に示すパラメータ調整処理を繰り返す。
以上説明したように、本実施形態によれば、パラメータ調整装置1は、試行におけるアーム間の幅nに対する、アーム間の報酬の差分の割合を算出し、前回の試行と比較して、割合が小さくなる場合には次回の試行で幅nが小さくなるよう、割合が大きくなる場合には次回の試行で幅nが大きくなるよう、幅nを変更する。
前回の試行より割合が小さくなる場合は、パラメータ値が変わっても算出される報酬があまり変わらないと予測できるため、パラメータ調整装置1は、アーム間のパラメータの候補値の幅を小さくすることで、探索の範囲を局所化する。一方、前回の試行より割合が大きくなる場合は、パラメータ値が変わると算出される報酬が大きく変わると予測できるため、パラメータ調整装置1は、アーム間のパラメータの候補値の幅を大きくすることで、探索の範囲を大域化する。
これにより、コンピュータシステムにおいて取り得るパラメータの候補値の母集団の中から、試行における探索の方向を限定して、探索範囲を最適化することが可能となる。
(実施形態3)
以下、図7を参照して、実施形態3を、上記各実施形態と異なる点についてのみ詳細に説明する。
上記で説明した各実施形態では、調整すべき1つのパラメータの試行および適用を繰り返した。これに対して、本実施形態では、相互に関連する複数のパラメータを、同一のパラメータ調整処理中で調整する。
実施形態3に係るパラメータ調整装置1のハードウエアおよび機能構成は、図1および図2を参照して説明した実施形態1に係るパラメータ調整装置と同様であるため、その説明を省略する。
図7は、実施形態3に係るパラメータ調整装置1が実行するパラメータ調整処理の処理手順の一例を示すフローチャートである。
S71で、パラメータ調整装置1は、相互に関連する複数のパラメータAおよびBのうち、パラメータAを調整する。S71では、パラメータ調整装置1は、パラメータAにつき、図4に示すS1〜S9と同様の試行および適用処理を実行してよい。
S72で、パラメータ調整装置1は、パラメータAの調整の終了基準をクリアしたか否かを判定する。パラメータAの終了基準がクリアされない間(S72:N)、S71に戻り、パラメータ調整装置1は、パラメータAの調整処理を繰り返す。一方、パラメータAの終了基準がクリアされた場合(S72:Y)、S73に進む。
S73で、パラメータ調整装置1は、パラメータBを調整する。S73では、パラメータ調整装置1は、パラメータBにつき、図4に示すS1〜S9と同様の試行および適用処理を実行してよい。
S74で、パラメータ調整装置1は、パラメータBの調整の終了基準をクリアしたか否かを判定する。パラメータBの終了基準がクリアされない間(S74:N)、S73に戻り、パラメータ調整装置1は、パラメータBの調整処理を繰り返す。一方、パラメータBの終了基準がクリアされた場合(S74:Y)、S75に進む。
S75で、パラメータ調整装置1は、パラメータAおよびパラメータBについてそれぞれ、最も高い報酬が算出されたアームのパラメータの候補値N´でNを更新して、S71に戻り、S71〜S75の処理を繰り返す。
相互に関連する複数のパラメータを調整していくには、ある程度の時間を要する。このため、本実施形態は、例えば、複数のDBパラメータの調整等、通常は高頻度(例えば、日次)でパラメータ値を変更しないパラメータに対して適用することが好適である。
このように、長期間に亘り調整していくパラメータに対して本実施形態を適用する場合、調整を終了すべき時間の制約は少ない。このため、S72およびS74における終了基準には、時間や回数に替えて、報酬の大きさや何らかのパフォーマンス指標を設定してよい。
図7に示すように、相互に関連する複数のパラメータを交互に調整していくことで、必ずしも大域的な最適解が得られるわけではないが、少なくとも、双方のパラメータに対する局所的な最適解を得ることができる。
なお、図7に示される複数パラメータのパラメータ調整処理において、複数のアーム間の幅を、実施形態2と同様、動的に変更してもよい。
以上説明したように、本実施形態によれば、相互に関連する複数のパラメータを並行して調整することができる。
(変形例)
以上、本発明の各実施形態を詳細に説明したが、本発明は上記各実施形態に限定されず、様々な変形が可能である。
ある変形例として、複数のアームの試行中に、例えば、ランダムに、設定されたアームとは離れたパラメータ値を探索してもよい。この場合、上述のようにダミーリクエスト数を調整すべきパラメータを例とすると、現在のダミーリクエスト数(例えば、5QPS)より大きい方向に離れたパラメータ値(例えば、10QPS)について探索した場合には、コンピュータシステムにより高い負荷を与える可能性がある。このため、好適には、現在のダミーリクエスト数より小さい方向に離れたパラメータ値(例えば、1QPS)のみについて探索すればよい。これにより、コンピュータシステムへの過度な負荷を低減しつつ、局所最適解への収束を有効に防止することができる。
他の変形例として、調整すべきパラメータの種類やパラメータを評価するための報酬の種類を任意に変更してもよい。
例えば、一定時間を上回る応答時間Tのレスポンスの発生を防止するため、ネットワークにおいてサービスを提供するレプリカサーバの数を調整してもよい。
図3を参照して、レプリカサーバ33a、33b、・・・33nの数を調整する場合を考える。クライアント31から、例えば、100回ずつ、ロードバランサ32を介して、n個、n−1個、n+1個のレプリカサーバにリクエスト(例えば、オンライン決済トランザクション)を送信し、それぞれの応答時間t1、t2、t3を計測する。
通常、単位時間当たりのリクエスト数が増加すると、通信量が増加するため、レプリカサーバ数も増やすが、その後、リクエスト数が減少した場合に、レプリカサーバ数がそのまま維持されると、タイムアウトによる通信セッションの切断と再接続の負荷が発生して、レスポンスが低下してしまう。
本変形例によれば、応答時間tを最小にするようなレプリカサーバ数nを、上記各実施形態と同様、バンディットアルゴリズムを利用して動的かつ自律的に調整することができる。応答時間tを評価するには、上述した各評価関数を使用することができる。
報酬の種類の変形例として、応答時間の平均値や上限値を越えた回数ないし割合に替えて、CPUやメモリの消費量を評価してもよい。例えば、ダミーリクエスト数を調整する場合、CPUやメモリの消費量が最小となるアームに対して、最大の報酬を算出すればよい。
パラメータの種類の変形例として、DB(データベース)のパラメータ、サービスに割り当てるべきCPUやメモリのパラメータ、通信パラメータ等を調整してもよい。例えば、DBのパラメータとして、DBのレスポンスを最大化するため、平均応答時間を報酬として算出することにより、DBのキーバッファサイズ等を調整してもよい。また、他のDBのパラメータとして、無駄なメモリを使用することなくキャッシュヒット率を最大化するため、キャッシュヒット率を報酬として算出することにより、DBのキャッシュサイズやキャッシュ場所を調整してもよい。
また、例えば、CPUやメモリのパラメータとして、最もコスト効率よくスループットを向上させるため、CPUコスト当たりのスループット数を報酬として算出することにより、CPU数を調整してもよい。
さらに、例えば、通信パラメータとして、通信負荷を低減して応答時間を短くするため、平均応答時間を報酬として算出することにより、通信セッションないしコネクションを維持する時間(タイムアウト時間)を調整してもよい。
他の変形例として、試行するアームの数を、3以外の任意の数に変更してもよい。この場合、調整すべきパラメータが理論上または実用上取り得るパラメータ値のトータル数に基づいて、アーム数を適切に選択すればよい。
なお、上記において特定の実施形態が説明されているが、当該実施形態は単なる例示であり、本発明の範囲を限定する意図はない。本明細書に記載された装置及び方法は上記した以外の形態において具現化することができる。また、本発明の範囲から離れることなく、上記した実施形態に対して適宜、省略、置換及び変更をなすこともできる。かかる省略、置換及び変更をなした形態は、請求の範囲に記載されたもの及びこれらの均等物の範疇に含まれ、本発明の技術的範囲に属する。
1…パラメータ調整装置、11…CPU、12…ROM、13…RAM、14…HDD、15…入力部、16…表示部、17…通信I/F、21…データ入力部、22…パラメータ設定部、23…パラメータ探索部、24…パラメータ適用部、25…制御部、26…通信部、31…クライアント、32…ロードバランサ、33a〜33n…レプリカサーバ

Claims (13)

  1. システムにおいて調整可能なパラメータの複数の候補値を設定するパラメータ設定部と、
    前記パラメータ設定部により設定された前記パラメータの複数の候補値のそれぞれを、所定時間または所定回数、前記システムに対して試行して、前記システムにおける報酬をそれぞれ算出するパラメータ試行部と、
    前記パラメータ試行部による試行が所定の終了条件を満たした場合に、前記パラメータの複数の候補値のうち、最大の報酬が算出された前記パラメータの候補値を選択して、選択された前記パラメータの候補値を前記システムに適用するパラメータ適用部と、
    前記パラメータ適用部により選択された前記パラメータの候補値に基づいて、前記パラメータ設定部に前記パラメータの複数の候補値を再設定させ、再設定された前記パラメータの複数の候補値で、前記パラメータ設定部、前記パラメータ試行部、および前記パラメータ適用部の各処理が繰り返されるよう制御する制御部と、
    を備える情報処理装置。
  2. 前記制御部は、前記パラメータ適用部により選択されたパラメータの候補値、および当該パラメータの候補値の上下のパラメータの候補値を含むよう、前記パラメータ設定部にパラメータの複数の候補値を再設定させる、請求項1に記載の情報処理装置。
  3. 前記制御部は、前記システムが稼働する間、前記パラメータ設定部、前記パラメータ試行部、および前記パラメータ適用部の各処理が繰り返されるよう制御する、
    請求項1または2に記載の情報処理装置。
  4. 前記制御部は、前記パラメータ適用部により選択されたパラメータの候補値が、次回のパラメータ試行部による試行において、パラメータの複数の候補値のうち中央または中央近傍となるよう、前記パラメータ設定部にパラメータの複数の候補値を再設定させる、
    請求項1から3のいずれか1項に記載の情報処理装置。
  5. 前記パラメータ試行部は、固定時間あるいは固定回数試行を実行した場合、または、所定の報酬が累積された場合に、試行を終了し、
    前記パラメータ適用部は、試行終了時点で最大の報酬が算出されたパラメータの候補値を選択して、選択されたパラメータの候補値を前記システムに適用する、
    請求項1から4のいずれか1項に記載の情報処理装置。
  6. 前記制御部は、再設定すべきパラメータの複数の候補値の間の幅を動的に変更して、前記パラメータ設定部に前記パラメータの複数の候補値を再設定させる、
    請求項1から5のいずれか1項に記載の情報処理装置。
  7. 前記制御部は、前記パラメータの複数の候補値の間の前記報酬の差分の前記幅に対する割合が、前回の試行における割合より小さい場合に、前記幅が小さくなるよう、前記割合が前回の試行における割合より大きい場合に、前記幅が大きくなるよう、前記幅を動的に変更する、
    請求項6に記載の情報処理装置。
  8. 前記制御部は、相互に関連する複数のパラメータのうち、第1のパラメータを、前記パラメータ設定部、前記パラメータ試行部、および前記パラメータ適用部の各処理を繰り返すことで調整し、その後、前記複数のパラメータのうち、第2のパラメータを、前記パラメータ設定部、前記パラメータ試行部、および前記パラメータ適用部の各処理を繰り返すことで調整し、前記第1のパラメータおよび前記第2のパラメータの調整を繰り返す、
    請求項1から7のいずれか1項に記載の情報処理装置。
  9. 前記制御部は、前記パラメータ設定部にすでに設定されたパラメータの複数の候補値とは異なる、ランダムに選択されたパラメータの候補値が設定されるよう制御する、
    請求項1から8のいずれか1項に記載の情報処理装置。
  10. 前記制御部は、前記パラメータ設定部にすでに設定されたパラメータの複数の候補値より小さい値をランダムに選択する、
    請求項9に記載の情報処理装置。
  11. 前記パラメータ適用部は、前記パラメータ試行部が、前記パラメータの複数の候補値のそれぞれを試行する所定時間または所定回数より多い時間または回数、選択されたパラメータの候補値の前記システムに対する適用を繰り返す、
    請求項1から10のいずれか1項に記載の情報処理装置。
  12. 情報処理装置が実行する情報処理方法であって、
    システムにおいて調整可能なパラメータの複数の候補値を設定するステップと、
    設定された前記パラメータの複数の候補値のそれぞれを、所定時間または所定回数、前記システムに対して試行して、前記システムにおける報酬をそれぞれ算出するステップと、
    試行が所定の終了条件を満たした場合に、前記パラメータの複数の候補値のうち、最大の報酬が算出された前記パラメータの候補値を選択して、選択された前記パラメータの候補値を前記システムに適用するステップと、
    選択された前記パラメータの候補値に基づいて、前記パラメータの複数の候補値を再設定し、再設定された前記パラメータの複数の候補値で、前記パラメータの設定、前記パラメータの試行、および前記パラメータの適用の各処理を繰り返すステップと、
    を含む情報処理方法。
  13. 情報処理をコンピュータに実行させるための情報処理プログラムであって、該プログラムは、前記コンピュータに、
    システムにおいて調整可能なパラメータの複数の候補値を設定するパラメータ設定処理と、
    前記パラメータ設定処理により設定された前記パラメータの複数の候補値のそれぞれを、所定時間または所定回数、前記システムに対して試行して、前記システムにおける報酬をそれぞれ算出するパラメータ試行処理と、
    前記パラメータ試行処理による試行が所定の終了条件を満たした場合に、前記パラメータの複数の候補値のうち、最大の報酬が算出された前記パラメータの候補値を選択して、選択された前記パラメータの候補値を前記システムに適用するパラメータ適用処理と、
    前記パラメータ適用処理により選択された前記パラメータの候補値に基づいて、前記パラメータ設定部に前記パラメータの複数の候補値を再設定させ、再設定された前記パラメータの複数の候補値で、前記パラメータ設定処理、前記パラメータ試行処理、および前記パラメータ適用処理の各処理が繰り返されるよう制御する制御処理と、を含む処理を実行させるためのものである、
    情報処理プログラム。
JP2020058304A 2020-03-27 2020-03-27 情報処理装置、情報処理方法およびプログラム Active JP6900537B1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2020058304A JP6900537B1 (ja) 2020-03-27 2020-03-27 情報処理装置、情報処理方法およびプログラム
US17/197,345 US11487337B2 (en) 2020-03-27 2021-03-10 Information processing apparatus and method for dynamically and autonomously tuning a parameter in a computer system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020058304A JP6900537B1 (ja) 2020-03-27 2020-03-27 情報処理装置、情報処理方法およびプログラム

Publications (2)

Publication Number Publication Date
JP6900537B1 JP6900537B1 (ja) 2021-07-07
JP2021157598A true JP2021157598A (ja) 2021-10-07

Family

ID=76649982

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020058304A Active JP6900537B1 (ja) 2020-03-27 2020-03-27 情報処理装置、情報処理方法およびプログラム

Country Status (2)

Country Link
US (1) US11487337B2 (ja)
JP (1) JP6900537B1 (ja)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000132535A (ja) * 1998-10-23 2000-05-12 Mitsubishi Electric Corp 最適パラメータ組合せ予測方法、およびそのプログラムを記録した記録媒体と装置
JP2004178372A (ja) * 2002-11-28 2004-06-24 Dainippon Printing Co Ltd 動作パラメータの自動チューニング装置および自動セットアップ装置
JP2017016554A (ja) * 2015-07-06 2017-01-19 株式会社日立製作所 信号機制御システム及び信号機制御方法
JP2017102619A (ja) * 2015-11-30 2017-06-08 オムロン株式会社 制御パラメータ調整装置、制御パラメータ調整方法、制御パラメータ調整プログラム
JP2017122981A (ja) * 2016-01-05 2017-07-13 株式会社日立製作所 意思決定支援装置及び方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02212966A (ja) 1989-02-13 1990-08-24 Fujitsu Ltd ホスト状態監視方式
US8074206B2 (en) * 2003-07-08 2011-12-06 Sap Ag Method and computer system for software tuning
US7827535B2 (en) * 2003-12-10 2010-11-02 Oracle International Corporation Application performance tuning server-side component
US8782641B2 (en) * 2006-01-24 2014-07-15 International Business Machines Corporation Tuning of work to meet performance goal
US8117146B2 (en) * 2008-02-20 2012-02-14 Oracle International Corporation Computing the values of configuration parameters for optimal performance of associated applications
US20090293051A1 (en) * 2008-05-22 2009-11-26 Fortinet, Inc., A Delaware Corporation Monitoring and dynamic tuning of target system performance
US8578180B2 (en) * 2009-10-14 2013-11-05 Red Hat, Inc. Dynamic tuning of computing systems
US20160132787A1 (en) * 2014-11-11 2016-05-12 Massachusetts Institute Of Technology Distributed, multi-model, self-learning platform for machine learning
US10373072B2 (en) * 2016-01-08 2019-08-06 International Business Machines Corporation Cognitive-based dynamic tuning

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000132535A (ja) * 1998-10-23 2000-05-12 Mitsubishi Electric Corp 最適パラメータ組合せ予測方法、およびそのプログラムを記録した記録媒体と装置
JP2004178372A (ja) * 2002-11-28 2004-06-24 Dainippon Printing Co Ltd 動作パラメータの自動チューニング装置および自動セットアップ装置
JP2017016554A (ja) * 2015-07-06 2017-01-19 株式会社日立製作所 信号機制御システム及び信号機制御方法
JP2017102619A (ja) * 2015-11-30 2017-06-08 オムロン株式会社 制御パラメータ調整装置、制御パラメータ調整方法、制御パラメータ調整プログラム
JP2017122981A (ja) * 2016-01-05 2017-07-13 株式会社日立製作所 意思決定支援装置及び方法

Also Published As

Publication number Publication date
US11487337B2 (en) 2022-11-01
US20210303044A1 (en) 2021-09-30
JP6900537B1 (ja) 2021-07-07

Similar Documents

Publication Publication Date Title
Paschos et al. Learning to cache with no regrets
US20190097912A1 (en) Weight initialization for random neural network reinforcement learning
US20220248237A1 (en) Neural network circuit remote electrical tilt antenna infrastructure management based on probability of actions
US20230153124A1 (en) Edge network computing system with deep reinforcement learning based task scheduling
US11784931B2 (en) Network burst load evacuation method for edge servers
CN111860595A (zh) 一种基于用户偏好预测的异构网络缓存决策方法
US10582526B2 (en) System and method for measuring end-to-end channel capacity entropy
CN115190033B (zh) 一种基于强化学习的云边融合网络任务卸载方法
Cai et al. SARM: service function chain active reconfiguration mechanism based on load and demand prediction
US8634322B2 (en) Apparatus and methods for adaptive network throttling
Li et al. DQN-enabled content caching and quantum ant colony-based computation offloading in MEC
Devi et al. Optimization techniques for spectrum handoff in cognitive radio networks using cluster based cooperative spectrum sensing
CN116389270A (zh) 联邦学习中基于drl联合优化客户端选择和带宽分配的方法
CN114938381A (zh) 一种基于深度强化学习的d2d-mec卸载方法、计算机程序产品
JP6900537B1 (ja) 情報処理装置、情報処理方法およびプログラム
CN109815204A (zh) 一种基于拥塞感知的元数据请求分发方法及设备
CN106888501B (zh) 预测网络拥塞程度并将链路接入信道的方法及设备
CN115756873B (zh) 一种基于联邦强化学习的移动边缘计算卸载方法和平台
CN113543160A (zh) 5g切片资源配置方法、装置、计算设备及计算机存储介质
CN116437341A (zh) 一种移动区块链网络的计算卸载与隐私保护联合优化方法
US9124496B2 (en) System and method for end- or service-node placement optimization
US11558263B2 (en) Network device association with network management system
US20220051135A1 (en) Load balancing using data-efficient learning
WO2022271497A1 (en) Cellular network user device mobility optimization management
Fan et al. Dynamic regret of randomized online service caching in edge computing

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200327

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210601

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210616

R150 Certificate of patent or registration of utility model

Ref document number: 6900537

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150