(57)【要約】【課題】処理能力を向上させる情報処理装置、情報処理装置の制御方法及び情報処理装置の制御プログラムを提供する。【解決手段】キャッシュ１６は、データを格納する。演算処理部１１は、キャッシュ１６のうちアプリケーション毎に割り当てられたサイズの領域を用いて各アプリケーションを実行する。ヒット率計算部１０２は、異なるサイズの領域を用いた場合のそれぞれのヒット率を示す指標をアプリケーション毎に求める。グラフ予測部１０４は、ヒット率計算部１０２により求められた各指標を基に、アプリケーション毎に所定時間後のサイズとヒット率との関係を示す関係情報を取得する。割当サイズ決定部１４は、グラフ予測部１０４により取得された関係情報を基に、各アプリケーションに割り当てるサイズを決定する。【選択図】図１
2018112946.tif 000002
【特許請求の範囲】
【請求項１】
データを格納するキャッシュと、
前記キャッシュのうちアプリケーション毎に割り当てられたサイズの領域を用いて各前記アプリケーションを実行する演算処理部と、
異なる前記サイズの領域を用いた場合のそれぞれのヒット率を示す指標を前記アプリケーション毎に求める指標取得部と、
前記指標取得部により求められた各前記指標を基に、前記アプリケーション毎に所定時間後の前記サイズとヒット率との関係を示す関係情報を取得する関係取得部と、
前記関係取得部により取得された前記関係情報を基に、各前記アプリケーションに割り当てる前記サイズを決定する割当決定部と
を備えたことを特徴とする情報処理装置。
【請求項２】
前記関係取得部は、異なる時刻における前記指標を基に、前記関係情報を取得することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記指標取得部は、一定時間毎に各前記指標を取得し、
前記関係取得部は、最新の各前記指標及び前回の各前記指標を基に、前記関係情報を取得する
ことを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記割当決定部は、予め決められた目標ヒット率を達成可能な前記サイズを前記アプリケーション毎に決定し、決定した前記サイズを各前記アプリケーションに割り当てた結果、前記キャッシュに未割当領域が残る場合、前記未割当領域をさらに各前記アプリケーションに割り当てることを特徴とする請求項１〜３のいずれか一つに記載の情報処理装置。
【請求項５】
前記割当決定部は、予め決められた目標ヒット率を達成可能な前記サイズを前記アプリケーション毎に決定し、決定した前記サイズを各前記アプリケーションに割り当てた結果、前記キャッシュが足りない場合、前記キャッシュを各前記アプリケーションに均等配分することを特徴とする請求項１〜４のいずれか一つに記載の情報処理装置。
【請求項６】
前記割当決定部は、予め決められた目標ヒット率を達成可能な前記サイズを前記アプリケーション毎に決定し、決定した前記サイズを各前記アプリケーションに割り当てた結果、前記キャッシュが足りない場合、前記ヒット率の増加率が大きいアプリケーションほど前記サイズの割り当てが大きくなるように前記キャッシュを各前記アプリケーションに割り当てることを特徴とする請求項１〜４のいずれか一つに記載の情報処理装置。
【請求項７】
データを格納するキャッシュにおける異なるサイズの領域を用いた場合のそれぞれのヒット率を示す指標をアプリケーション毎に求め、
求められた各前記指標を基に、前記アプリケーション毎に所定時間後の前記サイズとヒット率との関係を示す関係情報を取得し、
取得された前記関係情報を基に、各前記アプリケーションに割り当てる前記サイズを決定し、
決定された前記サイズを各前記アプリケーションに割り当て、
前記アプリケーション毎に割り当てられた前記サイズの前記キャッシュの領域を用いて各前記アプリケーションを実行する
ことを特徴とする情報処理装置の制御方法。
【請求項８】
データを格納するキャッシュにおける異なるサイズの領域を用いた場合のそれぞれのヒット率を示す指標をアプリケーション毎に求め、
求められた各前記指標を基に、前記アプリケーション毎に所定時間後の前記サイズとヒット率との関係を示す関係情報を取得し、
取得された前記関係情報を基に、各前記アプリケーションに割り当てる前記サイズを決定し、
決定された前記サイズを各前記アプリケーションに割り当て、
前記アプリケーション毎に割り当てられた前記サイズの前記キャッシュの領域を用いて各前記アプリケーションを実行する
処理をコンピュータに実行させることを特徴とする情報処理装置の制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理装置の制御方法及び情報処理装置の制御プログラムに関する。
【背景技術】
【０００２】
サーバにおいてＯＳ（Operating  System）が自身のために確保した物理メモリ内の領域のうち、データが読み込まれていない部分をキャッシュ領域として使用する技術がある。このメモリ上のＯＳによりキャッシュ領域とされた領域を、以下では単に「キャッシュ」という。複数のアプリケーションがサーバ上で動作する場合、それぞれのアプリケーションは、キャッシュを共有する場合がある。その場合、キャッシュ全体を小領域に分割して各アプリケーションに割り当て、サーバを運用することが行われる。
【０００３】
なお、キャッシュメモリの割り当ての技術として以下のような従来技術がある。例えば、通信端末で動作するウェブアプリケーションの開始から終了までのキャッシュのヒット率を計算し、ヒット率が基準を超えた場合、次回のウェブアプリケーション実行時に割り当てるキャッシュサイズを所定量増減させる従来技術がある。また、補助記憶装置のデータ転送速度に基づいてバッファキャッシュ分割比率を決定し、バッファキャッシュをそのバッファキャッシュ分割比率に基づいて一定周期で再分割する従来技術がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−２３８１１２号公報
【特許文献２】特開２０００−３５３１２６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、キャッシュを各アプリケーションに割り当てる場合、キャッシュサイズとヒット率の関係を知らなければ、目標ヒット率を達成するための正確なサイズ調整を行うことは困難である。そして、アプリケーションのキャッシュのヒット率とキャッシュサイズとの関係は、時間が経過すると変化する可能性がある。そのため、現在のヒット率だけから割り当てるキャッシュサイズを決定すると、ヒット率とキャッシュサイズとの関係が変化した場合に適切なキャッシュの割り当てを行うことが困難である。このため、情報処理装置の処理能力を向上させることが困難となる。
【０００６】
この点、アプリケーションの開始から終了までのキャッシュのヒット率を用いてキャッシュサイズを増減させる従来技術では、所定量の大きさによっては再度のサイズ調整を行うなど適切なキャッシュの割り当ては困難である。さらに、この従来技術では、前回動作時のヒット率を用いるため、ヒット率とキャッシュサイズとの関係が変化した場合に適切なキャッシュの割り当てを行うことが困難となる。このため、情報処理装置の処理能力を向上させることが困難となる。
【０００７】
また、データ転送速度に基づいてキャッシュ分割比率を決定する従来技術では、ヒット率を直接考慮しておらず、適切なキャッシュの割り当てを行うことは困難であり、情報処理装置の処理能力を向上させることが困難となる。
【０００８】
開示の技術は、上記に鑑みてなされたものであって、処理能力を向上させる情報処理装置、情報処理装置の制御方法及び情報処理装置の制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本願の開示する情報処理装置、情報処理装置の制御方法及び情報処理装置の制御プログラムの一つの態様において、キャッシュは、データを格納する。演算処理部は、前記キャッシュのうちアプリケーション毎に割り当てられたサイズの領域を用いて各前記アプリケーションを実行する。指標取得部は、異なる前記サイズの領域を用いた場合のそれぞれのヒット率を示す指標を前記アプリケーション毎に求める。関係取得部は、前記指標取得部により求められた各前記指標を基に、前記アプリケーション毎に所定時間後の前記サイズとヒット率との関係を示す関係情報を取得する。割当決定部は、前記関係取得部により取得された前記関係情報を基に、各前記アプリケーションに割り当てる前記サイズを決定する。
【発明の効果】
【００１０】
１つの側面では、本発明は、情報処理装置の処理能力を向上させることができる。
【図面の簡単な説明】
【００１１】
【図１】図１は、サーバのブロック図である。
【図２】図２は、２つのアプリケーションが動作する場合の関係予測部の詳細を表すブロック図である。
【図３】図３は、目標を達成するためのキャッシュサイズの調整を説明するための図である。
【図４】図４は、複数のアプリケーションにおける目標ヒット率を達成するためのキャッシュサイズの割り当てを表す図である。
【図５】図５は、関係予測部によるＴ／２秒後のヒット率を表すグラフの作成処理のフローチャートである。
【図６】図６は、実施例１に係る割当サイズ決定部による各アプリケーションに対して割り当てるキャッシュサイズの決定処理のフローチャートである。
【図７】図７は、キャッシュ制御部によるキャッシュ領域の割り当て処理のフローチャートである。
【図８】図８は、実施例２に係る割当サイズ決定部による各アプリケーションに対して割り当てるキャッシュサイズの決定処理のフローチャートである。
【図９】図９は、サーバのハードウェア構成の一例を表す図である。
【発明を実施するための形態】
【００１２】
以下に、本願の開示する情報処理装置、情報処理装置の制御方法及び情報処理装置の制御プログラムの実施例を図面に基づいて詳細に説明する。なお、以下の実施例により本願の開示する情報処理装置、情報処理装置の制御方法及び情報処理装置の制御プログラムが限定されるものではない。
【実施例１】
【００１３】
図１は、サーバのブロック図である。サーバ１は、情報処理装置である。サーバ１は、図１に示すように、関係予測部１０、演算処理部１１、ＩＯ（Input  Output）受付部１２、キャッシュ制御部１３、割当サイズ決定部１４、補助記憶部１５及びキャッシュ１６を有する。
【００１４】
補助記憶部１５は、ハードディスクなどの補助記憶装置である。補助記憶部１５は、データを格納する。
【００１５】
キャッシュ１６は、ＯＳによって主記憶装置上にキャッシュとして使用するために確保された領域である。キャッシュ１６が有する領域は、キャッシュ制御部１３によりアプリケーション毎に分割されて割り当てられる。
【００１６】
演算処理部１１は、ＯＳを実行する。さらに、演算処理部１１は、入力部などから演算処理の指示を受けて複数のアプリケーションを実行し演算処理を行う。演算処理部１１は、演算処理を実行するにあたりデータの読み出しなどのＩＯ要求を各アプリケーションから受信する。そして、演算処理部１１は、アプリケーションからのＩＯ要求に応じたデータの読み出しをＩＯ受付部１２に要求する。その後、演算処理部１１は、データの読出要求の応答として指定したデータの入力をＩＯ受付部１２から受ける。
【００１７】
ＩＯ受付部１２は、アプリケーションからのＩＯ要求の入力を演算処理部１１から受ける。そして、ＩＯ受付部１２は、データの読出要求を行ったアプリケーションのＩＤ（Identifier）を取得する。ここで、アプリケーションのＩＤとは、ＯＳがＷｉｎｄｏｗｓ（登録商標）やＬｉｎｕｘ（登録商標）の場合、プロセスＩＤにあたる。また、ＩＯ受付部１２は、ＩＯ要求の種別を取得する。さらに、ＩＯ受付部１２は、ＩＯ要求のファイル名、サイズ及びアドレスを取得する。
【００１８】
ＩＯ受付部１２は、ＩＯ要求が読出要求又は書込要求であった場合、ＩＯ要求で指定されたデータのアクセスアドレス情報やファイル情報などのメタデータをキャッシュ制御部１３へ出力し、データの読み出しや書き込みを要求する。
【００１９】
データの読み出し要求の場合、ＩＯ受付部１２は、データの読み出し要求に対する応答として、指定したデータ又はキャッシュミスの通知の入力をキャッシュ制御部１３から受ける。指定したデータを取得した場合、ＩＯ受付部１２は、取得したデータをデータの読出要求の応答として演算処理部１１へ出力する。
【００２０】
これに対して、キャッシュミスの通知を受けた場合、ＩＯ受付部１２は、補助記憶部１５からデータの読出要求で指定されたデータを取得する。そして、ＩＯ受付部１２は、取得したデータをデータの読出要求の応答として演算処理部１１へ出力する。また、ＩＯ受付部１２は、取得したデータをキャッシュ制御部１３へ出力する。
【００２１】
また、書き込み要求の場合、ＩＯ受付部１２は、書き込み完了の応答をキャッシュ制御部１３から受ける。そして、ＩＯ受付部１２は、書き込み完了の応答を演算処理部１１へ出力する。
【００２２】
さらに、ＩＯ受付部１２は、データの読出要求又は書込要求の入力を受けた場合、読出要求又は書込要求で指定されたデータのメタデータを関係予測部１０へも出力する。さらに、ＩＯ受付部１２は、取得したアプリケーションＩＤを関係予測部１０へ出力する。
【００２３】
キャッシュ制御部１３は、メタデータを使用したデータの取得要求の入力をＩＯ受付部１２から受ける。そして、キャッシュ制御部１３は、メタデータを用いてデータの取得要求で指定されたデータがキャッシュ１６に格納されているか否かを判定する。
【００２４】
キャッシュ１６に指定されたデータが格納されている場合、キャッシュ制御部１３は、メタデータにより特定されるデータをキャッシュ１６から取得する。そして、キャッシュ制御部１３は、データの取得要求に対する応答として取得したデータをＩＯ受付部１２へ出力する。
【００２５】
これに対して、キャッシュ１６に指定されたデータが格納されていない場合、キャッシュ制御部１３は、キャッシュミスの通知をＩＯ受付部１２へ出力する。その後、キャッシュ制御部１３は、キャッシュミスしたデータの入力をＩＯ受付部１２から受ける。そして、キャッシュ制御部１３は、予め決められたキャッシュアルゴリズムにしたがいキャッシュ１６に格納されたデータの中から削除するデータを抽出する。例えば、キャッシュ制御部１３は、キャッシュ１６に格納されたデータの中で最も古いデータを削除するデータとして抽出する。次に、キャッシュ制御部１３は、抽出したデータを削除し、キャッシュミスしたデータをキャッシュ１６へ格納する。
【００２６】
また、キャッシュ制御部１３は、データの書込要求を受けた場合、キャッシュ１６に指定されたデータが有ればキャッシュ１６の内容を更新する。キャッシュ１６に指定されたデータがなければ、キャッシュ制御部１３は、キャッシュミスの通知をＩＯ受付部１２へ出力する。
【００２７】
さらに、キャッシュ制御部１３は、各アプリケーションへのキャッシュサイズの割り当てを示すキャッシュ管理テーブルを有する。より詳しくは、キャッシュ制御部１３は、更新された新しいキャッシュサイズの割り当てを示す新サイズ管理テーブル及び更新前のキャッシュサイズの割り当てを示す旧サイズ管理テーブルの２つのキャッシュ管理テーブルを有する。
【００２８】
キャッシュ制御部１３は、各アプリケーションに対するキャッシュサイズの割当情報の入力を割当サイズ決定部１４から受ける。そして、キャッシュ制御部１３は、新サイズ管理テーブルの内容を旧サイズ管理テーブルへ移す。さらに、キャッシュ制御部１３は、取得したキャッシュサイズの割当情報にしたがって新サイズ管理テーブルを更新する。ここで、旧サイズ管理テーブルに登録された各アプリケーションに対して割り当てられたキャッシュサイズを「旧サイズ」という。また、新サイズ管理テーブルに登録された各アプリケーションに対して割り当てられたキャッシュサイズを「新サイズ」という。
【００２９】
キャッシュ制御部１３は、各アプリケーションにおける旧サイズと新サイズとを比較する。新サイズが旧サイズ未満のアプリケーションに対しては、キャッシュ制御部１３は、新サイズと旧サイズとの差分に対応するデータブロックをそのアプリケーションに割り当てたキャッシュ１６の領域から選択し破棄対象とする。そして、キャッシュ制御部１３は、破棄対象としたデータブロックを一時領域に保存する。その後、キャッシュ制御部１３は、アプリケーションに割り当てるキャッシュサイズを更新して、割り当てるキャッシュサイズを減らす。
【００３０】
一方、新サイズが旧サイズ以上のアプリケーションに対しては、キャッシュ制御部１３は、新サイズと旧サイズとの差分に対応するデータブロックをそのアプリケーションのデータを格納した一時領域から取得する。そして、キャッシュ制御部１３は、そのアプリケーションに割り当てるキャッシュ１６の領域に取得したデータブロックを格納する。その後、キャッシュ制御部１３は、そのアプリケーションに割り当てるキャッシュサイズを更新して、割り当てるキャッシュサイズを増やす。
【００３１】
関係予測部１０は、ＡＰＰ（Application）用仮想キャッシュ１０１、ヒット率計算部１０２、ヒット率保存部１０３及びグラフ予測部１０４を有する。以下では、図２を参照して、ＡＰＰ＃１及び＃２という２つのアプリケーションが動作する場合で説明する。図２は、２つのアプリケーションが動作する場合の関係予測部１０の詳細を表すブロック図である。ただし、これは一例でありアプリケーションの数に特に制限は無い。
【００３２】
ＡＰＰ用仮想キャッシュ１０１は、アプリケーション毎の仮想キャッシュを有する。例えば、図２に示すように、ＡＰＰ用仮想キャッシュ１０１は、ＡＰＰ＃１の仮想キャッシュ１１１及びＡＰＰ＃２の仮想キャッシュ１１２を有する。
【００３３】
ＡＰＰ＃１の仮想キャッシュ１１１は、サイズが異なる仮想キャッシュ２１１〜２１３を複数有する。また、ＡＰＰ＃２の仮想キャッシュ１１２は、サイズが異なる仮想キャッシュ２２１〜２２３を複数有する。例えば、仮想キャッシュ２１１〜２１３及び２２１〜２２３は、それぞれキャッシュ１６の領域全体の内の１００％、９０％、・・・、１０％のサイズを有する。ここで、キャッシュ１６の領域全体とは、各アプリケーションが使用できるキャッシュサイズの総和にあたる。キャッシュ１６の領域全体にあたるキャッシュサイズを「全体サイズ」という。
【００３４】
仮想キャッシュ２１１〜２１３には、ＡＰＰ＃１が要求したデータのメタデータが、ヒット率計算部１０２によりキャッシュアルゴリズムにしたがって格納される。また、仮想キャッシュ２２１〜２２２には、ＡＰＰ＃２が要求したデータのメタデータが、ヒット率計算部１０２によりキャッシュアルゴリズムにしたがって格納される。仮想キャッシュ２１１〜２１３のそれぞれを区別しない場合、「仮想キャッシュ２１０」という。また、仮想キャッシュ２２１〜２２３のそれぞれを区別しない場合、「仮想キャッシュ２２０」という。
【００３５】
ヒット率計算部１０２は、メタデータとともにアプリケーションＩＤの入力をＩＯ受付部１２から受ける。そして、ヒット率計算部１０２は、アプリケーション毎に以下の計算を行う。このヒット率計算部１０２が、「指標取得部」の一例にあたる。例えば、図２に示すように、ヒット率計算部１０２は、ＡＰＰ＃１ヒット率計算部１２１、ＡＰＰ＃２ヒット率計算部１２２を有する場合で説明する。
【００３６】
ＡＰＰ＃１ヒット率計算部１２１は、ＡＰＰ＃１によるデータの読出要求又は書込要求で指定されたメタデータの入力をＩＯ受付部１２から受ける。ここで、ＡＰＰ＃１ヒット率計算部１２１は、取得したアプリケーションＩＤによりどのメタデータの送信元のアプリケーションを特定することができる。そして、ＡＰＰ＃１ヒット率計算部１２１は、ＡＰＰ＃１の仮想キャッシュ１１１が有する各仮想キャッシュ２１０にメタデータに対応するデータが格納されているか否かを判定する。
【００３７】
メタデータに対応するデータが格納された仮想キャッシュ２１０であれば、ＡＰＰ＃１ヒット率計算部１２１は、その仮想キャッシュ２１０においてはキャッシュヒットと判定する。また、メタデータに対応するデータが格納されていない仮想キャッシュ２１０であれば、ＡＰＰ＃１ヒット率計算部１２１は、その仮想キャッシュ２１０においてはキャッシュミスと判定する。キャッシュミスの場合、ＡＰＰ＃１ヒット率計算部１２１は、キャッシュ制御部１３と同じキャッシュアルゴリズムにしたがってメタデータをその仮想キャッシュ２１０に格納する。
【００３８】
ＡＰＰ＃１ヒット率計算部１２１は、各仮想キャッシュ２１０におけるキャッシュヒット及びキャッシュミスの回数をカウントする。そして、ＡＰＰ＃１ヒット率計算部１２１は、自己が有するタイマで時間を計測し、一定時間が経過すると、その間のキャッシュヒット及びキャッシュミスの回数を用いて、各仮想キャッシュ２１０におけるヒット率を計算する。そしてＡＰＰ＃１ヒット率計算部１２１は、計算したヒット率をヒット率保存部１０３及びグラフ予測部１０４へ出力する。以下では、ＡＰＰ＃１ヒット率計算部１２１が出力したヒット率を「現在のヒット率」という。
【００３９】
また、ＡＰＰ＃２ヒット率計算部１２２も、ＡＰＰ＃１ヒット率計算部１２１と同様に各仮想キャッシュ２２０のキャッシュヒット及びキャッシュミスをカウントすると共に、メタデータの格納を行う。そして、ＡＰＰ＃２ヒット率計算部１２２は、一定時間毎に各仮想キャッシュ２１０におけるヒット率を計算し、計算したヒット率をヒット率保存部１０３及びグラフ予測部１０４へ出力する。このように、ヒット率計算部１０２は、アプリケーション毎に、ＡＰＰ用仮想キャッシュ１０１が有するサイズの異なる仮想キャッシュのそれぞれにおけるヒット率を計算する。
【００４０】
ヒット率保存部１０３は、アプリケーション毎の保存領域を有する。例えば、図２に示すように、ヒット率保存部１０３は、ＡＰＰ＃１ヒット率保存部１３１、ＡＰＰ＃２ヒット率保存部１３２を有する。
【００４１】
ＡＰＰ＃１ヒット率保存部１３１は、一定時間毎に各仮想キャッシュ２１０のヒット率の入力をＡＰＰ＃１ヒット率計算部１２１から受ける。そして、ＡＰＰ＃１ヒット率保存部１３１は、一定時間前の各仮想キャッシュ２１０のヒット率をグラフ予測部１０４へ出力する。その後、ＡＰＰ＃１ヒット率保存部１３１は、一定時間前の各仮想キャッシュ２１０のヒット率を削除し、新たに取得した各仮想キャッシュ２１０のヒット率を記憶する。
【００４２】
ＡＰＰ＃２ヒット率保存部１３２も、ＡＰＰ＃１ヒット率保存部１３１と同様に、各仮想キャッシュ２２０のヒット率をグラフ予測部１０４へ出力するとともに、新たに取得した各仮想キャッシュ２２０のヒット率を記憶する。このように、ヒット率保存部１０３は、アプリケーション毎のサイズの異なる仮想キャッシュにおける一定時間前のヒット率を一定時間維持する。
【００４３】
グラフ予測部１０４は、アプリケーション毎にグラフの予測を行う。このグラフ予測部１０４が、「関係取得部」の一例にあたる。例えば、グラフ予測部１０４は、ＡＰＰ＃１グラフ予測部１４１及びＡＰＰ＃２グラフ予測部１４２を有する。  
【００４４】
ＡＰＰ＃１グラフ予測部１４１は、各仮想キャッシュ２１０における現在のヒット率の入力をＡＰＰ＃１ヒット率計算部１２１から受ける。また、ＡＰＰ＃１グラフ予測部１４１は、各仮想キャッシュ２１０における一定時間前のヒット率の入力をＡＰＰ＃１ヒット率保存部１３１から受ける。
【００４５】
図３は、目標を達成するためのキャッシュサイズの調整を説明するための図である。図３の縦軸はヒット率を表し、横軸は仮想キャッシュ２１０のキャッシュ１６の全体サイズに対する割合を示す。
【００４６】
ＡＰＰ＃１グラフ予測部１４１は、図３に示すように各仮想キャッシュ２１０における現在のヒット率とキャッシュサイズとの関係を表すグラフ３０１を作成する。次に、ＡＰＰ＃１グラフ予測部１４１は、各仮想キャッシュ２１０における一定時間前のヒット率とキャッシュサイズとの関係を表すグラフ３０２を作成する。次に、ＡＰＰ＃１グラフ予測部１４１は、グラフ３０１とグラフ３０２から線形外挿法によって一定時間の半分の時間後のヒット率とキャッシュサイズとの関係を表すグラフ３０３を予測する。ここで、一定時間をＴ秒として、一定時間の半分の時間を「Ｔ／２秒」という。この一定時間の半分の時間が、「所定時間」の一例にあたる。
【００４７】
より具体的には、ＡＰＰ＃１グラフ予測部１４１は、次の数式（１）を用いて各キャッシュサイズにおけるＴ／２秒後のヒット率の予測値を求める。
【００４８】
【数１】
2018112946.tif 000003
【００４９】
ここで、ＨＲＡ，Ｓは、「Ａ」というアプリケーションにおけるキャッシュサイズの全体サイズに対する割合がＳ％である仮想キャッシュのヒット率を表す。そして、ＨＲＡ，Ｓの後の括弧内はヒット率に対応する時刻を表す。例えば、ＨＲＡ，Ｓ（ｔ＝ｎｏｗ）は、現在のヒット率を表す。また、ＨＲＡ，Ｓ（ｔ＝ｎｏｗ＋Ｔ／２）は、Ｔ／２秒後のヒット率を表す。
【００５０】
その後、ＡＰＰ＃１グラフ予測部１４１は、Ｔ／２秒後のヒット率とキャッシュサイズとの関係を表すグラフ３０３を割当サイズ決定部１４へ出力する。
【００５１】
また、ＡＰＰ＃２グラフ予測部１４２も、ＡＰＰ＃１グラフ予測部１４１と同様にＴ／２秒後のヒット率とキャッシュサイズとの関係を表すグラフを予測する。そして、ＡＰＰ＃２グラフ予測部１４２は、Ｔ／２後のヒット率とキャッシュサイズとの関係を表すグラフを割当サイズ決定部１４へ出力する。このように、グラフ予測部１０４は、アプリケーション毎にＴ／２秒後のヒット率とキャッシュサイズとの関係を表すグラフを予測し割当サイズ決定部１４へ出力する。
【００５２】
図１に戻って説明を続ける。割当サイズ決定部１４は、アプリケーション毎のＴ／２秒後のヒット率とキャッシュサイズとの関係を表すグラフの入力をグラフ予測部１０４から受ける。ここで、割当サイズ決定部１４は、各アプリケーションのそれぞれに要求される最大ヒット率に対する目標割合を予め記憶する。最大ヒット率とは、キャッシュ１６の領域すべてを１つのアプリケーションが使用した場合のヒット率である。
【００５３】
割当サイズ決定部１４は、アプリケーション毎のＴ／２秒後のヒット率とキャッシュサイズとの関係を表すグラフを用いてアプリケーション毎の目標ヒット率を達成するためのキャッシュサイズの全体サイズに対する割合を算出する。例えば、図３を参照して、ＡＰＰ＃１の目標ヒット率を達成するためのキャッシュサイズの全体サイズに対する割合の算出について説明する。
【００５４】
割当サイズ決定部１４は、図３におけるグラフ３０３を用いて仮想キャッシュ２１０が全体サイズの１００％の場合のヒット率である最大ヒット率を算出する。図３では、点３０４が最大ヒット率を表す。そして、割当サイズ決定部１４は、最大ヒット率に予め記憶する目標割合を乗算してＡＰＰ＃１の目標ヒット率を算出する。例えば、最大ヒット率を「Ｒ」とし、ＡＰＰ＃１の目標割合を「ｐ」とした場合、割当サイズ決定部１４は、Ｒ×ｐとして目標ヒット率を算出する。図３では、点３０５が目標ヒット率を表す。
【００５５】
そして、割当サイズ決定部１４は、目標ヒット率を達成するための全体サイズに対する割合をグラフ３０３から求める。図３では、点３０７が、目標ヒット率を達成するための全体サイズに対する割合を表す。ここで、現在のＡＰＰ＃１に割り当てられたキャッシュサイズを点３０６で表される割合とすると、ＡＰＰ＃１に割り当てるキャッシュサイズを点３０６から点３０７へ変化させる、すなわちＳ％からＳｔ％へ変化させることで目標ヒット率が達成される。
【００５６】
図４は、複数のアプリケーションにおける目標ヒット率を達成するためのキャッシュサイズの割り当てを表す図である。例えば、第１アプリケーション及び第２アプリケーションを含む多数のアプリケーションがある場合で説明する。グラフ３１１は、グラフ予測部１０４により求められた第１アプリケーションのＴ／２秒後のヒット率とキャッシュサイズとの関係を表すグラフである。また、グラフ３１２は、グラフ予測部１０４により求められた第２アプリケーションのＴ／２秒後のヒット率とキャッシュサイズとの関係を表すグラフである。さらに、グラフ予測部１０４は、他のアプリケーションにも同様にＴ／２秒後のヒット率とキャッシュサイズとの関係を表すグラフを求める。
【００５７】
割当サイズ決定部１４は、第１アプリケーションの目標割合としてｐ＝０．５を記憶する。割当サイズ決定部１４は、最大ヒット率に０．５を乗算した値を第１アプリケーションの目標ヒット率とする。そして、割当サイズ決定部１４は、グラフ３１１を用いて、第１アプリケーションの目標ヒット率を達成するためのキャッシュサイズの全体サイズに対する割合をＳｔ１％と算出する。また、割当サイズ決定部１４は、第２アプリケーションの目標割合としてｐ＝０．７を記憶する。割当サイズ決定部１４は、最大ヒット率に０．７を乗算した値を第２アプリケーションの目標ヒット率とする。そして、割当サイズ決定部１４は、グラフ３１２を用いて、第２アプリケーションの目標ヒット率を達成するためのキャッシュサイズの全体サイズに対する割合をＳｔ２％と算出する。同様に、割当サイズ決定部１４は、他のアプリケーションについても目標割合から算出した目標ヒット率を達成するためのキャッシュサイズの全体サイズに対する割合を求める。このように、割当サイズ決定部１４は、アプリケーション毎に、目標ヒット率を達成するためのキャッシュサイズの全体サイズに対する割合を算出する。
【００５８】
次に、割当サイズ決定部１４は、キャッシュ１６の容量が全てのアプリケーションが目標ヒット率を達成するようにキャッシュサイズを割り当てた場合のキャッシュ容量以上か否かを判定する。以下では、キャッシュ１６の容量が全てのアプリケーションが目標ヒット率を達成するようにキャッシュを割り当てた場合のキャッシュ容量以上の場合を、「キャッシュ１６に十分な容量が存在する場合」という。
【００５９】
キャッシュ１６に十分な容量が存在する場合、割当サイズ決定部１４は、取得したアプリケーション毎の全体サイズに対する割合に応じたキャッシュサイズを全てのアプリケーションに割り当てる。次に、割当サイズ決定部１４は、割り当て後に残ったキャッシュ１６の領域を各アプリケーションに均等配分する。
【００６０】
これに対して、キャッシュ１６の容量が十分でない場合、割当サイズ決定部１４は、キャッシュ１６を各アプリケーションに均等配分する。次に、割当サイズ決定部１４は、均等配分した場合に、目標ヒット率を達成できるアプリケーションを特定する。そして、割当サイズ決定部１４は、特定したアプリケーションに対して、目標ヒット率を達成できるキャッシュサイズを割り当てる。ここで、特定したアプリケーションが目標ヒット率を達成できるキャッシュサイズは、均等配分した場合のキャッシュサイズより小さいため、キャッシュ１６の中に未割り当ての領域が残る。そこで、割当サイズ決定部１４は、残ったキャッシュ１６の領域を他のアプリケーションに均等配分する。割当サイズ決定部１４は、目標ヒット率を達成できるアプリケーションが存在しなくなるまで、目標ヒット率を達成可能なアプリケーションへの目標ヒット率を達成できるキャッシュサイズの割り当て及び他のアプリケーションへの均等配分を繰返す。このように分配することで、目標ヒット率を達成することが困難なアプリケーションであっても、均等配分の場合よりも大きいキャッシュサイズが割り当てられる。
【００６１】
その後、割当サイズ決定部１４は、各アプリケーションに割り当てたキャッシュサイズの情報をキャッシュ制御部１３へ出力する。この割当サイズ決定部１４が、「割当決定部」の一例にあたる。
【００６２】
次に、図５を参照して、関係予測部１０によるＴ／２秒後のヒット率を表すグラフの作成処理の流れについて説明する。図５は、関係予測部によるＴ／２秒後のヒット率を表すグラフの作成処理のフローチャートである。
【００６３】
ヒット率計算部１０２は、前回のヒット率の計算時刻からＴ秒経過したか否かを判定する（ステップＳ１０１）。
【００６４】
Ｔ秒経過していない場合（ステップＳ１０１：否定）、ヒット率計算部１０２は、Ｔ秒経過するまで待機する。
【００６５】
これに対して、Ｔ秒経過した場合（ステップＳ１０１：肯定）、ヒット率計算部１０２は、アプリケーション毎にサイズの異なる各ＡＰＰ用仮想キャッシュ１０１におけるヒット率を算出する（ステップＳ１０２）。そして、ヒット率計算部１０２は、算出したアプリケーション毎の各ＡＰＰ用仮想キャッシュ１０１におけるヒット率をヒット率保存部１０３及びグラフ予測部１０４へ出力する。
【００６６】
ヒット率保存部１０３は、アプリケーション毎の各ＡＰＰ用仮想キャッシュ１０１におけるヒット率の入力をヒット率計算部１０２から受ける。そして、ヒット率保存部１０３は、アプリケーション毎の各ＡＰＰ用仮想キャッシュ１０１におけるＴ秒前のヒット率をグラフ予測部１０４へ出力する。次に、ヒット率保存部１０３は、ヒット率計算部１０２から取得したアプリケーション毎の各ＡＰＰ用仮想キャッシュ１０１における現在のヒット率を保存する（ステップＳ１０３）。
【００６７】
グラフ予測部１０４は、アプリケーション毎の各ＡＰＰ用仮想キャッシュ１０１における現在のヒット率の入力をヒット率計算部１０２から受ける。また、グラフ予測部１０４は、アプリケーション毎の各ＡＰＰ用仮想キャッシュ１０１におけるＴ秒前のヒット率の入力をヒット率保存部１０３から受ける。そして、グラフ予測部１０４は、取得した情報を用いてアプリケーション毎のＴ／２秒後のヒット率を計算する（ステップＳ１０４）。
【００６８】
次に、グラフ予測部１０４は、算出したアプリケーション毎のＴ／２秒後のヒット率からアプリケーション毎のＴ／２秒後のヒット率とキャッシュサイズとの関係を表すグラフを作成する（ステップＳ１０５）。そして、グラフ予測部１０４は、作成したアプリケーション毎のＴ／２秒後のヒット率とキャッシュサイズとの関係を表すグラフを割当サイズ決定部１４へ出力する。
【００６９】
次に、ヒット率計算部１０２は、自己が有するタイマをリセットする（ステップＳ１０６）。そして、関係予測部１０は、操作者からのキャッシュ割当処理の停止の指示の有無により、動作を停止するか否かを判定する（ステップＳ１０７）。
【００７０】
動作停止しないと判定した場合（ステップＳ１０７：否定）、関係予測部１０は、ステップＳ１０１へもどる。これに対して、動作停止すると判定した場合（ステップＳ１０７：肯定）、関係予測部１０は、グラフの作成の処理を終了する。
【００７１】
次に、図６を参照して、本実施例に係る割当サイズ決定部１４による各アプリケーションに対して割り当てるキャッシュサイズの決定処理の流れについて説明する。図６は、実施例１に係る割当サイズ決定部による各アプリケーションに対して割り当てるキャッシュサイズの決定処理のフローチャートである。
【００７２】
割当サイズ決定部１４は、アプリケーション毎のＴ／２秒後のヒット率とキャッシュサイズとの関係を表すグラフを関係予測部１０から取得する（ステップＳ２０１）。
【００７３】
次に、割当サイズ決定部１４は、アプリケーション毎に目標ヒット率を達成するためのキャッシュサイズを算出する（ステップＳ２０２）。
【００７４】
次に、割当サイズ決定部１４は、キャッシュ１６に十分な容量が存在するか否かを判定する（ステップＳ２０３）。
【００７５】
キャッシュ１６に十分な容量が存在する場合（ステップＳ２０３：肯定）、割当サイズ決定部１４は、各アプリケーションに目標ヒット率が達成可能なキャッシュサイズを割り当てる（ステップＳ２０４）。
【００７６】
次に、割当サイズ決定部１４は、余剰キャッシュを各アプリケーションに均等配分し割り当て（ステップＳ２０５）、ステップＳ２１０へ進む。
【００７７】
これに対して、キャッシュ１６に十分な容量が存在しない場合（ステップＳ２０３：否定）、割当サイズ決定部１４は、各アプリケーションにキャッシュ１６の全体を均等に配分し割り当てる（ステップＳ２０６）。
【００７８】
次に、割当サイズ決定部１４は、均等配分した状態で、目標ヒット率を達成するアプリケーションがあるか否かを判定する（ステップＳ２０７）。目標ヒット率を達成するアプリケーションがある場合（ステップＳ２０７：肯定）、割当サイズ決定部１４は、目標ヒット率を達成可能なアプリケーションに目標ヒット率が達成可能なキャッシュサイズを割り当てる（ステップＳ２０８）。
【００７９】
次に、割当サイズ決定部１４は、目標ヒット率が達成可能なキャッシュサイズを割り当てた後の余剰キャッシュを目標ヒット率を達成していない他のアプリケーションに均等に割り当て（ステップＳ２０９）、ステップＳ２０７へ戻る。
【００８０】
これに対して、目標ヒット率を達成するアプリケーションがない場合（ステップＳ２０７:否定）、割当サイズ決定部１４は、ステップＳ２１０へ進む。
【００８１】
割当サイズ決定部１４は、操作者からのキャッシュ割当処理の停止の指示の有無により、動作を停止するか否かを判定する（ステップＳ２１０）。
【００８２】
動作停止しないと判定した場合（ステップＳ２１０：否定）、割当サイズ決定部１４は、ステップＳ２０１へもどる。これに対して、動作停止すると判定した場合（ステップＳ２１０：肯定）、割当サイズ決定部１４は、キャッシュサイズの割当処理を終了する。
【００８３】
次に、図７を参照して、キャッシュ制御部１３によるキャッシュ領域の割当処理の流れについて説明する。図７は、キャッシュ制御部によるキャッシュ領域の割当処理のフローチャートである。
【００８４】
キャッシュ制御部１３は、アプリケーション毎の割り当てられたキャッシュサイズの入力を割当サイズ決定部１４から受ける。そして、キャッシュ制御部１３は、新サイズ管理テーブルの情報を旧サイズ管理テーブルへ移行し、新サイズ管理テーブルに新たに取得したアプリケーション毎の割り当てられたキャッシュサイズを登録し更新する（ステップＳ３０１）。
【００８５】
次に、キャッシュ制御部１３は、新サイズが旧サイズ未満のアプリケーションがあるか否かを判定する（ステップＳ３０２）。
【００８６】
新サイズが旧サイズ未満のアプリケーションがある場合（ステップＳ３０２：肯定）、キャッシュ制御部１３は、新サイズが旧サイズ未満のアプリケーションを１つ選択する。次に、キャッシュ制御部１３は、新サイズと旧サイズとの差分にあたるデータブロックを選択したアプリケーションに割り当てられているキャッシュ領域から選択し一時領域に保存する（ステップＳ３０３）。
【００８７】
次に、キャッシュ制御部１３は、選択したアプリケーションのキャッシュサイズを新サイズに更新し（ステップＳ３０４）、ステップＳ３０２へ戻る。
【００８８】
これに対して、新サイズが旧サイズ未満のアプリケーションがない場合（ステップＳ３０２：否定）、キャッシュ制御部１３は、新サイズが旧サイズ以上のアプリケーションがあるか否かを判定する（ステップＳ３０５）。
【００８９】
新サイズが旧サイズ以上のアプリケーションがある場合（ステップＳ３０５：肯定）、キャッシュ制御部１３は、新サイズが旧サイズ以上のアプリケーションを１つ選択する。次に、キャッシュ制御部１３は、選択したアプリケーションに対応する一時領域に存在する新サイズと旧サイズとの差分にあたるデータブロックを選択する。そして、キャッシュ制御部１３は、選択したデータブロックを選択したアプリケーションに新たに割り当てるキャッシュ領域に格納する（ステップＳ３０６）。
【００９０】
次に、キャッシュ制御部１３は、選択したアプリケーションのキャッシュサイズを新サイズに更新し（ステップＳ３０７）、ステップＳ３０５へ戻る。
【００９１】
これに対して、新サイズが旧サイズ以上のアプリケーションがない場合（ステップＳ３０５：否定）、キャッシュ制御部１３は、キャッシュ領域の割り当て処理を終了する。
【００９２】
以上に説明したように、本実施例に係るサーバは、アプリケーション毎にキャッシュサイズとヒット率との関係を予測し、予測結果を用いて各アプリケーションにキャッシュサイズを割り当てる。これにより、ヒット率とキャッシュサイズとの関係における将来の変化を考慮してキャッシュサイズを割り当てることが可能となり、目標ヒット率を達成するための正確なサイズ調整を行うことができる。したがって、サーバの処理能力を向上させることができる。
【実施例２】
【００９３】
次に、実施例２について説明する。本実施例に係る情報処理装置も図１及び２で表される。本実施例に係る情報処理装置は、Ｔ／２秒後のグラフを用いた各アプリケーションへ割り当てるキャッシュサイズの算出方法が実施例１と異なる。以下では、各部における実施例１と同様の機能については説明を省略する。
【００９４】
割当サイズ決定部１４は、関係予測部１０から取得したアプリケーション毎のＴ／２秒後のヒット率とキャッシュサイズとの関係を表すグラフから、アプリケーション毎に目標ヒット率を達成するためのキャッシュサイズを算出する。次に、割当サイズ決定部１４は、キャッシュ１６に十分な容量が存在するか否かを判定する。
【００９５】
キャッシュ１６に十分な容量が存在する場合、割当サイズ決定部１４は、各アプリケーションに目標ヒット率が達成可能なキャッシュサイズを割り当てる。次に、割当サイズ決定部１４は、目標ヒット率が達成可能なキャッシュサイズを各アプリケーションに割り当てた後に残っている余剰キャッシュを求める。そして、割当サイズ決定部１４は、余剰キャッシュを各アプリケーションに均等配分した場合のヒット率の増加率をアプリケーション毎のＴ／２秒後のヒット率とキャッシュサイズとの関係を表すグラフから求める。
【００９６】
具体的には、割当サイズ決定部１４は、ヒット率の増加率を求めるアプリケーションを選択する。そして、割当サイズ決定部１４は、目標ヒット率が達成可能なキャッシュサイズを選択したアプリケーションに割り当てた場合のヒット率をＴ／２秒後のヒット率とキャッシュサイズとの関係を表すグラフから取得する。さらに、割当サイズ決定部１４は、余剰キャッシュを各アプリケーションに均等配分した場合の選択したアプリケーションのヒット率をＴ／２秒後のヒット率とキャッシュサイズとの関係を表すグラフから取得する。次に、割当サイズ決定部１４は、目標ヒット率が達成可能なキャッシュサイズを選択したアプリケーションに割り当てた場合のヒット率と余剰キャッシュを各アプリケーションに均等配分した場合の選択したアプリケーションのヒット率との差を算出する。そして、割当サイズ決定部１４は、余剰キャッシュを各アプリケーションに均等配分したときの配分したキャッシュサイズで目標ヒット率が達成可能な差分を除算してヒット率の増加率を算出する。割当サイズ決定部１４は、全てのアプリケーションについて同様にヒット率の増加率を算出する。
【００９７】
そして、割当サイズ決定部１４は、余剰キャッシュをヒット率増加率の高い順にアプリケーションに優先的に割り当てる。例えば、アプリケーション＃ｉ（ｉ＝１，２，・・・）がサーバ１内で動作する場合で説明する。割当サイズ決定部１４は、次の数式（２）を用いて余剰キャッシュの中から各アプリに割り当てるキャッシュサイズを決定する。
【００９８】
【数２】
2018112946.tif 000004
【００９９】
ここで、ΔＳｉは、アプリケーション＃ｉに余剰キャッシュから割り当てるキャッシュサイズである。また、Δｈｉは、アプリケーション＃ｉのヒット率増加率である。また、
ΔＳは、余剰キャッシュのサイズである。
【０１００】
そして、割当サイズ決定部１４は、余剰キャッシュからの各アプリケーションに割り当てるキャッシュサイズを目標ヒット率が達成可能なキャッシュサイズに加算したキャッシュサイズを求める。そして、割当サイズ決定部１４は、求めたキャッシュサイズを各アプリケーションへのキャッシュサイズの割当情報としてキャッシュ制御部１３へ出力する。
【０１０１】
これに対して、キャッシュ１６に十分な容量が存在しない場合、割当サイズ決定部１４は、各アプリケーションにキャッシュ１６を均等配分する。次に、割当サイズ決定部１４は、キャッシュ１６を均等配分した場合に目標ヒット率を達成可能なアプリケーションがあるか否かを判定する。
【０１０２】
目標ヒット率を達成可能なアプリケーションがある場合、割当サイズ決定部１４は、目標ヒット率を達成可能なアプリケーションに目標ヒット率が達成可能なキャッシュサイズを割り当てる。この場合、均等配分した場合のキャッシュサイズよりも、目標ヒット率が達成可能なキャッシュサイズの方が小さいため、余剰キャッシュが発生する。
【０１０３】
そこで、割当サイズ決定部１４は、余剰キャッシュをヒット率の増加率の高いアプリケーションに優先的に割り当てる。例えば、割当サイズ決定部１４は、各アプリケーションのヒット率の増加率を算出し、数式（２）を用いて各アプリケーションに割り当てるキャッシュサイズを決定する。
【０１０４】
その後、割当サイズ決定部１４は、目標ヒット率を達成可能なアプリケーションの特定、目標ヒット率を達成可能なキャッシュサイズの割り当て、余剰サイズの均等配分を、目標ヒット率を達成可能なアプリケーションが無くなるまで繰り返す。
【０１０５】
そして、目標ヒット率を達成可能なアプリケーションが無くなると、割当サイズ決定部１４は、その状態での各アプリケーションへのキャッシュサイズの割当情報をキャッシュ制御部１３へ出力する。
【０１０６】
次に、図８を参照して、本実施例に係る割当サイズ決定部１４による各アプリケーションに対して割り当てるキャッシュサイズの決定処理の流れについて説明する。図８は、実施例２に係る割当サイズ決定部による各アプリケーションに対して割り当てるキャッシュサイズの決定処理のフローチャートである。
【０１０７】
割当サイズ決定部１４は、アプリケーション毎のＴ／２秒後のヒット率とキャッシュサイズとの関係を表すグラフを関係予測部１０から取得する（ステップＳ４０１）。
【０１０８】
次に、割当サイズ決定部１４は、アプリケーション毎に目標ヒット率を達成するためのキャッシュサイズを算出する（ステップＳ４０２）。
【０１０９】
次に、割当サイズ決定部１４は、キャッシュ１６に十分な容量が存在するか否かを判定する（ステップＳ４０３）。
【０１１０】
キャッシュ１６に十分な容量が存在する場合（ステップＳ４０３：肯定）、割当サイズ決定部１４は、各アプリケーションに目標ヒット率が達成可能なキャッシュサイズを割り当てる（ステップＳ４０４）。
【０１１１】
次に、割当サイズ決定部１４は、各アプリケーションについてヒット率の増加率を算出する（ステップＳ４０５）。
【０１１２】
次に、割当サイズ決定部１４は、余剰キャッシュをヒット率の増加率が高いアプリケーションに優先的に割り当て（ステップＳ４０６）、ステップＳ４１２へ進む。
【０１１３】
これに対して、キャッシュ１６に十分な容量が存在しない場合（ステップＳ４０３：否定）、割当サイズ決定部１４は、各アプリケーションにキャッシュ１６の全体を均等に配分し割り当てる（ステップＳ４０７）。
【０１１４】
次に、割当サイズ決定部１４は、均等配分した状態で、目標ヒット率を達成するアプリケーションがあるか否かを判定する（ステップＳ４０８）。目標ヒット率を達成するアプリケーションがある場合（ステップＳ４０８：肯定）、割当サイズ決定部１４は、目標ヒット率を達成可能なアプリケーションに目標ヒット率を達成可能なキャッシュサイズを割り当てる（ステップＳ４０９）。
【０１１５】
次に、割当サイズ決定部１４は、目標ヒット率が未達成の各アプリケーションについて、余剰キャッシュを均等配分した場合のヒット率の増加率を算出する（ステップＳ４１０）。
【０１１６】
そして、割当サイズ決定部１４は、余剰キャッシュをヒット率の増加率が高いアプリケーションに優先的に割り当て（ステップＳ４１１）、ステップＳ４０８へ戻る。
【０１１７】
これに対して、目標ヒット率を達成するアプリケーションがない場合（ステップＳ４０８:否定）、割当サイズ決定部１４は、ステップＳ４１２へ進む。
【０１１８】
割当サイズ決定部１４は、操作者からのキャッシュ割当処理の停止の指示の有無により、動作を停止するか否かを判定する（ステップＳ４１２）。
【０１１９】
動作停止しないと判定した場合（ステップＳ４１２：否定）、割当サイズ決定部１４は、ステップＳ４０１へもどる。これに対して、動作停止すると判定した場合（ステップＳ４１２：肯定）、割当サイズ決定部１４は、キャッシュサイズの割当処理を終了する。
【０１２０】
以上に説明したように、本実施例に係るサーバは、ヒット率の増加率が高いアプリケーションに対して優先的にキャッシュ領域を割り当てる。これにより、より全体的なヒット率を向上させることができ、より効率的なキャッシュサイズの割り当てを行うことができる。したがって、サーバの処理能力をより向上させることができる。
【０１２１】
（ハードウェア構成）
図９は、サーバのハードウェア構成の一例を表す図である。各実施例で説明したサーバ１は、図９に示すように、ＣＰＵ（Central  Processing  Unit）９１、メモリ９２及び複数のＨＤＤ（Hard  Disk  Drive）９３を有する。
【０１２２】
ＨＤＤ９３は、図１に例示した、補助記憶部１５の機能を実現する。また、ＨＤＤ９３は、例えば、図１に例示した、演算処理部１１、関係予測部１０、ＩＯ受付部１２、キャッシュ制御部１３及び割当サイズ決定部１４の機能を実現するプログラムを含む各種プログラムを有する。
【０１２３】
メモリ９２は、図１に例示したキャッシュ１６の機能を実現する。また、メモリ９２は、ＡＰＰ用仮想キャッシュ１１０の機能を実現する。さらに、メモリ９２は、一時記憶領域の機能も有する。
【０１２４】
ＣＰＵ９１は、ＨＤＤ９３から図１に例示した、演算処理部１１、関係予測部１０、ＩＯ受付部１２、キャッシュ制御部１３及び割当サイズ決定部１４の機能を実現するプログラムを含む各種プログラムを読み出し、メモリ９２に展開して実行する。これにより、ＣＰＵ９１及びメモリ９２は、演算処理部１１、関係予測部１０、ＩＯ受付部１２、キャッシュ制御部１３及び割当サイズ決定部１４の機能を実現する。
【０１２５】
さらに、各実施例で説明した機能は、仮想化統合環境（Virtual  Converged  Perform）にも適用可能である。仮想化統合環境とは、例えば、物理的なサーバとストレージとが一体となった構成を有する情報処理システムであり、１台のサーバで複数の仮想マシンが動作する。そして、仮想化統合環境では、複数の仮想マシンを統合的に制御し、１台の物理的なサーバ上で動作させるための基盤ソフトウェアであるハイパーバイザが動作する。また、各仮想マシンには、それぞれ仮想ディスク又は仮想ファイルが割り当てられる。
【０１２６】
各実施例におけるサーバ１を仮想化統合環境とし、ＯＳをハイパーバイザとし、アプリケーションを仮想マシンとして置き換えることで、各実施例で説明した機能を仮想化統合環境で実現することができる。その場合、アプリケーションのＩＤは、仮想マシンのＩＤにあたり、ファイルは仮想ディスク又は仮想ファイルにあたる。
【符号の説明】
【０１２７】
１  サーバ
１０  関係予測部
１１  演算処理部
１２  ＩＯ受付部
１３  キャッシュ制御部
１４  割当サイズ決定部
１５  補助記憶部
１６  キャッシュ
１０１  ＡＰＰ用仮想キャッシュ
１０２  ヒット率計算部
１０３  ヒット率保存部
１０４  グラフ予測部
１１１  ＡＰＰ＃１の仮想キャッシュ
１１２  ＡＰＰ＃２の仮想キャッシュ
２１０〜２１３  仮想キャッシュ
２２０〜２２３  仮想キャッシュ
１２１  ＡＰＰ＃１ヒット率計算部
１２２  ＡＰＰ＃２ヒット率計算部
１３１  ＡＰＰ＃１ヒット率保存部
１３２  ＡＰＰ＃２ヒット率保存部
１４１  ＡＰＰ＃１グラフ予測部
１４２  ＡＰＰ＃２グラフ予測部
【図１】
2018112946.tif 000005
【図２】
2018112946.tif 000006
【図３】
2018112946.tif 000007
【図４】
2018112946.tif 000008
【図５】
2018112946.tif 000009
【図６】
2018112946.tif 000010
【図７】
2018112946.tif 000011
【図８】
2018112946.tif 000012
【図９】
2018112946.tif 000013