(57)【特許請求の範囲】
【請求項１】
実行環境において所定の負荷を発生させる負荷発生部と、
前記所定の負荷を発生させた状態での所定の処理設定による処理の試行における所要時間を、当該所定の負荷を示す負荷情報及び当該所定の処理設定と関連付けて記憶する試行情報記憶部と、
前記実行環境における負荷情報を取得する負荷情報取得部と、
前記試行情報記憶部の中から、前記取得した負荷情報に関連付けられた処理設定のうち、前記所要時間が所定の条件を満たすものを検索する検索部と、
を備える処理設定検索装置。
【請求項２】
前記負荷情報取得部は、
前記実行環境において、前記処理の実行による負荷を含まない負荷を前記負荷情報として取得する
請求項１に記載の処理設定検索装置。
【請求項３】
前記検索された処理設定による前記処理の実行後に、前記処理の実行時における当該処理以外の負荷を負荷履歴情報として記憶する負荷情報記憶部をさらに備え、
前記負荷情報取得部は、前記検索部の２回目以降の検索時に、前記負荷情報記憶部内の前記負荷履歴情報を前記負荷情報として取得する
請求項１又は２に記載の処理設定検索装置。
【請求項４】
前記負荷情報取得部は、
前記検索された処理設定による前記処理の実行前後の複数の前記負荷情報を前記実行環境から取得し、
前記負荷情報記憶部は、
前記取得された複数の前記負荷情報に所定の統計処理を行って前記負荷履歴情報を更新する
請求項３に記載の処理設定検索装置。
【請求項５】
前記負荷発生部は、指定された負荷条件のうち前記実行環境における現在の負荷情報を除外した分を前記所定の負荷として疑似的に発生させる
請求項１乃至４のいずれか１項に記載の処理設定検索装置。
【請求項６】
前記負荷発生部は、前記処理の試行中に、当該処理以外のプロセスによる負荷の変動に応じて、前記疑似的に発生させた負荷を調整する
請求項５に記載の処理設定検索装置。
【請求項７】
前記処理設定は、前記処理の実行時に割り当てるメモリ量であり、
前記負荷は、前記処理以外のプロセスにより使用されるメモリ量である
請求項１乃至６のいずれか１項に記載の処理設定検索装置。
【請求項８】
実行環境において所定の負荷を発生させ、
前記所定の負荷を発生させた状態で所定の処理設定による処理を試行し、
前記試行による所要時間を、当該所定の負荷を示す負荷情報及び当該所定の処理設定と関連付けて試行情報記憶部に記憶し、
前記実行環境における負荷情報を取得し、
前記試行情報記憶部の中から、前記取得した負荷情報に関連付けられた処理設定のうち、前記所要時間が所定の条件を満たすものを検索する
処理設定検索方法。
【請求項９】
実行環境において所定の負荷を発生させる処理と、
前記所定の負荷を発生させた状態で所定の処理設定による処理を試行する処理と、
前記試行による所要時間を、当該所定の負荷を示す負荷情報及び当該所定の処理設定と関連付けて試行情報記憶部に記憶する処理と、
前記実行環境における負荷情報を取得する処理と、
前記試行情報記憶部の中から、前記取得した負荷情報に関連付けられた処理設定のうち、前記所要時間が所定の条件を満たすものを検索する処理と、
をコンピュータに実行させる処理設定検索プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、処理設定検索装置、方法及びプログラムに関し、特に、所定の処理を実行する際の処理設定を検索するための処理設定検索装置、方法及びプログラムに関する。
【背景技術】
【０００２】
ソート処理を高速化するための技術の一例として、特許文献１には、データ処理速度の高速化を図ることができるデータ処理システムに関する技術が開示されている。特許文献１にかかるデータ処理システムの分析部は、処理対象データを含む１以上の入力ファイルと、処理に使用可能な計算資源を示す１以上の環境条件と、を入力する。そして、当該分析部は、入力ファイル及び環境条件を網羅的に組み合わせて前記処理を試行し、試行結果を分析結果記憶部に記憶させる。その後、ソート部は、入力ファイルを入力し、分析結果記憶部を参照して、入力ファイルに係る処理時間が最も短くなる環境条件を特定し、特定した環境条件を使用して、処理を実行する。
【０００３】
尚、計算機上の処理に関連する技術として例えば、特許文献２や３が挙げられる。特許文献２には、時刻計測方法に関する技術が開示されている。処理負荷検知部は、計時依頼部に希望の計測時間が入力された時点での汎用ＯＳ部における処理負荷を検知する。予想遅延時間取得部は、処理負荷検知部によって検知された処理負荷と同一条件を遅延時間記憶部から検索し、この条件に対応して記憶された遅延時間を予想遅延時間として取得する。遅延時間記憶部は、過去に汎用ＯＳ部が時間を計測した際に生じた遅延時間とその時の処理負荷とを対応付けて記憶している。
【０００４】
また、特許文献３には、物理計算機のリソースの仮想計算機に対する割当てを効率的に実行可能な計算機システムに関する技術が開示されている。特許文献３に係る計算機システムは、仮想計算機に保証するリソース量を一度に確保できないと判定する場合には、仮想計算機の起動開始までに、仮想計算機に保証するリソース量を継続的に確保できるか否かを判定し、この判定を肯定すると、確保したリソースの合計量を、仮想計算機に割当てて物理計算機にデプロイするものである。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１５−１０２８８７号公報
【特許文献２】国際公開第２００８／１２６２１８号
【特許文献３】特開２０１２−０５８８１５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ここで、特許文献１には、データ処理速度を高速化するために、入力ファイルから適切な環境条件を特定する精度に改善の余地がある。その理由は、データ処理を実行する実行環境の実運用時には、当該データ処理以外にＯＳ（Operating System）や他のソフトウェアのプロセスが併存しており、データ処理の所要時間は、これらのプロセスによる外的要因の影響を受けるためである。つまり、同一の実行環境において同一の入力ファイルにおけるデータ処理であっても、実行時の実行環境におけるＣＰＵ（Central Processing Unit）使用率、ハードディスク使用率又はメモリ使用率などの負荷状態によって、最適な環境条件が異なるためである。
【０００７】
尚、特許文献２及び３は、適切な環境条件を特定するための上述した課題を解決することはできない。
【０００８】
本発明は、このような問題点を解決するためになされたものであり、実行環境の負荷状態に応じて適切な処理設定を提示するための処理設定検索装置、方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の第１の態様にかかる処理設定検索装置は、
実行環境において所定の負荷を発生させる負荷発生部と、
前記所定の負荷を発生させた状態での所定の処理設定による処理の試行における所要時間を、当該所定の負荷を示す負荷情報及び当該所定の処理設定と関連付けて記憶する試行情報記憶部と、
前記実行環境における負荷情報を取得する負荷情報取得部と、
前記試行情報記憶部の中から、前記取得した負荷情報に関連付けられた処理設定のうち、前記所要時間が所定の条件を満たすものを検索する検索部と、
を備える。
【００１０】
本発明の第２の態様にかかる処理設定検索方法は、
実行環境において所定の負荷を発生させ、
前記所定の負荷を発生させた状態で所定の処理設定による処理を試行し、
前記試行による所要時間を、当該所定の負荷を示す負荷情報及び当該所定の処理設定と関連付けて試行情報記憶部に記憶し、
前記実行環境における負荷情報を取得し、
前記試行情報記憶部の中から、前記取得した負荷情報に関連付けられた処理設定のうち、前記所要時間が所定の条件を満たすものを検索する。
【００１１】
本発明の第３の態様にかかる処理設定検索プログラムは、
実行環境において所定の負荷を発生させる処理と、
前記所定の負荷を発生させた状態で所定の処理設定による処理を試行する処理と、
前記試行による所要時間を、当該所定の負荷を示す負荷情報及び当該所定の処理設定と関連付けて試行情報記憶部に記憶する処理と、
前記実行環境における負荷情報を取得する処理と、
前記試行情報記憶部の中から、前記取得した負荷情報に関連付けられた処理設定のうち、前記所要時間が所定の条件を満たすものを検索する処理と、
をコンピュータに実行させる。
【発明の効果】
【００１２】
本発明により、実行環境の負荷状態に応じて適切な処理設定を提示するための処理設定検索装置、方法及びプログラムを提供することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施の形態１にかかる処理設定検索装置の構成を示すブロック図である。
【図２】本発明の実施の形態１にかかる処理設定検索処理の流れを示すフローチャートである。
【図３】本発明の実施の形態２にかかるデータ処理システムの構成を示すブロック図である。
【図４】本発明の実施の形態２にかかる試行段階における処理の流れを示すフローチャートである。
【図５】本発明の実施の形態２にかかる入力ファイル条件、処理設定及び環境負荷条件の例を示す図である。
【図６】本発明の実施の形態２にかかる最速となる処理設定の例を示す図である。
【図７】本発明の実施の形態２にかかる実運用段階における処理の流れを示すフローチャートである。
【図８】本発明の実施の形態３にかかる実運用段階における処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００１４】
以下では、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。各図面において、同一要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略する。
【００１５】
＜実施の形態１＞
図１は、本発明の実施の形態１にかかる処理設定検索装置１００の構成を示すブロック図である。処理設定検索装置１００は、所定の実行環境における負荷に応じて、所定のプログラム等による処理に最適な処理設定を検索するための情報処理装置である。ここで、実行環境とは、例えば、プロセッサ、メモリ、ハードディスク等のリソースを有する計算機等であるが、これに限定されない。
【００１６】
処理設定検索装置１００は、負荷発生部１１０と、試行情報記憶部１２０と、負荷情報取得部１３０と、検索部１４０とを備える。負荷発生部１１０は、実行環境において所定の負荷を発生させる。ここで、負荷とは、実行環境におけるリソースの消費度合いを示す指標である。例えば、負荷には、ＣＰＵの使用率、メモリの使用率、ハードディスクの使用率等が挙げられるが、これらに限定されない。
【００１７】
試行情報記憶部１２０は、所定の負荷を発生させた状態での所定の処理設定１２３による処理の試行における所要時間１２１を、当該所定の負荷を示す負荷情報１２２及び当該所定の処理設定１２３と関連付けて記憶するための記憶領域である。ここで、処理設定１２３とは、実行環境上で処理を試行又は実行する際に指定する設定情報である。
【００１８】
負荷情報取得部１３０は、実行環境における負荷情報を取得する。ここで、実行環境における負荷情報とは、実行環境における現在の負荷を示す情報であってもよい。また、負荷情報取得部１３０は、実行環境において、前記処理の実行による負荷を含まない負荷を負荷情報として取得するものである。負荷情報取得部１３０により取得される負荷情報は、処理の試行又は実行により発生する負荷が除かれた負荷情報である。
【００１９】
検索部１４０は、試行情報記憶部１２０の中から、負荷情報取得部１３０により取得した負荷情報に関連付けられた処理設定のうち、所要時間が所定の条件を満たすものを検索する。
【００２０】
図２は、本発明の実施の形態１にかかる処理設定検索処理の流れを示すフローチャートである。まず、処理設定検索装置１００は、実行環境において所定の負荷を発生させる（Ｓ１１）。次に、処理設定検索装置１００は、所定の負荷を発生させた状態で所定の処理設定による処理を試行する（Ｓ１２）。そして、処理設定検索装置１００は、試行による所要時間を、負荷情報及び処理設定と関連付けて試行情報記憶部１２０に記憶する（Ｓ１３）。
【００２１】
その後、処理設定検索装置１００は、実行環境における負荷情報を取得する（Ｓ１４）。そして、処理設定検索装置１００は、試行情報記憶部１２０の中から、取得した負荷情報に関連付けられた処理設定のうち、所要時間が所定の条件を満たすものを検索する（Ｓ１５）。そのため、処理設定検索装置１００は、検索された処理設定により処理を実行することができる。
【００２２】
このように、本発明の実施の形態１では、予め、負荷及び処理設定の複数の組合せについて、実行環境に疑似的に発生させた所定の負荷がかかった状態で所定の処理設定により特定の処理を試行し、各試行において処理に要した所要時間、負荷情報及び処理設定を関連付けて記憶しておくものである。そして、実運用時において、実行環境における負荷情報を取得し、特定の処理の実行時に、取得した負荷情報に関連付けられた処理設定のうち、所定の条件、例えば最短である所要時間に関連付けられた処理設定を検索するものである。つまり、実行環境における実際の負荷状態を加味して、所要時間が最短となる処理設定を検索するため、実行環境の負荷状態に応じて適切な処理設定を提示することができる。
【００２３】
＜実施の形態２＞
本発明の実施の形態２は、上述した実施の形態１の一実施例である。まず、図３を用いて、本発明の実施の形態２にかかるデータ処理システム２００の構成について説明する。データ処理システム２００は、処理対象データを記録した入力ファイルを入力し、当該データを対象とするソート処理を行うシステムである。
【００２４】
データ処理システム２００は、キーボード等の入力部１と、プログラム制御により動作するデータ処理部２と、情報を記憶する記憶部３と、ディスプレイ装置や印刷装置等の出力部４と、を備える。
【００２５】
入力部１は、試行段階において、ユーザから入力ファイルの条件、環境負荷条件及び処理設定を受け付ける。また、入力部１は、実運用段階において、ユーザから入力ファイルの条件を受け付ける。
【００２６】
データ処理部２は、分析部２１と、ソート部２２と、情報収集部２３と、環境負荷発生部２４とを備える。分析部２１は、試行段階において、入力部１から試行用の入力ファイルの条件、処理の試行時の環境負荷条件、及び処理設定の組合せを受け付け、環境負荷条件及び処理設定により入力ファイルについてソート処理を試行する。このとき、分析部２１は、環境負荷発生部２４により環境負荷条件に基づき負荷を発生させた状態で、ソート処理を試行する。特に、分析部２１は、複数の条件の組合せのそれぞれについて、個別にソート処理の実行を試行する。分析部２１は、試行時のソート処理の所要時間を実測し、ソート処理の所要時間が最速となる処理設定を分析する。分析部２１は、分析結果を分析結果記憶部３１に保存する。このとき、分析部２１は、入力ファイル条件、環境負荷条件、処理設定、及び所要時間の組合せを分析結果記憶部３１に保存する。
【００２７】
ソート部２２は、実運用段階において、入力部１から実運用時の入力ファイルの条件を受け付け、環境負荷条件を取得し、分析結果記憶部３１から入力ファイルの条件及び環境負荷条件を満たし、所要時間が最短となる処理設定を検索する。そして、ソート部２２は、検索された処理設定により入力ファイルについてソート処理を実行する。
【００２８】
ここで、ソート部２２は、実行環境における現在の負荷情報を取得して環境負荷条件とする。または、ソート部２２は、負荷情報記憶部３２から負荷履歴情報を取得して、環境負荷条件とする。
【００２９】
情報収集部２３は、実運用段階において、ソート処理実行時の実行環境における負荷情報を収集する。ここで、情報収集部２３は、実行環境における全体の負荷情報の中からソート処理による負荷を除いたものを収集するものとする。そして、情報収集部２３は、実運用段階において、ソート処理実行時の環境負荷条件を負荷情報記憶部３２に保存する。言い換えると、実運用段階において、情報収集部２３は、検索された処理設定によるソート処理の実行後に、ソート処理の実行時における当該処理以外の負荷を負荷履歴情報として負荷情報記憶部３２に記憶する。
【００３０】
環境負荷発生部２４は、試行段階において、指定された環境負荷条件に基づいて環境負荷を発生させる。例えば、環境負荷条件が実行環境のコンピュータにおけるメモリである場合、環境負荷発生部２４は、指定されたメモリ使用率に応じてメモリを使用するプログラムモジュールである。特に、環境負荷発生部２４は、指定された負荷条件のうち実行環境における現在の負荷情報を除外した分を所定の負荷として疑似的に発生させる。例えば、環境負荷発生部２４は、メモリ使用率として８０％が指定された場合、「８０％−現在のメモリ使用率１０％＝７０％」のメモリを使用するように任意の処理をループし続けて７０％のメモリを占有させる。そのためこの状態であれば、分析部２１は、当該ソート処理は、メモリ使用率が８０％の負荷が発生した状態で、ソート処理を試行することができる。尚、「現在のメモリ使用率」とは、ソート処理及び環境負荷発生部２４による処理以外のＯＳその他のプロセスにより使用済みのメモリを示す。
【００３１】
記憶部３は、分析結果記憶部３１と、負荷情報記憶部３２とを有する。分析結果記憶部３１には、入力ファイルの条件と、環境負荷条件と、処理設定と、所要時間とが関連づけて記憶される。分析結果記憶部３１には、入力ファイルの条件、環境負荷条件、及び処理設定の組合せのうち少なくとも所要時間が最短のものについて記憶する。尚、分析結果記憶部３１には、所要時間によらず試行された全ての条件の組合せを記憶しても構わない。
【００３２】
負荷情報記憶部３２は、実運用段階において、ソート処理の実行前に取得された負荷情報を、ソート処理実行後に負荷履歴情報として記憶する。
【００３３】
出力部４は、ソート処理の試行結果、実行結果、検索結果等を出力する。
【００３４】
続いて、本発明の実施の形態にかかる試行段階及び実運用段階における各処理について説明する。図４は、本発明の実施の形態２にかかる試行段階における処理の流れを示すフローチャートである。まず、入力部１は、ユーザから入力ファイルの条件の入力を受け付ける（Ｓ２１）。また、入力部１は、ユーザから処理設定の入力を受け付ける（Ｓ２２）。また、入力部１は、ユーザから環境負荷条件の入力を受け付ける（Ｓ２３）。尚、ステップＳ２１、Ｓ２２及びＳ２３は、同時又はその順序は入れ替わっても構わない。
【００３５】
ここで、図５は、本発明の実施の形態２にかかる入力ファイル条件、処理設定及び環境負荷条件の例を示す図である。まず、入力ファイルとは、ソート対象のデータが記録されているファイルをいう。また、入力ファイル条件とは、このファイルの特徴を示す要件をいう。入力ファイル条件としては、例えば、入力ファイルの数、サイズ、ファイル形式、レコード数、最大レコード長、平均レコード長、キーの数、同値キーの有無・偏り、データの並び、などがある。尚、入力ファイル条件は、１つの要件だけが指定されてもよく、複数同時に指定されてもよい。
【００３６】
また、処理設定とは、ソート処理を実行する際に指定するコマンドオプションやパラメータ等の設定情報である。処理設定としては、例えば、ディスク上の入力ファイル配置、作業ファイル配置・分割数、出力ファイル配置、使用ディスク、メモリ使用量、ソートアルゴリズム、などがある。また、入力、作業又は出力のファイル配置とは、例えば、ファイルの保存先のディレクトリパス等である。特に、該当のディレクトリが存在するディスクドライブが内蔵か外付けかなどによりソート処理のＩ／Ｏに影響があるためである。例えば、入力、作業又は出力のファイル配置のドライブが異なる場合には、それぞれのＩ／Ｏ処理が干渉しないため、処理が速くなり得る。尚、処理設定は、１つの要件だけが指定されてもよく、複数同時に指定されてもよい。
【００３７】
また、環境負荷条件とは、ソート処理が実行されるコンピュータシステムを含む実行環境における負荷を示す条件であり、かつ、ソート処理による負荷を除いた条件である。環境負荷条件としては、例えば、ＣＰＵ使用率、ハードディスク使用率、メモリ使用率、などがある。尚、環境負荷条件は、１つの要件だけが指定されてもよく、複数同時に指定されてもよい。
【００３８】
図４に戻り説明を続ける。分析部２１は、入力部１が受け付けた入力ファイル条件、処理設定、及び環境負荷条件の組合せによりソート処理を試行し、所要時間を実測する（Ｓ２４）。具体的には、次のように実行できる。まず、分析部２１は、受け付けた条件の組合せから複数の試行パターンを生成する。そして、各試行パターンについて任意の順序で負荷の発生及びソート処理の試行が行われる。
【００３９】
例えば、入力ファイル条件として入力ファイルサイズが１ＧＢ、処理設定として最大メモリ使用可能量が３ＧＢ、環境負荷条件としてメモリ使用率が２０％、４０％、６０％及び８０％が入力されたものとする。この場合、分析部２１は、以下のような試行パターンを生成する。
入力ファイルサイズ：１ＧＢ、メモリ使用量：０ＧＢ、メモリ使用率：２０％
入力ファイルサイズ：１ＧＢ、メモリ使用量：１ＧＢ、メモリ使用率：２０％
入力ファイルサイズ：１ＧＢ、メモリ使用量：２ＧＢ、メモリ使用率：２０％
入力ファイルサイズ：１ＧＢ、メモリ使用量：３ＧＢ、メモリ使用率：２０％
入力ファイルサイズ：１ＧＢ、メモリ使用量：０ＧＢ、メモリ使用率：４０％
入力ファイルサイズ：１ＧＢ、メモリ使用量：１ＧＢ、メモリ使用率：４０％
・・・
入力ファイルサイズ：１ＧＢ、メモリ使用量：３ＧＢ、メモリ使用率：８０％
【００４０】
そして、環境負荷発生部２４は、メモリ使用率２０％の負荷を疑似的に発生させる。その上で、分析部２１は、１ＧＢの入力ファイルに対してソート処理におけるメモリ使用量を０ＧＢ（つまり、外部ファイルを使用）としてソート処理の実行を開始する。そして、分析部２１は、当該ソート処理の試行による所要時間を実測し、試行パターンと所要時間とを関連付けて分析結果記憶部３１に保存する。
【００４１】
次に、環境負荷発生部２４による疑似的な負荷をメモリ使用率２０％に維持したまま、分析部２１は、１ＧＢの入力ファイルに対してソート処理におけるメモリ使用量を１ＧＢとしてソート処理の実行を開始する。以後同様に処理し、「入力ファイルサイズ：１ＧＢ、メモリ使用量：３ＧＢ、メモリ使用率：２０％」の試行パターンによる試行が終了した後、環境負荷発生部２４は、メモリ使用率４０％の負荷を疑似的に発生させる。そして、同様に、メモリ使用量を変化させてソート処理の試行時の所要時間を実測し、それぞれの試行パターンと所要時間とを関連付けて分析結果記憶部３１に保存する。メモリ使用率６０％及び８０％の場合についても同様に、処理を行う。
【００４２】
その後、分析部２１は、分析結果記憶部３１を参照し、入力ファイル条件と環境負荷条件との組合せにおける複数の処理設定のうち、所要時間が最速となる処理設定を特定し、分析結果として分析結果記憶部３１に保存する（Ｓ２５）。図６は、本発明の実施の形態２にかかる最速となる処理設定の例を示す図である。
【００４３】
続いて、図７は、本発明の実施の形態２にかかる実運用段階における処理の流れを示すフローチャートである。まず、入力部１は、ユーザから入力ファイルの条件の入力を受け付ける（Ｓ３１）。尚、実運用段階では、入力部１は、ユーザからの入力に限定されず、任意の処理プログラムから、ソート処理要の入力ファイルの条件の入力を受け付けても構わない。
【００４４】
次に、ソート部２２は、実行環境における現在の負荷情報を環境負荷条件として取得する（Ｓ３２）。尚、この時点では、ソート処理実行前であるため、負荷情報には、ソート処理による負荷が含まれていないことになる。また、実運用段階の２回目以降であれば、ソート部２２は、負荷情報記憶部３２から負荷履歴情報を取得して、環境負荷条件としてもよい。
【００４５】
続いて、ソート部２２は、入力部１が受け付けた入力ファイル条件と取得された環境負荷条件とを検索キーとして分析結果記憶部３１の中を検索し、該当する処理設定のうち所要時間が最速となるものを特定する（Ｓ３３）。そして、ソート部２２は、入力ファイルについて、検索された処理設定によりソート処理を実行する（Ｓ３４）。
【００４６】
その後、情報収集部２３は、ソート部２２がソート処理の実行開始時に取得した負荷情報を負荷履歴情報として負荷情報記憶部３２に保存する（Ｓ３５）。
【００４７】
例えば、入力部１が入力ファイル条件としてサイズ＝２ＧＢ及び入力ファイル数＝２を受け付け、実行環境における現在の負荷情報がメモリ使用率＝８０％であった場合、図６の例において、ソート部２２は、分析結果記憶部３１から処理設定としてメモリ使用量＝３ＧＢを検索できる。ここで、図６では、同一の入力ファイル条件において負荷情報が６０％以下の場合には、メモリ使用量＝４ＧＢが最速とされているが、負荷情報が８０％には、これらの場合よりも低いメモリ使用量により最速となることが示されている。通常は、ソート処理に使用するメモリが多いほど処理速度は速くなるが、ソート処理実行時の他のプロセスによるメモリ使用率が高い場合には、スワップが発生し、かえってソートが著しく遅くなる。本実施の形態では、試行段階で実行環境における特性に即して、入力ファイル条件及び環境負荷条件の組合せごとにおける最適な処理設定を導き出しているため、実運用段階における実際の負荷情報に応じた最適な処理設定を検索することができる。そのため、実運用段階におけるソート処理を効率的に実行できる。すなわち、本実施の形態により、実運用段階において、各種プロセスやネットワーク等により不確定に変化する負荷にも対応し、自動的に最速な処理設定を適用することができる。
【００４８】
＜実施の形態３＞
本発明の実施の形態３は、上述した実施の形態２の変形例である。本発明の実施の形態３は、実運用段階におけるソート部２２による現在の負荷情報の取得を複数回行うものである。尚、本発明の実施の形態３にかかるデータ処理システムの構成は、上述したデータ処理システム２００と同等であるため、図示及び重複する説明は省略する。
【００４９】
図８は、本発明の実施の形態３にかかる実運用段階における処理の流れを示すフローチャートである。ステップＳ３１からＳ３４は、図７と同様であり説明を省略する。つまり、ステップＳ３２においてソート部２２は、ソート処理実行開始前の実行環境における現在の負荷情報（第１の負荷情報）を取得している。例えば、第１の負荷情報がメモリ使用率＝８０％であるものとする。
【００５０】
その後、ステップＳ３４によるソート処理の実行後に、ソート部２２は、再度、実行環境における現在の負荷情報（第２の負荷情報）を取得する（Ｓ３５ａ）。ここで、第２の負荷情報がメモリ使用率＝４０％であるものとする。つまり、ソート部２２は、検索された処理設定によるソート処理の実行前後の複数の負荷情報を実行環境から取得する。
【００５１】
そして、情報収集部２３は、第１及び第２の負荷情報を負荷情報記憶部３２に保存する（Ｓ３５ｂ）。そして、このとき、情報収集部２３は、複数の負荷情報に所定の統計処理を行って負荷履歴情報を更新することが望ましい。所定の統計処理とは、例えば、複数の負荷情報の平均値を算出する処理等である。尚、情報収集部２３は、過去数回の負荷情報に対する平均等の演算処理を行っても構わない。
【００５２】
例えば、上記の例場合、情報収集部２３は、８０％と４０％のメモリ使用率の平均を算出し、６０％を負荷履歴情報として負荷情報記憶部３２に保存する。これにより、次回以降、ソート部２２は、ステップＳ３２において負荷情報記憶部３２からメモリ使用率６０％を環境負荷条件として取得できる。これは、例えば、前回のソート処理開始時に、偶然、メモリ使用率が極端に高かった場合や、ソート処理実行中に他のプロセスによりメモリ使用率が変動した場合等には、１回の負荷情報の取得だけでは正確な履歴といえないためである。特に、単に、現在の負荷だけでは、実運用中の実行環境の負荷の変動には対応できず、検索条件としての負荷情報の精度が低くなるおそれがある。そこで、ソート処理の実行前後に複数回、取得した負荷情報の平均値により、その誤差を平準化し、検索条件としての負荷情報の精度を向上させ、結果として、負荷情報に応じた処理設定の検索精度を向上させることができる。つまり、実行環境の負荷状態に応じて適切な処理設定を提示することができる。
【００５３】
尚、ソート部２２は、ステップＳ３４と並行して、つまりソート処理の実行終了中に、実行環境における現在の負荷情報を第３の負荷情報として取得してもよい。このとき、ステップＳ３５ｂにおいて、情報収集部２３は、検索された処理設定によるソート処理の実行後に、ソート処理の実行以外の負荷を負荷履歴情報として負荷情報記憶部３２に保存する。つまり、ソート処理実行中の負荷には、ソート処理自体の負荷も含まれるため、情報収集部２３は、負荷情報記憶部３２に保存時までに取得した負荷情報からソート処理自体の負荷を除く。これにより、負荷の誤差の平準化の精度をさらに向上できる。
【００５４】
尚、本実施の形態は、少なくとも第１、第２及び第３の負荷情報のいずれか２以上を用いた統計処理により負荷履歴情報を算出すればよい。
【００５５】
＜その他の実施の形態＞
上述した本発明の各実施の形態により、ユーザによって異なるデータ特性や実行環境において、より速いソートを含む任意の処理を実現するような設定やオプション指定を自動で見つけ出し、高速で実行できる。
【００５６】
また、本発明の各実施の形態は、ソートの必要なあらゆるバッチ処理で利用可能である。さらに、ソート処理だけでなく、マージなどあらゆるプログラムの高速化にも同様の性能チューンが可能であり、利用可能である。
【００５７】
尚、試行段階では、ソート処理以外の他のプロセスによる影響は少ないものの、他のプロセスを完全に制御できるとは限らない。そのため、実行環境におけるＯＳや常駐プログラム、外部からのアクセス等に伴う負荷の変動が起こり得る。その場合、ステップＳ２３により指定された負荷条件が維持できなくなる。
【００５８】
そこで、負荷発生部２４は、ソート処理の試行中に、当該ソート処理以外のプロセスによる負荷の変動に応じて、疑似的に発生させた負荷を調整するとよい。これにより、試行時の負荷条件を安定させることができる。
【００５９】
尚、上述したように、ソート処理に対してメモリの割り当てが多すぎるとスワップが発生し、却ってソートが遅くなる場合がある。そのため、本実施の形態では、予め試行によりメモリの負荷に応じた適切な割り当てメモリを求めることで、試行情報の精度を向上できる。この点は、処理設定がソート処理の実行時に割り当てるメモリ量であり、負荷情報がソート処理以外のプロセスにより使用されるメモリ量である場合には、顕著な効果といえる。
【００６０】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
【００６１】
また、上述の実施の形態では、本発明をハードウェアの構成として説明したが、本発明は、これに限定されるものではない。本発明は、任意の処理を、ＣＰＵ（Central Processing Unit）にコンピュータプログラムを実行させることにより実現することも可能である。
【００６２】
上述の例において、プログラムは、様々なタイプの非一時的なコンピュータ可読媒体（non-transitory computer readable medium）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（tangible storage medium）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Read Only Memory）、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、ＤＶＤ（Digital Versatile Disc）、ＢＤ（Blu-ray（登録商標） Disc）、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Programmable ROM）、ＥＰＲＯＭ（Erasable PROM）、フラッシュＲＯＭ、ＲＡＭ（Random Access Memory））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（transitory computer readable medium）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【００６３】
上記の実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限られない。
（付記１）
実行環境において所定の負荷を発生させる負荷発生部と、
前記所定の負荷を発生させた状態での所定の処理設定による処理の試行における所要時間を、当該所定の負荷を示す負荷情報及び当該所定の処理設定と関連付けて記憶する試行情報記憶部と、
前記実行環境における負荷情報を取得する負荷情報取得部と、
前記試行情報記憶部の中から、前記取得した負荷情報に関連付けられた処理設定のうち、前記所要時間が所定の条件を満たすものを検索する検索部と、
を備える処理設定検索装置。
（付記２）
前記負荷情報取得部は、
前記実行環境において、前記処理の実行による負荷を含まない負荷を前記負荷情報として取得する
付記１に記載の処理設定検索装置。
（付記３）
前記検索された処理設定による前記処理の実行後に、前記処理の実行時における当該処理以外の負荷を負荷履歴情報として記憶する負荷情報記憶部をさらに備え、
前記負荷情報取得部は、前記検索時に、前記負荷情報記憶部内の前記負荷履歴情報を前記負荷情報として取得する
付記１又は２に記載の処理設定検索装置。
（付記４）
前記負荷情報取得部は、
前記検索された処理設定による前記処理の実行前後の複数の前記負荷情報を前記実行環境から取得し、
前記負荷情報記憶部は、
前記取得された複数の前記負荷情報に所定の統計処理を行って前記負荷履歴情報を更新する
付記３に記載の処理設定検索装置。
（付記５）
前記負荷発生部は、指定された負荷条件のうち前記実行環境における現在の負荷情報を除外した分を前記所定の負荷として疑似的に発生させる
付記１乃至４のいずれか１項に記載の処理設定検索装置。
（付記６）
前記負荷発生部は、前記処理の試行中に、当該処理以外のプロセスによる負荷の変動に応じて、前記疑似的に発生させた負荷を調整する
付記５に記載の処理設定検索装置。
（付記７）
前記処理設定は、前記処理の実行時に割り当てるメモリ量であり、
前記負荷は、前記処理以外のプロセスにより使用されるメモリ量である
付記１乃至６のいずれか１項に記載の処理設定検索装置。
（付記８）
実行環境において所定の負荷を発生させ、
前記所定の負荷を発生させた状態で所定の処理設定による処理を試行し、
前記試行による所要時間を、当該所定の負荷を示す負荷情報及び当該所定の処理設定と関連付けて試行情報記憶部に記憶し、
前記実行環境における負荷情報を取得し、
前記試行情報記憶部の中から、前記取得した負荷情報に関連付けられた処理設定のうち、前記所要時間が所定の条件を満たすものを検索する
処理設定検索方法。
（付記９）
実行環境において所定の負荷を発生させる処理と、
前記所定の負荷を発生させた状態で所定の処理設定による処理を試行する処理と、
前記試行による所要時間を、当該所定の負荷を示す負荷情報及び当該所定の処理設定と関連付けて試行情報記憶部に記憶する処理と、
前記実行環境における負荷情報を取得する処理と、
前記試行情報記憶部の中から、前記取得した負荷情報に関連付けられた処理設定のうち、前記所要時間が所定の条件を満たすものを検索する処理と、
をコンピュータに実行させる処理設定検索プログラム。
【符号の説明】
【００６４】
１００  処理設定検索装置
１１０  負荷発生部
１２０  試行情報記憶部
１２１  所要時間
１２２  負荷情報
１２３  処理設定
１３０  負荷情報取得部
１４０  検索部
２００  データ処理システム
１  入力部
２  データ処理部
２１  分析部
２２  ソート部
２３  情報収集部
２４  環境負荷発生部
３  記憶部
３１  分析結果記憶部
３２  負荷情報記憶部
４  出力部
【図１】
0006524875.tif 000002
【図２】
0006524875.tif 000003
【図３】
0006524875.tif 000004
【図４】
0006524875.tif 000005
【図５】
0006524875.tif 000006
【図６】
0006524875.tif 000007
【図７】
0006524875.tif 000008
【図８】
0006524875.tif 000009