(57)【要約】【課題】  本願発明は、最適化を行った後に負荷が変化するような環境において、当該負荷の変化を鑑みた環境条件をデータ処理の実行中に再設定することができる情報処理装置、情報処理方法、及び情報処理プログラムを提供することを１つの目的とする。【解決手段】  本願発明における情報処理装置は、実行環境において所定の環境条件により一連の処理を実行する実行部と、実行環境の負荷の値を一定時間毎に取得する取得部と、前記一連の処理において、前記取得部が取得した負荷の値を用いて、将来の負荷の値を予測する予測部と、前記予測部が予測した結果を用いて前記一連の処理の実行中に前記環境条件を再設定する設定部と、を備える。【選択図】      図１
2019168808.tif 000002
【特許請求の範囲】
【請求項１】
実行環境において所定の環境条件により一連の処理を実行する実行部と、
実行環境の負荷の値を一定時間毎に取得する取得部と、
前記一連の処理において、前記取得部が取得した負荷の値を用いて、将来の負荷の値を予測する予測部と、
前記予測部が予測した結果を用いて前記一連の処理の実行中に前記環境条件を再設定する設定部と、
を備える情報処理装置。
【請求項２】
前記予測部は、前記一連の処理において、前記取得部が取得した２つの負荷の値を用いて、将来の負荷の値を予測する、
請求項１に記載の情報処理装置。
【請求項３】
前記予測部は、前記一連の処理において、前記取得部が取得した最新の負荷の値と前記取得部が前回取得した負荷の値とを用いて、前記取得部が次に取得する負荷の値を予測する、
請求項１又は２に記載の情報処理装置。
【請求項４】
前記予測部は、前記一連の処理において、前記取得部が取得した２つの負荷の値の変化量を用いて、将来の負荷の値を予測する、
請求項２又は３に記載の情報処理装置。
【請求項５】
負荷の値と前記環境条件とが対応付けられたテーブルを更に備え、
前記設定部は、前記取得部が取得した負荷の値と将来の負荷の値と前記テーブルとを用いて前記環境条件を選択し、前記一連の処理の実行中に当該環境条件を用いて再設定する
請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
前記テーブルにおける負荷の値は範囲情報によって区分され、
前記設定部は、前記取得部が取得した負荷の値と将来の負荷の値とが示す範囲に最も適合する前記範囲情報を特定し、当該範囲情報に対応付けられた前記環境条件を選択し、前記一連の処理の実行中に当該環境条件を用いて再設定する
請求項５に記載の情報処理装置。
【請求項７】
実行環境において所定の環境条件により一連の処理を実行し、
実行環境の負荷の値を一定時間毎に取得し、
前記一連の処理において、取得した負荷の値を用いて、将来の負荷の値を予測し、
予測した結果を用いて前記一連の処理の実行中に前記環境条件を再設定する、
情報処理方法。
【請求項８】
実行環境において所定の環境条件により一連の処理を実行し、
実行環境の負荷の値を一定時間毎に取得し、
前記一連の処理において、取得した負荷の値を用いて、将来の負荷の値を予測し、
予測した結果を用いて前記一連の処理の実行中に前記環境条件を再設定する、
処理をコンピュータに実行させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本願発明は、情報処理装置、情報処理方法、及び情報処理プログラムに関し、特に、データ処理を行う情報処理装置、システム、方法、及びプログラムに関する。
【背景技術】
【０００２】
従来、バッチ処理等のデータ処理速度を適切に行うためには、使用メモリサイズ、キャッシュサイズ、作業ファイル数、使用ディスク、又はアルゴリズム等を、ユーザーが指定し、調整をする必要があった。また、ユーザーが使用するマシンの環境（ＣＰＵ，ハードディスク、又はメモリ等）が複数ある場合、１つの環境の性能を向上させる設定が他の環境でも有効であるとは限らないため、ユーザーは使用するマシンの環境毎に設定の調整が求められていた。
【０００３】
特許文献１には、ひとつの計算機システム内に複数の処理ユニットを擁し、各処理ユニットにプログラムの実行局面に応じた役割を分担させる技術が開示されている。具体的には、プログラムの挙動を観測しプロファイル情報を収集・解析する観測スレッドが求めたプロファイル結果を用いて、最適化スレッドがより適したプログラム（オブジェクトコード）および処理形態を求める。その結果、実行効率が向上すると判断されれば、資源管理スレッドがシステムをより実行に適した状態に変更する。
【０００４】
特許文献２には、分析部が様々な入力ファイル条件、環境条件における処理時間の実測を行い入力ファイル条件と環境条件との最適な組合せを学習し、ソート部は入力ファイル条件が与えられたとき学習結果を用いてソート時間が最短となるような環境条件を決定する技術が開示されている。
【０００５】
特許文献３には、実行環境における実際の負荷状態を加味して、所要時間が最短となる処理設定を検索する技術が開示されている。具体的には、負荷及び処理設定の複数の組合せについて、実行環境に擬似的に発生させた所定の負荷がかかった状態で所定の処理設定により特定の処理を試行し、各試行において処理に要した所要時間、負荷情報及び処理設定を関連付けて記憶しておく。そして、実運用時において、実行環境における負荷情報を取得し、特定の処理の実行時に、取得した負荷情報に関連付けられた処理設定のうち、所定の条件、例えば最短である所要時間に関連付けられた処理設定を検索する。また、処理の実行前後に複数回負荷情報を取得し、負荷の平均値を算出する技術も開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００５−１９０４３０号公報
【特許文献２】特開２０１５−１０２８８７号公報
【特許文献３】特開２０１７−０６８５６８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ところで、バッチ処理等のデータ処理では、大規模なデータ処理に伴い多くの時間が費やされることがある。そのため、データ処理の実行中に実行環境における負荷が変化することで、適切なデータ処理を行うための環境条件も変化するおそれがある。
【０００８】
特許文献１に開示された技術は、観測スレッドがプログラムの挙動を観測し、観測結果に応じて最適化を行う。しかし、観測スレッドが観測した時点における環境条件の最適化を行ったとしても、観測後に負荷が変化した場合は、データ処理において適切な環境条件も変化するおそれがある。このように、特許文献１に開示された技術では、挙動を観測した時点における最適化を行うため、最適化を行った後に負荷が変化するような環境においては、すぐに適切な環境条件でなくなってしまう可能性がある。
【０００９】
特許文献２及び３に開示された技術は、データ処理の実行開始時に環境条件を決定するものであって、データ処理の実行中に環境条件を再設定することを行っていない。
【００１０】
本願発明は、上記課題を解決し、最適化を行った後に負荷が変化するような環境において、当該負荷の変化を鑑みた環境条件をデータ処理の実行中に再設定することができる情報処理装置、情報処理方法、及び情報処理プログラムを提供する。
【課題を解決するための手段】
【００１１】
本願発明における情報処理装置は、実行環境において所定の環境条件により一連の処理を実行する実行部と、実行環境の負荷の値を一定時間毎に取得する取得部と、前記一連の処理において、前記取得部が取得した負荷の値を用いて、将来の負荷の値を予測する予測部と、前記予測部が予測した結果を用いて前記一連の処理の実行中に前記環境条件を再設定する設定部と、を備える。
【００１２】
本願発明における情報処理方法は、実行環境において所定の環境条件により一連の処理を実行し、実行環境の負荷の値を一定時間毎に取得し、前記一連の処理において、取得した負荷の値を用いて、将来の負荷の値を予測し、予測した結果を用いて前記一連の処理の実行中に前記環境条件を再設定する。
【００１３】
本願発明におけるコンピュータプログラムは、実行環境において所定の環境条件により一連の処理を実行し、実行環境の負荷の値を一定時間毎に取得し、前記一連の処理において、取得した負荷の値を用いて、将来の負荷の値を予測し、予測した結果を用いて前記一連の処理の実行中に前記環境条件を再設定する、処理をコンピュータに実行させる。
【発明の効果】
【００１４】
本願発明によれば、最適化を行った後に負荷が変化するような環境において、当該負荷の変化を鑑みた環境条件をデータ処理の実行中に再設定することができる。
【図面の簡単な説明】
【００１５】
【図１】情報処理装置の構成を示す図である。
【図２】情報処理装置の動作を示すフローチャートである。
【図３】情報処理システム１００の構成を示す図である。
【図４】試行段階における処理の動作を示すフローチャートである。
【図５】実運用段階における処理の動作を示すフローチャートである。
【図６】環境条件テーブル５０の具体例を示す図である。
【図７】本願発明を実現するコンピュータの一例を示すブロック図である。
【発明を実施するための形態】
【００１６】
＜第１の実施形態＞
本願発明の第１の実施形態を、図面を参照して説明する。図１は、第１の実施形態における、情報処理装置１の構成を示す図である。
【００１７】
［構成］
最初に、情報処理装置１の構成について説明する。情報処理装置１は、実行部２と、取得部３と、予測部４と、設定部５とを有する。
【００１８】
実行部２は、実行環境において所定の環境条件により一連の処理を実行する。実行環境とは、例えば、プロセッサ、メモリ、ハードディスク等のリソースを有する計算機等を所定の組合せで形成された、実行部２が処理を実行する際の環境を示す。実行部２が実行する処理とは、例えば、バッチ処理、ソート処理、又はマージ処理等が挙げられる。実行部２が実行する一連の処理とは、上記したそれぞれの処理について、１つのまとまった処理として実行される処理のことである。
【００１９】
環境条件とは、処理を実行する際に指定するコマンドオプションやパラメータ等の環境を示す情報である。環境条件の具体例としては、メモリ使用量、ディスク上の入力配置、作業ファイル配置、出力ファイル配置、使用ディスク、バッチアルゴリズム、及びソートアルゴリズム等が挙げられる。
【００２０】
ディスク上の入力配置、作業ファイル配置、出力ファイル配置とは、例えば、ファイルの保存先のディレクトリパス等である。特に、該当のディレクトリが存在するディスクドライブが内蔵か外付けか等により処理のＩ／Ｏに影響がある。例えば、入力、作業又は出力のファイル配置のドライブが異なる場合には、それぞれのＩ／Ｏが干渉しないため、処理が速くなる可能性がある。このように、実行部２は、データ処理において適切な環境条件で処理を行うことで、高速な処理を行うことが可能となる。
【００２１】
なお、環境条件は、１つの要件だけが指定されても良く、複数の要件が同時に指定されても良い。
【００２２】
なお、適切な環境条件とは、データ処理速度が最速となる環境条件でも良いし、データ処理効率が最も良い環境条件でも良いし、データ処理に要する時間が最短となる環境条件でも良い。
【００２３】
取得部３は、一連の処理において、実行環境の負荷の値を一定時間毎に取得する。負荷の値とは、例えば、ＣＰＵの使用率、メモリの使用率、ハードディスクの使用率等が挙げられる。
【００２４】
予測部４は、一連の処理において、取得部３が取得した負荷の値を用いて、将来の負荷の値を予測する。将来の負荷の値とは、一連の処理において、取得部３が将来取得する負荷の値のことである。
【００２５】
設定部５は、予測部４が予測した結果を用いて、一連の処理の実行中に、環境条件を再設定する。
【００２６】
［動作］
第１の実施形態の動作を、図２を用いて説明する。
【００２７】
図２は、本願発明における情報処理装置１の動作を示すフローチャートである。
【００２８】
実行部２は、実行環境において所定の環境条件により一連の処理を実行する（Ｓ１）。
【００２９】
取得部３は、一連の処理において、実行環境の負荷の値を一定時間毎に取得する（Ｓ２）。
【００３０】
予測部４は、一連の処理において、取得部３が取得した負荷の値を用いて、将来の負荷の値を予測する（Ｓ３）。
【００３１】
設定部５は、予測部４が予測した結果を用いて、一連の処理の実行中に、環境条件を再設定する（Ｓ４）。
【００３２】
これにより、本願発明における情報処理装置１は、最適化を行った後に負荷が変化するような環境において、当該負荷の変化を鑑みた環境条件をデータ処理の実行中に再設定することができる。
【００３３】
＜第２の実施形態＞
本願発明の第２の実施形態を、図面を参照して説明する。図３は、第２の実施形態における、情報処理システム１００の構成を示す図である。
【００３４】
［構成］
最初に、情報処理システム１００の構成について説明する。
【００３５】
情報処理システム１００は、処理対象データを記録した入力ファイルを入力し、当該データを対象として処理を行うシステムである。情報処理システム１００は、試行段階及び実運用段階の処理を行う。
【００３６】
第２の実施形態では、データ処理の具体例として、バッチ処理を例に用いて説明を行う。
【００３７】
試行段階の処理とは、擬似的に負荷を発生させた状態でバッチ処理を試行し、各試行について取得された情報を記録するものである。
【００３８】
実運用段階の処理とは、所定の環境条件においてバッチ処理を実行するものである。
【００３９】
なお、施行段階の処理に関する構成及び動作は、例えば、特開２０１７−６８５６８に開示された技術を参照して行っても良い。従って、特開２０１７−６８５６８に開示された技術と重複する説明については省略する。しかし、本願発明における試行段階の処理は、特開２０１７−６８５６８に開示された技術に限られるものではない。
【００４０】
情報処理システム１００は、入力部１０と、情報処理装置２０と、記録部３０と、出力部４０と、を有する。
【００４１】
入力部１０は、利用者から、入力ファイル条件、負荷の値、及び環境条件を受け付ける。入力ファイル条件とは、例えば、入力ファイルの数、サイズ、ファイル形式、レコードの数、最大レコード長、平均レコード長、キーの数、同値キーの有無、同値キーの偏り、又はデータの並び等が挙げられる。
【００４２】
情報処理装置２０は、分析部２１と、負荷発生部２２と、実行部２３と、取得部２４と、予測部２５と、設定部２６と、を有する。
【００４３】
分析部２１は、試行段階において、入力部１０から入力された入力ファイル条件、負荷の値、及び環境条件の組合せに基づき、バッチ処理を試行する。この時、分析部２１は、後述する負荷発生部２２が指定された負荷の値となるような負荷を発生させた状態で、バッチ処理を試行する。
【００４４】
分析部２１は、入力部１０から複数の組合せを入力された場合、当該複数の組合せのそれぞれについて、個別にバッチ処理を試行する。分析部２１は、当該試行を行った結果を用いて、バッチ処理に適切な環境条件を分析する。分析部２１は、例えば、バッチ処理を最短で行うための環境条件を分析したい場合、特定の入力ファイル条件及び特定の負荷の値におけるバッチ処理を様々な環境条件で試行を行う。更に、分析部２１は、当該試行に費やされた所要時間を実測することで、バッチ処理を最短で行うための環境条件を特定することが可能である。
【００４５】
分析部２１は、当該分析の結果を記録部３０に記録する。この時、分析部２１は、入力ファイル条件と、負荷の値と、入力ファイル条件と負荷の値との組合せに対してバッチ処理速度が最速の環境条件と、を、試行段階における処理の情報として記録部３０に記録する。
【００４６】
負荷発生部２２は、試行段階において、指定された負荷の値に基づいて負荷を発生させる。例えば、負荷の値が、実行環境のコンピュータにおけるメモリ使用率である場合、負荷発生部２２は、指定されたメモリ使用率に応じてメモリを使用するプログラムモジュールである。特に、負荷発生部２２は、指定された負荷の値となるように、擬似的に負荷を発生させる。
【００４７】
具体的に、負荷発生部２２は、現在のメモリ使用率が１０％のとき、メモリ使用率として８０％が指定されると、「８０％−現在のメモリ使用率１０％＝７０％」のメモリを使用するように任意の処理をループし続けて７０％のメモリを占有させる。そのため、この状態であれば、分析部２１は、現在のメモリ使用率が１０％であっても、メモリ使用率が８０％の負荷が発生した状態で処理を試行することができる。なお、現在のメモリ使用率とは、バッチ処理及び負荷発生部２２による処理以外の処理により使用されるメモリを示す。
【００４８】
実行部２３は、実運用段階におけるバッチ処理開始時において、入力部１０から入力ファイル条件を受け付けると、負荷の値を取得し、当該入力ファイル条件及び負荷の値を満たす条件のうち、バッチ処理に適切な環境条件を記録部３０から検索する。実行部２３は、検索された環境条件を用いて一連のバッチ処理を開始する。
【００４９】
実行部２３は、入力部１０から入力ファイル条件を受け付けると、負荷の値を取得する、と説明したが、負荷の値を取得する方法は、実行環境における負荷の値を取得可能であればどのような方法を用いても良い。
【００５０】
例えば、実行部２３は、記録部３０に過去のバッチ処理における負荷の値が記録されている場合、当該負荷の値を記録部３０から取得しても良い。なお、実行部２３は、過去のバッチ処理における負荷の値が複数記録されている場合は、直近の負荷の値を取得しても良いし、過去のバッチ処理と類似する環境における負荷の値を取得しても良い。過去のバッチ処理と類似する環境とは、これから行うバッチ処理に類似した種類のバッチ処理を行った際の環境、又は、これからバッチ処理を開始する時間と近い時間にバッチ処理を行った際の環境等が挙げられる。
【００５１】
また、記録部３０に過去のバッチ処理による負荷の値が記録されていない場合、実行部２３は、取得部２４が取得した現在の環境における負荷の値を用いて、適切な環境条件を検索しても良い。
【００５２】
取得部２４は、実運用段階におけるバッチ処理の実行中に、実行環境における負荷の値を一定時間毎に取得する。具体的に、取得部２４は、一定時間毎に実行部２３が行うバッチ処理が完了したかを確認し、バッチ処理が完了していた場合はバッチ処理完了時の負荷の値を記録部３０に記録し、バッチ処理が完了していない場合は確認時における負荷の値を取得する。
【００５３】
ここで、説明のため、取得部２４が直近に負荷の値を取得した時間を第２の時間とし、それより一つ前、すなわち一定時間前に負荷の値を取得した時間を第１の時間とする。また、第２の時間から一定時間先の時間、すなわち取得部２４が次に負荷の値を取得する時間を第３の時間とする。
【００５４】
予測部２５は、実運用段階におけるバッチ処理の実行中に、取得部２４が取得した負荷の値を用いて、取得部２４が将来取得する負荷の値を予測する。具体的に、予測部２５は、一連のバッチ処理において、取得部２４が取得した最新の負荷の値と取得部２４が前回取得した負荷の値とを用いて負荷の値の変化量を算出し、当該変化量を用いて取得部２４が次に取得する負荷の値を予測する。
【００５５】
ここで、第１、第２、及び第３の時間を用いて説明すると、予測部２５は、取得部２４によって取得された第１の時間おける負荷の値と第２の時間における負荷の値との変化量を用いて、第３の時間における負荷の値を予測する。換言すると、予測部２５は、取得部２４が第１の時間（前回）及び第２の時間（今回）において取得した負荷の値から第３の時間（次回）における負荷の値を予測する。換言すると、予測部２５は、第１の時間から第２の時間までの負荷の値の変化量が、第２の時間から第３の時間までの負荷の値の変化量であるとみなし、当該変化量を用いることで、第３の時間における負荷の値を予測する。
【００５６】
設定部２６は、取得部２４が取得した負荷の値と、将来の負荷の値と、記録部３０に記録された負荷の値を範囲情報によって区分するテーブルと、を用いて環境条件を選択し、一連のバッチ処理の実行中に当該環境条件を用いて再設定する。具体的に、設定部２６は、取得部２４が取得した負荷の値と将来の負荷の値とが示す範囲に、最も適合する範囲情報を特定し、当該範囲情報に対応付けられた環境条件を選択し、一連のバッチ処理の実行中に当該環境条件を用いて再設定する。
【００５７】
換言すると、設定部２６は、第２の時間における負荷の値と、第３の時間における負荷の値と、記録部３０に記録されたテーブルと、を用いてバッチ処理に適切な環境条件を選択し、当該環境条件を新たな環境条件として設定を行う。
【００５８】
なお、設定部２６の詳細な動作、テーブル、及び範囲情報に関する詳細な説明については、具体例を用いながら後述する。
【００５９】
なお、設定部２６は、環境条件を選択する度に、当該選択した環境条件が現在の環境条件と異なるかどうかを確認しても良い。具体的に、設定部２６は、選択した環境条件が現在の環境条件と異なる場合に、当該選択した環境条件を新たな環境条件として再設定しても良い。設定部２６は、選択した環境条件が現在の環境条件と同時場合は、現在の環境条件を変更しないよう構成しても良い。
【００６０】
また、設定部２６は、環境条件を選択すると、現在の環境条件を確認することなく、当該選択した環境条件を用いて再設定を行っても良い。この場合、設定部２６は、選択した環境条件が現在の環境条件と同じであっても、再設定を行うことが可能である。
【００６１】
記録部３０は、各種情報を記録する。各種情報とは、例えば、試行段階における処理の情報、実運用段階における処理の情報、又は外部から設定される情報等の各種情報のうち、少なくとも１種類以上の情報のことである。
【００６２】
試行段階における処理の情報とは、例えば、入力ファイル条件と、負荷の値と、入力ファイル条件と負荷の値との組合せに対してバッチ処理に適切な環境条件とが対応付けられたテーブルを含む。以後、当該テーブルを環境条件テーブル５０と呼ぶ。しかし、本願における環境条件テーブル５０はこれ限定されず、例えば、当該組合せにおけるバッチ処理の所要時間、又は、所要時間が最短となる環境条件等のような、バッチ処理に関する様々な情報を含めることが可能である。環境条件テーブル５０については、具体例を用いて後述する。
【００６３】
外部から設定される情報とは、例えば、入力部１０から入力される、情報処理システム１００に関連する情報のことである。
【００６４】
実運用段階における処理の情報とは、バッチ処理の実行前後の負荷の値、バッチ処理の実行中に取得された負荷の値、又はバッチ処理に費やされた時間、のうち１つ以上の情報を含む。ところで、予測部２５が予測をした負荷の値と実際に取得部２４が取得した負荷の値とが大きく異なっていた場合、当該取得部２４が取得した負荷の値は、予測結果とは異なる例外的な負荷の値となる可能性がある。このような例外的な負荷の値を、実運用段階における処理の情報として記録部３０に記録した場合、実運用段階における処理の情報に対する信頼性が低下するおそれがある。従って、本願発明では、実運用段階における処理の情報を記録部３０に記録する情報を、選択することが可能である。具体的に、本願発明は、予測部２５が予測した負荷の値と実際に取得部２４が取得した負荷の値との差異が所定の閾値を超えない場合に、当該実際に取得部２４が取得した負荷の値を、実運用段階における処理の情報として記録部３０に記録することが可能である。
【００６５】
出力部４０は、バッチ処理の試行結果、バッチ処理の実行結果、及び検索結果等を外部に出力する。なお、実運用段階において、設定部２６が選択した環境条件が現在の環境条件と異なる場合、当該選択した環境条件に変更を行うことの可否を外部に出力しても良い。
【００６６】
［動作］
第２の実施形態の動作を、図面を用いながら説明する。
【００６７】
図４は、第２の実施の形態における、試行段階における処理の動作を示すフローチャートである。
【００６８】
ユーザーは、入力部１０を用いて、入力ファイル条件と環境条件と負荷の値とを指定する（Ｓ１１）。
【００６９】
分析部２１は、入力部１０によって指定された、入力ファイル条件と環境条件と負荷の値とを用いてバッチ処理を試行する（Ｓ１２）。
【００７０】
分析部２１は、試行を行った結果を用いて、バッチ処理に適切な環境条件を分析する。（Ｓ１３）。
【００７１】
分析部２１は、当該分析の結果を記録部３０に記録する（Ｓ１４）。
【００７２】
図５は、第２の実施の形態における、実運用段階における処理の動作を示すフローチャートである。
【００７３】
ユーザーは、入力部１０を用いて、入力ファイル条件を指定する（Ｓ２１）。
【００７４】
実行部２３は、負荷の値を取得する（Ｓ２２）。
【００７５】
実行部２３は、当該入力ファイル条件及び負荷の値を用いて、バッチ処理に適切な環境条件を記録部３０から検索する（Ｓ２３）。
【００７６】
実行部２３は、バッチ処理に適切な環境条件で一連のバッチ処理を実行する（Ｓ２４）。
【００７７】
取得部２４は、一定時間毎に実行部２３のバッチ処理が完了したか確認し、バッチ処理が完了した場合は（Ｓ２５でＹｅｓ）、バッチ処理完了時の負荷の値を記録部３０に記録する（Ｓ２６）。
【００７８】
取得部２４は、確認した結果、実行部２３のバッチ処理が完了していない場合は（Ｓ２５でＮｏ）、負荷の値を取得する（Ｓ２７）。
【００７９】
予測部２５は、Ｓ２７で取得された負荷の値及び当該負荷の値の１つ前に取得された負荷の値を用いて、取得部２４が次に取得する負荷の値を予測する（Ｓ２８）。
【００８０】
設定部２６は、Ｓ２７で取得された負荷の値と、取得部２４が次に取得する負荷の値と、環境条件テーブル５０と、を用いてバッチ処理に適切な環境条件を選択する（Ｓ２９）。
【００８１】
設定部２６は、当該選択した環境条件を、実行部２３がバッチ処理を実行する環境条件に再設定する（Ｓ３０）。
【００８２】
［具体例］
第２の実施形態における具体例を、図面を用いながら説明する。
【００８３】
第２の実施形態における具体例では、バッチ処理の具体例として、ソート処理を用いて説明する。
【００８４】
また、第２の実施形態における具体例では、データ処理に適切な環境条件として、ソート処理の処理速度が最速となる環境条件を設定するものとする。
【００８５】
図６は、環境条件テーブル５０の具体例を示す図である。環境条件テーブル５０は、入力ファイル条件５１と負荷の値５２とを有する。入力ファイル条件５１の具体例として、サイズ（Ｇ）、入力ファイル数を用いて説明する。負荷の値５２の具体例としてメモリ使用率（％）を用いて説明する。本具体例におけるメモリ使用率とは、実行部２３が行うソート処理と当該ソート処理以外の処理とを合わせた、システム全体の処理にて使用されるメモリの使用率である。
【００８６】
なお、負荷の値５２に記載の範囲：１〜２０％とは、負荷の値を区分する範囲情報である。例えば、取得されたメモリ使用率が１０％の場合、当該負荷の値に対応する範囲情報は、範囲：１〜２０％である。また、本実施形態では、範囲情報として、負荷の値を２０％毎に区分しているが、当該範囲の区分のやり方は任意に設定可能である。
【００８７】
なお、本具体例において、入力ファイル条件５１と負荷の値５２とが対応する項目には、入力ファイル条件５１と負荷の値５２との組合せにおいて、ソート処理の処理速度が最速となるための環境条件が示される。本具体例では、環境条件の具体例として、メモリ使用量を用いて説明する。本具体例におけるメモリ使用量とは、実行部２３が行うソート処理に使用されるメモリの使用量である。本具体例では、最大６Ｇまでのメモリ使用量を使用できるものとする。
【００８８】
図６に記載の環境条件テーブル５０を用いて具体的に説明すると、サイズが２Ｇ、入力ファイル数が２、及びメモリ使用率が５０％の場合、ソート処理の処理速度が最速となる環境条件は、メモリ使用量が４Ｇの場合である。そして、サイズが２Ｇ、入力ファイル数が２、及びメモリ使用率が７０％の場合、ソート処理の処理速度が最速となる環境条件は、メモリ使用量が３Ｇの場合である。
【００８９】
ところで、通常のソート処理では、使用するメモリが多い程、処理が早くなる場合が多い。しかし、システム全体の負荷の値が高い場合は、自身のソート処理以外の処理で、スワップ等が発生してしまうおそれがある。当該スワップに巻き込まれてしまうと、自身のソート処理も遅くなる可能性がある。そこで、特定の条件下では、自身のソート処理で使用するメモリ使用量を減らし、減らしたメモリを自身のソート処理以外の処理に割り当てることで、スワップの発生は抑制され、結果として自身のソート処理が高速化される場合がある。そのため、サイズが２Ｇ、入力ファイル数が２、及びメモリ使用率が７０％の場合、最速の環境条件は、メモリ使用量が４Ｇの場合ではなく、メモリ使用量が３Ｇの場合である。
【００９０】
次に、第２の実施形態における動作について、具体例を用いて説明する。
【００９１】
ユーザーは、ソート処理時に、入力ファイル条件として、例えば、サイズ＝２Ｇ、入力ファイル数＝３を指定する。
【００９２】
実行部２３は、本具体例における負荷の値として、メモリ使用率７０％を取得する。
【００９３】
実行部２３は、入力ファイル条件及び負荷の値を用いて、ソート処理の処理速度が最速となるメモリ使用量３Ｇを環境条件として検索する。
【００９４】
実行部２３は、メモリ使用量３Ｇでソート処理を実行する。
【００９５】
取得部２４は、一定時間毎（例えば１０分毎）に実行部２３のソート処理が完了したか確認し、ソート処理が完了した場合は、ソート処理完了時の負荷の値として、メモリ使用率７０％を記録部３０に記録する。
【００９６】
取得部２４は、ソート処理が完了していない場合、取得部２４が確認した時点における負荷の値を取得する。本具体例では、取得部２４が確認した時点における負荷の値の具体例として、メモリ使用率６０％を取得する。
【００９７】
予測部２５は、取得部２４が取得した最新のメモリ使用率６０％及び一定時間前（１０分前）に取得されたメモリ使用率７０％を用いて、１０分間でメモリ使用率が１０％変化したことを算出する。予測部２５は、次の一定時間後（１０分後）のメモリ使用率の変化も同等であるとみなし、次の一定時間後（１０分後）のメモリ使用率を５０％と予測する。なお、本具体例においては、メモリ使用率７０％を取得した時間が第１の時間であり、メモリ使用率６０％を取得した時間が第２の時間であり、メモリ使用率５０％を取得した時間が第３の時間である。
【００９８】
設定部２６は、環境条件テーブル５０を用いて、取得部２４が取得したメモリ使用率６０％と、次の一定時間後（１０分後）に取得すると予測されたメモリ使用率５０％が示す範囲に最も適合する範囲情報を特定する。具体的に、設定部２６は、メモリ使用率６０％からメモリ使用率５０％の負荷の値に最も適合する範囲情報を、範囲：４１〜６０％と特定する。設定部２６は、サイズが２Ｇ、入力ファイル数が２、及び範囲：４１〜６０％に対応付けられた環境条件をメモリ使用量４Ｇと選択する。
【００９９】
設定部２６は、メモリ使用量４Ｇを、実行部２３がソート処理を実行する環境条件に再設定する。
【０１００】
その後、一定時間（１０分）経過し、ソート処理が完了していない場合、現在の負荷の値を取得する。本具体例では、現在の負荷の値の具体例として、メモリ使用率４５％を取得する。
【０１０１】
予測部２５は、現在取得されたメモリ使用率４５％及び一定時間前（１０分前）に取得されたメモリ使用率６０％を用いて、１０分間でメモリ使用率が１５％変化したことを算出する。予測部２５は、次の一定時間後（１０分後）のメモリ使用率の変化も同等であるとみなし、次の一定時間後（１０分後）のメモリ使用率を３０％と予測する。
【０１０２】
設定部２６は、環境条件テーブル５０を用いて、取得部２４が取得するメモリ使用率４５％と、次の一定時間後（１０分後）に取得すると予測されたメモリ使用率３０％が示す範囲に最も適合する範囲情報を特定する。具体的に、設定部２６は、メモリ使用率４５％からメモリ使用率３０％の負荷の値に最も適合する範囲情報を特定する。
【０１０３】
ところで、メモリ使用率４５％からメモリ使用率３０％の負荷の値に適合する範囲情報の候補として、範囲：２１〜４０％及び範囲：４１％〜６０％の２つの範囲情報が挙げられる。ここで、メモリ使用率４５％からメモリ使用率３０％の負荷の値は、範囲：２１〜４０％には３０％から４０％の１１％が適合しており、範囲：４１％〜６０％には４１％から４５％の５％が適合している。従って、設定部２６は、メモリ使用率４５％からメモリ使用率３０％の負荷の値に最も適合する範囲情報を、範囲：２１〜４０％と特定する。設定部２６は、当該範囲：２１〜４０％に対応付けられた環境条件をメモリ使用量５Ｇと選択する。
【０１０４】
設定部２６は、メモリ使用量５Ｇを、実行部２３がソート処理を実行する環境条件に再設定する。
【０１０５】
これにより、本願発明における情報処理システム１００は、最適化を行った後に負荷が変化するような環境において、当該負荷の変化を鑑みた環境条件をデータ処理の実行中に再設定することができる。
【０１０６】
また、本願発明における情報処理システム１００は、変化する負荷に対応し、データ処理中であっても負荷の変化を予測し、適切な環境条件を容易に設定することができる。
【０１０７】
また、本願発明における情報処理システム１００は、実際にデータ処理を実行する際のマシン環境の負荷の状態を考慮しながら、適切なデータを行うことが可能となる。
【０１０８】
更に、適切な環境条件を自動で測定及び設定する事が可能であるため、ユーザーが環境条件の測定及び設定に費やす手間を削減することができる。
【０１０９】
なお、本願発明における説明では、第１の時間における負荷の値と第２の時間における負荷の値との変化量は、第２の時間における負荷の値と第３の時間における負荷の値との変化量と同等であることを前提に説明した。しかし、本願発明は当該前提に限られるものではない。例えば、これから実行予定のデータ処理について、当該データ処理における負荷の値の変化が予め予測できる場合は、当該変化を考慮して各変化量に対して重み付けを行い、第３の時間における負荷の値を予測しても良い。具体的に、第１の時間と第２の時間との間における負荷の値の変化量が小さいことと、第２の時間と第３の時間との間における負荷の値の変化量が大きいこととがこと前に判明している場合は、当該変化量の大小を考慮して重み付けすることが可能である。このように、本願発明は、第３の時間における負荷の値を予測可能なものであれば、どのような方法を用いても構わない。
【０１１０】
また、本願発明における説明において、予測部２５は、取得部２４が取得した最新の負荷の値と取得部２４が前回取得した負荷の値とを用いて、取得部２４が次に取得する負荷の値を予測すると説明した。換言すると、予測部２５は、取得部２４が直近に取得した２つの負荷の値を用いて取得部２４が次に取得する負荷の値を予測すると説明した。しかし、本願発明はこれに限られるものではない。例えば、予測部２５は、取得部２４が取得した最新の負荷の値と、取得部２４が前々回に取得した負荷の値とを用いて、取得部２４が次々回に取得する負荷の値を予測しても良い。従って、予測に用いる負荷の値は、取得部２４が連続して取得した負荷の値に限定されず、将来の負荷の値を予測可能であるならば、取得部２４が取得した負荷の値のどれを用いても構わない。このように、予測部２５は、取得部２４が取得した２つの負荷の値を用いる事で、将来の負荷の値を予測する事が可能である。
【０１１１】
［変形例］
次に、本願発明における情報処理システム１００の変形例を、図面を用いながら説明する。
【０１１２】
第２の実施形態における、取得部２４は、一定時間毎にソート処理が完了しているか確認し、完了していない場合はこの時点での負荷の値を取得していた。そのため、当該手法は、ソート処理実行中に複数回負荷の値を取得されることと、ソート処理実行中に複数回環境条件が変更されることとが想定される。本変形例では、ソート処理実行中に、負荷の値を１度だけ取得し、ソート処理実行中に一度だけ再設定を行う手法について説明する。
【０１１３】
ユーザーは、入力部１０を用いて、入力ファイル条件を指定する。
【０１１４】
実行部２３は、記録部３０から、前回のソート処理における負荷の値を取得する。
【０１１５】
実行部２３は、当該入力ファイル条件及び負荷の値を用いて、ソート処理が最速となる環境条件を記録部３０から検索する。
【０１１６】
実行部２３は、当該最速となる環境条件でソート処理を実行する。
【０１１７】
取得部２４は、ソート処理が終了する予定の時間から半分が経過した場合、負荷の値を取得する。ソート処理が終了する予定の時間は、過去のソート処理に要した時間を参照して定めても良いし、試行段階における情報を参照して定めても良い。
【０１１８】
予測部２５は、今回取得された負荷の値及びソート処理開始時の負荷の値を用いて、ソート処理が終了する予定の時間における負荷の値を予測する。
【０１１９】
設定部２６は、今回取得された負荷の値と、ソート処理が終了する予定の時間における負荷の値と、環境条件テーブル５０と、を用いて環境条件を選択する。具体的に、設定部２６は、今回取得された負荷の値と、ソート処理が終了する予定の時間の負荷の値とが示す範囲に、最も適合する範囲情報を特定し、当該範囲情報に対応付けられた環境条件を選択する。
【０１２０】
設定部２６は、当該選択した環境条件を実行部２３がソート処理を実行する環境条件に再設定する。
【０１２１】
設定部２６は、当該選択した環境条件が現在の環境条件と同じ場合、環境条件を変更しない。
【０１２２】
これにより、本変形例は、最適化を行った後に負荷が変化するような環境において、当該負荷の変化を鑑みた環境条件をデータ処理の実行中に再設定することができる。
【０１２３】
また、本変形例を採用する事で、負荷の値を１度しか取得しない場合であっても、負荷の変化を鑑みた環境条件をデータ処理の実行中に再設定することができる。
【０１２４】
［プログラム］
本願発明におけるプログラムは、コンピュータに本願発明における処理を実行させるプログラムである。このプログラムをコンピュータにインストールし、実行することによって、本実施の形態における情報処理装置、及び管理方法を実現することができる。
【０１２５】
ここで、本実施の形態におけるプログラムを実行することによって、本願発明を実現するコンピュータについて図７を用いて説明する。
【０１２６】
図７は、本願発明を実現するコンピュータの一例を示すブロック図である。
【０１２７】
図７に示すように、コンピュータ１１０は、ＣＰＵ１１１と、メインメモリ１１２と、記憶装置１１３と、入力インターフェイス１１４と、表示コントローラ１１５と、データリーダ／ライタ１１６と、通信インターフェイス１１７とを備える。これらの各部は、バス１２１を介して、互いにデータ通信可能に接続される。
【０１２８】
ＣＰＵ１１１は、記憶装置１１３に格納された、本実施の形態におけるプログラム（コード）をメインメモリ１１２に展開し、これらを所定順序で実行することにより、各種の演算を実施する。メインメモリ１１２は、典型的には、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等の揮発性の記憶装置である。また、本実施の形態におけるプログラムは、コンピュータ読み取り可能な記録媒体１２０に格納された状態で提供される。なお、本実施の形態におけるプログラムは、通信インターフェイス１１７を介して接続されたインターネット上で流通するものであっても良い。
【０１２９】
また、記憶装置１１３は、ハードディスクドライブの他、フラッシュメモリ等の半導体記憶装置が挙げられる。入力インターフェイス１１４は、ＣＰＵ１１１と、キーボード及びマウス並びにタッチパネルといった入力機器１１８との間のデータ伝送を仲介する。表示コントローラ１１５は、ディスプレイ装置１１９と接続され、ディスプレイ装置１１９での表示を制御する。
【０１３０】
データリーダ／ライタ１１６は、ＣＰＵ１１１と記録媒体１２０との間のデータ伝送を仲介し、記録媒体１２０からのプログラムの読み出し、及びコンピュータ１１０における処理結果の記録媒体１２０への書き込みを実行する。通信インターフェイス１１７は、ＣＰＵ１１１と他のコンピュータとの間のデータ伝送を仲介する。
【０１３１】
また、記録媒体１２０の具体例としては、ＣＦ（Ｃｏｍｐａｃｔ  Ｆｌａｓｈ（登録商標））及びＳＤ（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ）等の汎用的な半導体記憶デバイス、フレキシブルディスク（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ）等の磁気記憶媒体、又はＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）などの光学記憶媒体が挙げられる。
【０１３２】
ここまで、本願発明を実施するための形態を説明してきたが、本願発明は上述した実施形態に限定されるものではない。例えば、本明細書で記載したフローチャートにおける処理の順序はあくまでも一例に過ぎず、本願発明を実施する際に矛盾のない範囲で変更することが可能である。また、本明細書で記載した構成はあくまでも一例に過ぎず、本願発明を実施する際に矛盾のない範囲で構成を変更することが可能である。即ち、本願発明は、本願発明を実施する際に矛盾のない範囲で当業者が理解し得る様々な態様を適用することができ、上記各実施形態の変形例や、その組合せ等も、本願発明の技術的範囲に含まれる。
【符号の説明】
【０１３３】
１    情報処理装置
２    実行部
３    取得部
４    予測部
５    設定部
１０    入力部
２０    情報処理装置
２１    分析部
２２    負荷発生部
２３    実行部
２４    取得部
２５    予測部
２６    設定部
３０    記録部
４０    出力部
５０    環境条件テーブル
５１    入力ファイル条件
５２    負荷の値
１００    情報処理システム
１１１    ＣＰＵ
１１２    メインメモリ
１１３    記憶装置
１１４    入力インターフェイス
１１５    表示コントローラ
１１６    データリーダ／ライタ
１１７    通信インターフェイス
１１８    入力機器
１１９    ディスプレイ装置
１２０    記録媒体
【図１】
2019168808.tif 000003
【図２】
2019168808.tif 000004
【図３】
2019168808.tif 000005
【図４】
2019168808.tif 000006
【図５】
2019168808.tif 000007
【図６】
2019168808.tif 000008
【図７】
2019168808.tif 000009