JP7131005B2 - 情報処理装置、情報処理方法、及び情報処理プログラム - Google Patents

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

Info

Publication number
JP7131005B2
JP7131005B2 JP2018054718A JP2018054718A JP7131005B2 JP 7131005 B2 JP7131005 B2 JP 7131005B2 JP 2018054718 A JP2018054718 A JP 2018054718A JP 2018054718 A JP2018054718 A JP 2018054718A JP 7131005 B2 JP7131005 B2 JP 7131005B2
Authority
JP
Japan
Prior art keywords
load value
load
unit
series
processes
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.)
Active
Application number
JP2018054718A
Other languages
English (en)
Other versions
JP2019168808A (ja
Inventor
仁志 小田
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2018054718A priority Critical patent/JP7131005B2/ja
Publication of JP2019168808A publication Critical patent/JP2019168808A/ja
Application granted granted Critical
Publication of JP7131005B2 publication Critical patent/JP7131005B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Stored Programmes (AREA)

Description

本願発明は、情報処理装置、情報処理方法、及び情報処理プログラムに関し、特に、データ処理を行う情報処理装置、システム、方法、及びプログラムに関する。
従来、バッチ処理等のデータ処理速度を適切に行うためには、使用メモリサイズ、キャッシュサイズ、作業ファイル数、使用ディスク、又はアルゴリズム等を、ユーザーが指定し、調整をする必要があった。また、ユーザーが使用するマシンの環境(CPU,ハードディスク、又はメモリ等)が複数ある場合、1つの環境の性能を向上させる設定が他の環境でも有効であるとは限らないため、ユーザーは使用するマシンの環境毎に設定の調整が求められていた。
特許文献1には、ひとつの計算機システム内に複数の処理ユニットを擁し、各処理ユニットにプログラムの実行局面に応じた役割を分担させる技術が開示されている。具体的には、プログラムの挙動を観測しプロファイル情報を収集・解析する観測スレッドが求めたプロファイル結果を用いて、最適化スレッドがより適したプログラム(オブジェクトコード)および処理形態を求める。その結果、実行効率が向上すると判断されれば、資源管理スレッドがシステムをより実行に適した状態に変更する。
特許文献2には、分析部が様々な入力ファイル条件、環境条件における処理時間の実測を行い入力ファイル条件と環境条件との最適な組合せを学習し、ソート部は入力ファイル条件が与えられたとき学習結果を用いてソート時間が最短となるような環境条件を決定する技術が開示されている。
特許文献3には、実行環境における実際の負荷状態を加味して、所要時間が最短となる処理設定を検索する技術が開示されている。具体的には、負荷及び処理設定の複数の組合せについて、実行環境に擬似的に発生させた所定の負荷がかかった状態で所定の処理設定により特定の処理を試行し、各試行において処理に要した所要時間、負荷情報及び処理設定を関連付けて記憶しておく。そして、実運用時において、実行環境における負荷情報を取得し、特定の処理の実行時に、取得した負荷情報に関連付けられた処理設定のうち、所定の条件、例えば最短である所要時間に関連付けられた処理設定を検索する。また、処理の実行前後に複数回負荷情報を取得し、負荷の平均値を算出する技術も開示されている。
特開2005-190430号公報 特開2015-102887号公報 特開2017-068568号公報
ところで、バッチ処理等のデータ処理では、大規模なデータ処理に伴い多くの時間が費やされることがある。そのため、データ処理の実行中に実行環境における負荷が変化することで、適切なデータ処理を行うための環境条件も変化するおそれがある。
特許文献1に開示された技術は、観測スレッドがプログラムの挙動を観測し、観測結果に応じて最適化を行う。しかし、観測スレッドが観測した時点における環境条件の最適化を行ったとしても、観測後に負荷が変化した場合は、データ処理において適切な環境条件も変化するおそれがある。このように、特許文献1に開示された技術では、挙動を観測した時点における最適化を行うため、最適化を行った後に負荷が変化するような環境においては、すぐに適切な環境条件でなくなってしまう可能性がある。
特許文献2及び3に開示された技術は、データ処理の実行開始時に環境条件を決定するものであって、データ処理の実行中に環境条件を再設定することを行っていない。
本願発明は、上記課題を解決し、最適化を行った後に負荷が変化するような環境において、当該負荷の変化を鑑みた環境条件をデータ処理の実行中に再設定することができる情報処理装置、情報処理方法、及び情報処理プログラムを提供する。
本願発明における情報処理装置は、実行環境において所定の環境条件により一連の処理を実行する実行部と、実行環境の負荷の値を一定時間毎に取得する取得部と、前記一連の処理において、前記取得部が取得した負荷の値を用いて、将来の負荷の値を予測する予測部と、前記予測部が予測した結果を用いて前記一連の処理の実行中に前記環境条件を再設定する設定部と、を備える。
本願発明における情報処理方法は、実行環境において所定の環境条件により一連の処理を実行し、実行環境の負荷の値を一定時間毎に取得し、前記一連の処理において、取得した負荷の値を用いて、将来の負荷の値を予測し、予測した結果を用いて前記一連の処理の実行中に前記環境条件を再設定する。
本願発明におけるコンピュータプログラムは、実行環境において所定の環境条件により一連の処理を実行し、実行環境の負荷の値を一定時間毎に取得し、前記一連の処理において、取得した負荷の値を用いて、将来の負荷の値を予測し、予測した結果を用いて前記一連の処理の実行中に前記環境条件を再設定する、処理をコンピュータに実行させる。
本願発明によれば、最適化を行った後に負荷が変化するような環境において、当該負荷の変化を鑑みた環境条件をデータ処理の実行中に再設定することができる。
情報処理装置の構成を示す図である。 情報処理装置の動作を示すフローチャートである。 情報処理システム100の構成を示す図である。 試行段階における処理の動作を示すフローチャートである。 実運用段階における処理の動作を示すフローチャートである。 環境条件テーブル50の具体例を示す図である。 本願発明を実現するコンピュータの一例を示すブロック図である。
<第1の実施形態>
本願発明の第1の実施形態を、図面を参照して説明する。図1は、第1の実施形態における、情報処理装置1の構成を示す図である。
[構成]
最初に、情報処理装置1の構成について説明する。情報処理装置1は、実行部2と、取得部3と、予測部4と、設定部5とを有する。
実行部2は、実行環境において所定の環境条件により一連の処理を実行する。実行環境とは、例えば、プロセッサ、メモリ、ハードディスク等のリソースを有する計算機等を所定の組合せで形成された、実行部2が処理を実行する際の環境を示す。実行部2が実行する処理とは、例えば、バッチ処理、ソート処理、又はマージ処理等が挙げられる。実行部2が実行する一連の処理とは、上記したそれぞれの処理について、1つのまとまった処理として実行される処理のことである。
環境条件とは、処理を実行する際に指定するコマンドオプションやパラメータ等の環境を示す情報である。環境条件の具体例としては、メモリ使用量、ディスク上の入力配置、作業ファイル配置、出力ファイル配置、使用ディスク、バッチアルゴリズム、及びソートアルゴリズム等が挙げられる。
ディスク上の入力配置、作業ファイル配置、出力ファイル配置とは、例えば、ファイルの保存先のディレクトリパス等である。特に、該当のディレクトリが存在するディスクドライブが内蔵か外付けか等により処理のI/Oに影響がある。例えば、入力、作業又は出力のファイル配置のドライブが異なる場合には、それぞれのI/Oが干渉しないため、処理が速くなる可能性がある。このように、実行部2は、データ処理において適切な環境条件で処理を行うことで、高速な処理を行うことが可能となる。
なお、環境条件は、1つの要件だけが指定されても良く、複数の要件が同時に指定されても良い。
なお、適切な環境条件とは、データ処理速度が最速となる環境条件でも良いし、データ処理効率が最も良い環境条件でも良いし、データ処理に要する時間が最短となる環境条件でも良い。
取得部3は、一連の処理において、実行環境の負荷の値を一定時間毎に取得する。負荷の値とは、例えば、CPUの使用率、メモリの使用率、ハードディスクの使用率等が挙げられる。
予測部4は、一連の処理において、取得部3が取得した負荷の値を用いて、将来の負荷の値を予測する。将来の負荷の値とは、一連の処理において、取得部3が将来取得する負荷の値のことである。
設定部5は、予測部4が予測した結果を用いて、一連の処理の実行中に、環境条件を再設定する。
[動作]
第1の実施形態の動作を、図2を用いて説明する。
図2は、本願発明における情報処理装置1の動作を示すフローチャートである。
実行部2は、実行環境において所定の環境条件により一連の処理を実行する(S1)。
取得部3は、一連の処理において、実行環境の負荷の値を一定時間毎に取得する(S2)。
予測部4は、一連の処理において、取得部3が取得した負荷の値を用いて、将来の負荷の値を予測する(S3)。
設定部5は、予測部4が予測した結果を用いて、一連の処理の実行中に、環境条件を再設定する(S4)。
これにより、本願発明における情報処理装置1は、最適化を行った後に負荷が変化するような環境において、当該負荷の変化を鑑みた環境条件をデータ処理の実行中に再設定することができる。
<第2の実施形態>
本願発明の第2の実施形態を、図面を参照して説明する。図3は、第2の実施形態における、情報処理システム100の構成を示す図である。
[構成]
最初に、情報処理システム100の構成について説明する。
情報処理システム100は、処理対象データを記録した入力ファイルを入力し、当該データを対象として処理を行うシステムである。情報処理システム100は、試行段階及び実運用段階の処理を行う。
第2の実施形態では、データ処理の具体例として、バッチ処理を例に用いて説明を行う。
試行段階の処理とは、擬似的に負荷を発生させた状態でバッチ処理を試行し、各試行について取得された情報を記録するものである。
実運用段階の処理とは、所定の環境条件においてバッチ処理を実行するものである。
なお、試行段階の処理に関する構成及び動作は、例えば、特開2017-68568に開示された技術を参照して行っても良い。従って、特開2017-68568に開示された技術と重複する説明については省略する。しかし、本願発明における試行段階の処理は、特開2017-68568に開示された技術に限られるものではない。
情報処理システム100は、入力部10と、情報処理装置20と、記録部30と、出力部40と、を有する。
入力部10は、利用者から、入力ファイル条件、負荷の値、及び環境条件を受け付ける。入力ファイル条件とは、例えば、入力ファイルの数、サイズ、ファイル形式、レコードの数、最大レコード長、平均レコード長、キーの数、同値キーの有無、同値キーの偏り、又はデータの並び等が挙げられる。
情報処理装置20は、分析部21と、負荷発生部22と、実行部23と、取得部24と、予測部25と、設定部26と、を有する。
分析部21は、試行段階において、入力部10から入力された入力ファイル条件、負荷の値、及び環境条件の組合せに基づき、バッチ処理を試行する。この時、分析部21は、後述する負荷発生部22が指定された負荷の値となるような負荷を発生させた状態で、バッチ処理を試行する。
分析部21は、入力部10から複数の組合せを入力された場合、当該複数の組合せのそれぞれについて、個別にバッチ処理を試行する。分析部21は、当該試行を行った結果を用いて、バッチ処理に適切な環境条件を分析する。分析部21は、例えば、バッチ処理を最短で行うための環境条件を分析したい場合、特定の入力ファイル条件及び特定の負荷の値におけるバッチ処理を様々な環境条件で試行を行う。更に、分析部21は、当該試行に費やされた所要時間を実測することで、バッチ処理を最短で行うための環境条件を特定することが可能である。
分析部21は、当該分析の結果を記録部30に記録する。この時、分析部21は、入力ファイル条件と、負荷の値と、入力ファイル条件と負荷の値との組合せに対してバッチ処理速度が最速の環境条件と、を、試行段階における処理の情報として記録部30に記録する。
負荷発生部22は、試行段階において、指定された負荷の値に基づいて負荷を発生させる。例えば、負荷の値が、実行環境のコンピュータにおけるメモリ使用率である場合、負荷発生部22は、指定されたメモリ使用率に応じてメモリを使用するプログラムモジュールである。特に、負荷発生部22は、指定された負荷の値となるように、擬似的に負荷を発生させる。
具体的に、負荷発生部22は、現在のメモリ使用率が10%のとき、メモリ使用率として80%が指定されると、「80%-現在のメモリ使用率10%=70%」のメモリを使用するように任意の処理をループし続けて70%のメモリを占有させる。そのため、この状態であれば、分析部21は、現在のメモリ使用率が10%であっても、メモリ使用率が80%の負荷が発生した状態で処理を試行することができる。なお、現在のメモリ使用率とは、バッチ処理及び負荷発生部22による処理以外の処理により使用されるメモリを示す。
実行部23は、実運用段階におけるバッチ処理開始時において、入力部10から入力ファイル条件を受け付けると、負荷の値を取得し、当該入力ファイル条件及び負荷の値を満たす条件のうち、バッチ処理に適切な環境条件を記録部30から検索する。実行部23は、検索された環境条件を用いて一連のバッチ処理を開始する。
実行部23は、入力部10から入力ファイル条件を受け付けると、負荷の値を取得する、と説明したが、負荷の値を取得する方法は、実行環境における負荷の値を取得可能であればどのような方法を用いても良い。
例えば、実行部23は、記録部30に過去のバッチ処理における負荷の値が記録されている場合、当該負荷の値を記録部30から取得しても良い。なお、実行部23は、過去のバッチ処理における負荷の値が複数記録されている場合は、直近の負荷の値を取得しても良いし、過去のバッチ処理と類似する環境における負荷の値を取得しても良い。過去のバッチ処理と類似する環境とは、これから行うバッチ処理に類似した種類のバッチ処理を行った際の環境、又は、これからバッチ処理を開始する時間と近い時間にバッチ処理を行った際の環境等が挙げられる。
また、記録部30に過去のバッチ処理による負荷の値が記録されていない場合、実行部23は、取得部24が取得した現在の環境における負荷の値を用いて、適切な環境条件を検索しても良い。
取得部24は、実運用段階におけるバッチ処理の実行中に、実行環境における負荷の値を一定時間毎に取得する。具体的に、取得部24は、一定時間毎に実行部23が行うバッチ処理が完了したかを確認し、バッチ処理が完了していた場合はバッチ処理完了時の負荷の値を記録部30に記録し、バッチ処理が完了していない場合は確認時における負荷の値を取得する。
ここで、説明のため、取得部24が直近に負荷の値を取得した時間を第2の時間とし、それより一つ前、すなわち一定時間前に負荷の値を取得した時間を第1の時間とする。また、第2の時間から一定時間先の時間、すなわち取得部24が次に負荷の値を取得する時間を第3の時間とする。
予測部25は、実運用段階におけるバッチ処理の実行中に、取得部24が取得した負荷の値を用いて、取得部24が将来取得する負荷の値を予測する。具体的に、予測部25は、一連のバッチ処理において、取得部24が取得した最新の負荷の値と取得部24が前回取得した負荷の値とを用いて負荷の値の変化量を算出し、当該変化量を用いて取得部24が次に取得する負荷の値を予測する。
ここで、第1、第2、及び第3の時間を用いて説明すると、予測部25は、取得部24によって取得された第1の時間おける負荷の値と第2の時間における負荷の値との変化量を用いて、第3の時間における負荷の値を予測する。換言すると、予測部25は、取得部24が第1の時間(前回)及び第2の時間(今回)において取得した負荷の値から第3の時間(次回)における負荷の値を予測する。換言すると、予測部25は、第1の時間から第2の時間までの負荷の値の変化量が、第2の時間から第3の時間までの負荷の値の変化量であるとみなし、当該変化量を用いることで、第3の時間における負荷の値を予測する。
設定部26は、取得部24が取得した負荷の値と、将来の負荷の値と、記録部30に記録された負荷の値を範囲情報によって区分するテーブルと、を用いて環境条件を選択し、一連のバッチ処理の実行中に当該環境条件を用いて再設定する。具体的に、設定部26は、取得部24が取得した負荷の値と将来の負荷の値とが示す範囲に、最も適合する範囲情報を特定し、当該範囲情報に対応付けられた環境条件を選択し、一連のバッチ処理の実行中に当該環境条件を用いて再設定する。
換言すると、設定部26は、第2の時間における負荷の値と、第3の時間における負荷の値と、記録部30に記録されたテーブルと、を用いてバッチ処理に適切な環境条件を選択し、当該環境条件を新たな環境条件として設定を行う。
なお、設定部26の詳細な動作、テーブル、及び範囲情報に関する詳細な説明については、具体例を用いながら後述する。
なお、設定部26は、環境条件を選択する度に、当該選択した環境条件が現在の環境条件と異なるかどうかを確認しても良い。具体的に、設定部26は、選択した環境条件が現在の環境条件と異なる場合に、当該選択した環境条件を新たな環境条件として再設定しても良い。設定部26は、選択した環境条件が現在の環境条件と同時場合は、現在の環境条件を変更しないよう構成しても良い。
また、設定部26は、環境条件を選択すると、現在の環境条件を確認することなく、当該選択した環境条件を用いて再設定を行っても良い。この場合、設定部26は、選択した環境条件が現在の環境条件と同じであっても、再設定を行うことが可能である。
記録部30は、各種情報を記録する。各種情報とは、例えば、試行段階における処理の情報、実運用段階における処理の情報、又は外部から設定される情報等の各種情報のうち、少なくとも1種類以上の情報のことである。
試行段階における処理の情報とは、例えば、入力ファイル条件と、負荷の値と、入力ファイル条件と負荷の値との組合せに対してバッチ処理に適切な環境条件とが対応付けられたテーブルを含む。以後、当該テーブルを環境条件テーブル50と呼ぶ。しかし、本願における環境条件テーブル50はこれ限定されず、例えば、当該組合せにおけるバッチ処理の所要時間、又は、所要時間が最短となる環境条件等のような、バッチ処理に関する様々な情報を含めることが可能である。環境条件テーブル50については、具体例を用いて後述する。
外部から設定される情報とは、例えば、入力部10から入力される、情報処理システム100に関連する情報のことである。
実運用段階における処理の情報とは、バッチ処理の実行前後の負荷の値、バッチ処理の実行中に取得された負荷の値、又はバッチ処理に費やされた時間、のうち1つ以上の情報を含む。ところで、予測部25が予測をした負荷の値と実際に取得部24が取得した負荷の値とが大きく異なっていた場合、当該取得部24が取得した負荷の値は、予測結果とは異なる例外的な負荷の値となる可能性がある。このような例外的な負荷の値を、実運用段階における処理の情報として記録部30に記録した場合、実運用段階における処理の情報に対する信頼性が低下するおそれがある。従って、本願発明では、実運用段階における処理の情報を記録部30に記録する情報を、選択することが可能である。具体的に、本願発明は、予測部25が予測した負荷の値と実際に取得部24が取得した負荷の値との差異が所定の閾値を超えない場合に、当該実際に取得部24が取得した負荷の値を、実運用段階における処理の情報として記録部30に記録することが可能である。
出力部40は、バッチ処理の試行結果、バッチ処理の実行結果、及び検索結果等を外部に出力する。なお、実運用段階において、設定部26が選択した環境条件が現在の環境条件と異なる場合、当該選択した環境条件に変更を行うことの可否を外部に出力しても良い。
[動作]
第2の実施形態の動作を、図面を用いながら説明する。
図4は、第2の実施の形態における、試行段階における処理の動作を示すフローチャートである。
ユーザーは、入力部10を用いて、入力ファイル条件と環境条件と負荷の値とを指定する(S11)。
分析部21は、入力部10によって指定された、入力ファイル条件と環境条件と負荷の値とを用いてバッチ処理を試行する(S12)。
分析部21は、試行を行った結果を用いて、バッチ処理に適切な環境条件を分析する。(S13)。
分析部21は、当該分析の結果を記録部30に記録する(S14)。
図5は、第2の実施の形態における、実運用段階における処理の動作を示すフローチャートである。
ユーザーは、入力部10を用いて、入力ファイル条件を指定する(S21)。
実行部23は、負荷の値を取得する(S22)。
実行部23は、当該入力ファイル条件及び負荷の値を用いて、バッチ処理に適切な環境条件を記録部30から検索する(S23)。
実行部23は、バッチ処理に適切な環境条件で一連のバッチ処理を実行する(S24)。
取得部24は、一定時間毎に実行部23のバッチ処理が完了したか確認し、バッチ処理が完了した場合は(S25でYes)、バッチ処理完了時の負荷の値を記録部30に記録する(S26)。
取得部24は、確認した結果、実行部23のバッチ処理が完了していない場合は(S25でNo)、負荷の値を取得する(S27)。
予測部25は、S27で取得された負荷の値及び当該負荷の値の1つ前に取得された負荷の値を用いて、取得部24が次に取得する負荷の値を予測する(S28)。
設定部26は、S27で取得された負荷の値と、取得部24が次に取得する負荷の値と、環境条件テーブル50と、を用いてバッチ処理に適切な環境条件を選択する(S29)。
設定部26は、当該選択した環境条件を、実行部23がバッチ処理を実行する環境条件に再設定する(S30)。
[具体例]
第2の実施形態における具体例を、図面を用いながら説明する。
第2の実施形態における具体例では、バッチ処理の具体例として、ソート処理を用いて説明する。
また、第2の実施形態における具体例では、データ処理に適切な環境条件として、ソート処理の処理速度が最速となる環境条件を設定するものとする。
図6は、環境条件テーブル50の具体例を示す図である。環境条件テーブル50は、入力ファイル条件51と負荷の値52とを有する。入力ファイル条件51の具体例として、サイズ(G)、入力ファイル数を用いて説明する。負荷の値52の具体例としてメモリ使用率(%)を用いて説明する。本具体例におけるメモリ使用率とは、実行部23が行うソート処理と当該ソート処理以外の処理とを合わせた、システム全体の処理にて使用されるメモリの使用率である。
なお、負荷の値52に記載の範囲:1~20%とは、負荷の値を区分する範囲情報である。例えば、取得されたメモリ使用率が10%の場合、当該負荷の値に対応する範囲情報は、範囲:1~20%である。また、本実施形態では、範囲情報として、負荷の値を20%毎に区分しているが、当該範囲の区分のやり方は任意に設定可能である。
なお、本具体例において、入力ファイル条件51と負荷の値52とが対応する項目には、入力ファイル条件51と負荷の値52との組合せにおいて、ソート処理の処理速度が最速となるための環境条件が示される。本具体例では、環境条件の具体例として、メモリ使用量を用いて説明する。本具体例におけるメモリ使用量とは、実行部23が行うソート処理に使用されるメモリの使用量である。本具体例では、最大6Gまでのメモリ使用量を使用できるものとする。
図6に記載の環境条件テーブル50を用いて具体的に説明すると、サイズが2G、入力ファイル数が2、及びメモリ使用率が50%の場合、ソート処理の処理速度が最速となる環境条件は、メモリ使用量が4Gの場合である。そして、サイズが2G、入力ファイル数が2、及びメモリ使用率が70%の場合、ソート処理の処理速度が最速となる環境条件は、メモリ使用量が3Gの場合である。
ところで、通常のソート処理では、使用するメモリが多い程、処理が早くなる場合が多い。しかし、システム全体の負荷の値が高い場合は、自身のソート処理以外の処理で、スワップ等が発生してしまうおそれがある。当該スワップに巻き込まれてしまうと、自身のソート処理も遅くなる可能性がある。そこで、特定の条件下では、自身のソート処理で使用するメモリ使用量を減らし、減らしたメモリを自身のソート処理以外の処理に割り当てることで、スワップの発生は抑制され、結果として自身のソート処理が高速化される場合がある。そのため、サイズが2G、入力ファイル数が2、及びメモリ使用率が70%の場合、最速の環境条件は、メモリ使用量が4Gの場合ではなく、メモリ使用量が3Gの場合である。
次に、第2の実施形態における動作について、具体例を用いて説明する。
ユーザーは、ソート処理時に、入力ファイル条件として、例えば、サイズ=2G、入力ファイル数=3を指定する。
実行部23は、本具体例における負荷の値として、メモリ使用率70%を取得する。
実行部23は、入力ファイル条件及び負荷の値を用いて、ソート処理の処理速度が最速となるメモリ使用量3Gを環境条件として検索する。
実行部23は、メモリ使用量3Gでソート処理を実行する。
取得部24は、一定時間毎(例えば10分毎)に実行部23のソート処理が完了したか確認し、ソート処理が完了した場合は、ソート処理完了時の負荷の値として、メモリ使用率70%を記録部30に記録する。
取得部24は、ソート処理が完了していない場合、取得部24が確認した時点における負荷の値を取得する。本具体例では、取得部24が確認した時点における負荷の値の具体例として、メモリ使用率60%を取得する。
予測部25は、取得部24が取得した最新のメモリ使用率60%及び一定時間前(10分前)に取得されたメモリ使用率70%を用いて、10分間でメモリ使用率が10%変化したことを算出する。予測部25は、次の一定時間後(10分後)のメモリ使用率の変化も同等であるとみなし、次の一定時間後(10分後)のメモリ使用率を50%と予測する。なお、本具体例においては、メモリ使用率70%を取得した時間が第1の時間であり、メモリ使用率60%を取得した時間が第2の時間であり、メモリ使用率50%を取得した時間が第3の時間である。
設定部26は、環境条件テーブル50を用いて、取得部24が取得したメモリ使用率60%と、次の一定時間後(10分後)に取得すると予測されたメモリ使用率50%が示す範囲に最も適合する範囲情報を特定する。具体的に、設定部26は、メモリ使用率60%からメモリ使用率50%の負荷の値に最も適合する範囲情報を、範囲:41~60%と特定する。設定部26は、サイズが2G、入力ファイル数が2、及び範囲:41~60%に対応付けられた環境条件をメモリ使用量4Gと選択する。
設定部26は、メモリ使用量4Gを、実行部23がソート処理を実行する環境条件に再設定する。
その後、一定時間(10分)経過し、ソート処理が完了していない場合、現在の負荷の値を取得する。本具体例では、現在の負荷の値の具体例として、メモリ使用率45%を取得する。
予測部25は、現在取得されたメモリ使用率45%及び一定時間前(10分前)に取得されたメモリ使用率60%を用いて、10分間でメモリ使用率が15%変化したことを算出する。予測部25は、次の一定時間後(10分後)のメモリ使用率の変化も同等であるとみなし、次の一定時間後(10分後)のメモリ使用率を30%と予測する。
設定部26は、環境条件テーブル50を用いて、取得部24が取得するメモリ使用率45%と、次の一定時間後(10分後)に取得すると予測されたメモリ使用率30%が示す範囲に最も適合する範囲情報を特定する。具体的に、設定部26は、メモリ使用率45%からメモリ使用率30%の負荷の値に最も適合する範囲情報を特定する。
ところで、メモリ使用率45%からメモリ使用率30%の負荷の値に適合する範囲情報の候補として、範囲:21~40%及び範囲:41%~60%の2つの範囲情報が挙げられる。ここで、メモリ使用率45%からメモリ使用率30%の負荷の値は、範囲:21~40%には30%から40%の11%が適合しており、範囲:41%~60%には41%から45%の5%が適合している。従って、設定部26は、メモリ使用率45%からメモリ使用率30%の負荷の値に最も適合する範囲情報を、範囲:21~40%と特定する。設定部26は、当該範囲:21~40%に対応付けられた環境条件をメモリ使用量5Gと選択する。
設定部26は、メモリ使用量5Gを、実行部23がソート処理を実行する環境条件に再設定する。
これにより、本願発明における情報処理システム100は、最適化を行った後に負荷が変化するような環境において、当該負荷の変化を鑑みた環境条件をデータ処理の実行中に再設定することができる。
また、本願発明における情報処理システム100は、変化する負荷に対応し、データ処理中であっても負荷の変化を予測し、適切な環境条件を容易に設定することができる。
また、本願発明における情報処理システム100は、実際にデータ処理を実行する際のマシン環境の負荷の状態を考慮しながら、適切なデータを行うことが可能となる。
更に、適切な環境条件を自動で測定及び設定する事が可能であるため、ユーザーが環境条件の測定及び設定に費やす手間を削減することができる。
なお、本願発明における説明では、第1の時間における負荷の値と第2の時間における負荷の値との変化量は、第2の時間における負荷の値と第3の時間における負荷の値との変化量と同等であることを前提に説明した。しかし、本願発明は当該前提に限られるものではない。例えば、これから実行予定のデータ処理について、当該データ処理における負荷の値の変化が予め予測できる場合は、当該変化を考慮して各変化量に対して重み付けを行い、第3の時間における負荷の値を予測しても良い。具体的に、第1の時間と第2の時間との間における負荷の値の変化量が小さいことと、第2の時間と第3の時間との間における負荷の値の変化量が大きいこととがこと前に判明している場合は、当該変化量の大小を考慮して重み付けすることが可能である。このように、本願発明は、第3の時間における負荷の値を予測可能なものであれば、どのような方法を用いても構わない。
また、本願発明における説明において、予測部25は、取得部24が取得した最新の負荷の値と取得部24が前回取得した負荷の値とを用いて、取得部24が次に取得する負荷の値を予測すると説明した。換言すると、予測部25は、取得部24が直近に取得した2つの負荷の値を用いて取得部24が次に取得する負荷の値を予測すると説明した。しかし、本願発明はこれに限られるものではない。例えば、予測部25は、取得部24が取得した最新の負荷の値と、取得部24が前々回に取得した負荷の値とを用いて、取得部24が次々回に取得する負荷の値を予測しても良い。従って、予測に用いる負荷の値は、取得部24が連続して取得した負荷の値に限定されず、将来の負荷の値を予測可能であるならば、取得部24が取得した負荷の値のどれを用いても構わない。このように、予測部25は、取得部24が取得した2つの負荷の値を用いる事で、将来の負荷の値を予測する事が可能である。
[変形例]
次に、本願発明における情報処理システム100の変形例を、図面を用いながら説明する。
第2の実施形態における、取得部24は、一定時間毎にソート処理が完了しているか確認し、完了していない場合はこの時点での負荷の値を取得していた。そのため、当該手法は、ソート処理実行中に複数回負荷の値を取得されることと、ソート処理実行中に複数回環境条件が変更されることとが想定される。本変形例では、ソート処理実行中に、負荷の値を1度だけ取得し、ソート処理実行中に一度だけ再設定を行う手法について説明する。
ユーザーは、入力部10を用いて、入力ファイル条件を指定する。
実行部23は、記録部30から、前回のソート処理における負荷の値を取得する。
実行部23は、当該入力ファイル条件及び負荷の値を用いて、ソート処理が最速となる環境条件を記録部30から検索する。
実行部23は、当該最速となる環境条件でソート処理を実行する。
取得部24は、ソート処理が終了する予定の時間から半分が経過した場合、負荷の値を取得する。ソート処理が終了する予定の時間は、過去のソート処理に要した時間を参照して定めても良いし、試行段階における情報を参照して定めても良い。
予測部25は、今回取得された負荷の値及びソート処理開始時の負荷の値を用いて、ソート処理が終了する予定の時間における負荷の値を予測する。
設定部26は、今回取得された負荷の値と、ソート処理が終了する予定の時間における負荷の値と、環境条件テーブル50と、を用いて環境条件を選択する。具体的に、設定部26は、今回取得された負荷の値と、ソート処理が終了する予定の時間の負荷の値とが示す範囲に、最も適合する範囲情報を特定し、当該範囲情報に対応付けられた環境条件を選択する。
設定部26は、当該選択した環境条件を実行部23がソート処理を実行する環境条件に再設定する。
設定部26は、当該選択した環境条件が現在の環境条件と同じ場合、環境条件を変更しない。
これにより、本変形例は、最適化を行った後に負荷が変化するような環境において、当該負荷の変化を鑑みた環境条件をデータ処理の実行中に再設定することができる。
また、本変形例を採用する事で、負荷の値を1度しか取得しない場合であっても、負荷の変化を鑑みた環境条件をデータ処理の実行中に再設定することができる。
[プログラム]
本願発明におけるプログラムは、コンピュータに本願発明における処理を実行させるプログラムである。このプログラムをコンピュータにインストールし、実行することによって、本実施の形態における情報処理装置、及び管理方法を実現することができる。
ここで、本実施の形態におけるプログラムを実行することによって、本願発明を実現するコンピュータについて図7を用いて説明する。
図7は、本願発明を実現するコンピュータの一例を示すブロック図である。
図7に示すように、コンピュータ110は、CPU111と、メインメモリ112と、記憶装置113と、入力インターフェイス114と、表示コントローラ115と、データリーダ/ライタ116と、通信インターフェイス117とを備える。これらの各部は、バス121を介して、互いにデータ通信可能に接続される。
CPU111は、記憶装置113に格納された、本実施の形態におけるプログラム(コード)をメインメモリ112に展開し、これらを所定順序で実行することにより、各種の演算を実施する。メインメモリ112は、典型的には、DRAM(Dynamic Random Access Memory)等の揮発性の記憶装置である。また、本実施の形態におけるプログラムは、コンピュータ読み取り可能な記録媒体120に格納された状態で提供される。なお、本実施の形態におけるプログラムは、通信インターフェイス117を介して接続されたインターネット上で流通するものであっても良い。
また、記憶装置113は、ハードディスクドライブの他、フラッシュメモリ等の半導体記憶装置が挙げられる。入力インターフェイス114は、CPU111と、キーボード及びマウス並びにタッチパネルといった入力機器118との間のデータ伝送を仲介する。表示コントローラ115は、ディスプレイ装置119と接続され、ディスプレイ装置119での表示を制御する。
データリーダ/ライタ116は、CPU111と記録媒体120との間のデータ伝送を仲介し、記録媒体120からのプログラムの読み出し、及びコンピュータ110における処理結果の記録媒体120への書き込みを実行する。通信インターフェイス117は、CPU111と他のコンピュータとの間のデータ伝送を仲介する。
また、記録媒体120の具体例としては、CF(Compact Flash(登録商標))及びSD(Secure Digital)等の汎用的な半導体記憶デバイス、フレキシブルディスク(Flexible Disk)等の磁気記憶媒体、又はCD-ROM(Compact Disk Read Only Memory)などの光学記憶媒体が挙げられる。
ここまで、本願発明を実施するための形態を説明してきたが、本願発明は上述した実施形態に限定されるものではない。例えば、本明細書で記載したフローチャートにおける処理の順序はあくまでも一例に過ぎず、本願発明を実施する際に矛盾のない範囲で変更することが可能である。また、本明細書で記載した構成はあくまでも一例に過ぎず、本願発明を実施する際に矛盾のない範囲で構成を変更することが可能である。即ち、本願発明は、本願発明を実施する際に矛盾のない範囲で当業者が理解し得る様々な態様を適用することができ、上記各実施形態の変形例や、その組合せ等も、本願発明の技術的範囲に含まれる。
1 情報処理装置
2 実行部
3 取得部
4 予測部
5 設定部
10 入力部
20 情報処理装置
21 分析部
22 負荷発生部
23 実行部
24 取得部
25 予測部
26 設定部
30 記録部
40 出力部
50 環境条件テーブル
51 入力ファイル条件
52 負荷の値
100 情報処理システム
111 CPU
112 メインメモリ
113 記憶装置
114 入力インターフェイス
115 表示コントローラ
116 データリーダ/ライタ
117 通信インターフェイス
118 入力機器
119 ディスプレイ装置
120 記録媒体

Claims (8)

  1. 実行環境において所定の環境条件により一連の処理を実行する実行部と、
    前記一連の処理の実行中に、実行環境の負荷の値を一定時間毎に取得する取得部と、
    前記一連の処理の実行中に、前記取得部が取得した負荷の値を用いて、将来の負荷の値を予測する予測部と、
    前記予測部が予測した結果を用いて前記一連の処理の実行中に前記環境条件を再設定する設定部と、
    を備える情報処理装置。
  2. 前記予測部は、前記一連の処理の実行中に、前記取得部が取得した2つの負荷の値を用いて、将来の負荷の値を予測する、
    請求項1に記載の情報処理装置。
  3. 前記予測部は、前記一連の処理の実行中に、前記取得部が取得した最新の負荷の値と前記取得部が前回取得した負荷の値とを用いて、前記取得部が次に取得する負荷の値を予測する、
    請求項1又は2に記載の情報処理装置。
  4. 前記予測部は、前記一連の処理の実行中に、前記取得部が取得した2つの負荷の値の変化量を用いて、将来の負荷の値を予測する、
    請求項2又は3に記載の情報処理装置。
  5. 負荷の値と前記環境条件とが対応付けられたテーブルを更に備え、
    前記設定部は、前記取得部が取得した負荷の値と将来の負荷の値と前記テーブルとを用いて前記環境条件を選択し、前記一連の処理の実行中に当該環境条件を用いて再設定する
    請求項1乃至4のいずれか1項に記載の情報処理装置。
  6. 前記テーブルにおける負荷の値は範囲情報によって区分され、
    前記設定部は、前記取得部が取得した負荷の値と将来の負荷の値とが示す範囲に最も適合する前記範囲情報を特定し、当該範囲情報に対応付けられた前記環境条件を選択し、前記一連の処理の実行中に当該環境条件を用いて再設定する
    請求項5に記載の情報処理装置。
  7. 実行環境において所定の環境条件により一連の処理を実行し、
    前記一連の処理の実行中に、実行環境の負荷の値を一定時間毎に取得し、
    前記一連の処理の実行中に、取得した負荷の値を用いて、将来の負荷の値を予測し、
    予測した結果を用いて前記一連の処理の実行中に前記環境条件を再設定する、
    情報処理方法。
  8. 実行環境において所定の環境条件により一連の処理を実行し、
    前記一連の処理の実行中に、実行環境の負荷の値を一定時間毎に取得し、
    前記一連の処理の実行中に、取得した負荷の値を用いて、将来の負荷の値を予測し、
    予測した結果を用いて前記一連の処理の実行中に前記環境条件を再設定する、
    処理をコンピュータに実行させるコンピュータプログラム。
JP2018054718A 2018-03-22 2018-03-22 情報処理装置、情報処理方法、及び情報処理プログラム Active JP7131005B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018054718A JP7131005B2 (ja) 2018-03-22 2018-03-22 情報処理装置、情報処理方法、及び情報処理プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018054718A JP7131005B2 (ja) 2018-03-22 2018-03-22 情報処理装置、情報処理方法、及び情報処理プログラム

Publications (2)

Publication Number Publication Date
JP2019168808A JP2019168808A (ja) 2019-10-03
JP7131005B2 true JP7131005B2 (ja) 2022-09-06

Family

ID=68108285

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018054718A Active JP7131005B2 (ja) 2018-03-22 2018-03-22 情報処理装置、情報処理方法、及び情報処理プログラム

Country Status (1)

Country Link
JP (1) JP7131005B2 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160328726A1 (en) 2011-07-25 2016-11-10 Prevedere, Inc Systems and methods for forecasting based upon time series data
JP2016208169A (ja) 2015-04-20 2016-12-08 日本電信電話株式会社 制御装置及び消費電力制御方法
JP2017068568A (ja) 2015-09-30 2017-04-06 日本電気株式会社 処理設定検索装置、方法及びプログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160328726A1 (en) 2011-07-25 2016-11-10 Prevedere, Inc Systems and methods for forecasting based upon time series data
JP2016208169A (ja) 2015-04-20 2016-12-08 日本電信電話株式会社 制御装置及び消費電力制御方法
JP2017068568A (ja) 2015-09-30 2017-04-06 日本電気株式会社 処理設定検索装置、方法及びプログラム

Also Published As

Publication number Publication date
JP2019168808A (ja) 2019-10-03

Similar Documents

Publication Publication Date Title
JP3938387B2 (ja) コンパイラ、制御方法、およびコンパイラ・プログラム
JP4151977B2 (ja) 先読み装置、先読み方法、および先読みプログラム
US8793427B2 (en) Remote memory for virtual machines
US7406684B2 (en) Compiler, dynamic compiler, and replay compiler
JP4621786B2 (ja) 情報処理装置、並列処理最適化方法およびプログラム
CN110389842B (zh) 一种动态资源分配方法、装置、存储介质及设备
JP7039631B2 (ja) アクセスリクエストを管理するための方法、装置、デバイス、および記憶媒体
US20150120637A1 (en) Apparatus and method for analyzing bottlenecks in data distributed data processing system
JP4381459B1 (ja) 情報処理装置、粒度調整方法およびプログラム
US20150052314A1 (en) Cache memory control program, processor incorporating cache memory, and cache memory control method
CN112596898A (zh) 一种任务执行器调度的方法及装置
JP5391422B2 (ja) メモリ管理方法、計算機システム及びプログラム
JP2008090507A (ja) ジョブ実行のスケジューリングプログラム、ジョブ実行のスケジューリング方法、ジョブ実行のスケジューリング装置
US20120331235A1 (en) Memory management apparatus, memory management method, control program, and recording medium
JP4908363B2 (ja) 情報処理装置、並列処理最適化方法およびプログラム
JP7131005B2 (ja) 情報処理装置、情報処理方法、及び情報処理プログラム
JP5278538B2 (ja) コンパイルシステム、コンパイル方法およびコンパイルプログラム
JP6763411B2 (ja) 設計支援装置、設計支援方法、および設計支援プログラム
JP7367365B2 (ja) タスク実行管理装置、タスク実行管理方法、および、タスク実行管理プログラム
US9218275B2 (en) Memory management control system, memory management control method, and storage medium storing memory management control program
JPH03223941A (ja) ファイル記憶媒体の最適処理方式
JP6911544B2 (ja) プログラム、情報処理装置及び情報処理方法
JP4535784B2 (ja) プロセス配置装置、プロセス配置方法及びプロセス配置プログラム
JP6524875B2 (ja) 処理設定検索装置、方法及びプログラム
KR102471867B1 (ko) 오토 스케일링 벤치마크 방법 및 그 장치

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210215

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20211020

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220214

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220222

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220422

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: 20220726

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220808

R151 Written notification of patent or utility model registration

Ref document number: 7131005

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151