特許第6031196号(P6031196)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ インテル・コーポレーションの特許一覧

特許6031196分散データストレージ・処理システムのためのチューニング
<>
  • 特許6031196-分散データストレージ・処理システムのためのチューニング 図000002
  • 特許6031196-分散データストレージ・処理システムのためのチューニング 図000003
  • 特許6031196-分散データストレージ・処理システムのためのチューニング 図000004
  • 特許6031196-分散データストレージ・処理システムのためのチューニング 図000005
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6031196
(24)【登録日】2016年10月28日
(45)【発行日】2016年11月24日
(54)【発明の名称】分散データストレージ・処理システムのためのチューニング
(51)【国際特許分類】
   G06F 9/445 20060101AFI20161114BHJP
   G06F 12/00 20060101ALI20161114BHJP
【FI】
   G06F9/06 610A
   G06F12/00 545A
【請求項の数】23
【全頁数】22
(21)【出願番号】特願2015-539622(P2015-539622)
(86)(22)【出願日】2013年10月4日
(65)【公表番号】特表2015-532997(P2015-532997A)
(43)【公表日】2015年11月16日
(86)【国際出願番号】US2013063476
(87)【国際公開番号】WO2014070376
(87)【国際公開日】20140508
【審査請求日】2015年4月30日
(31)【優先権主張番号】13/663,901
(32)【優先日】2012年10月30日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】591003943
【氏名又は名称】インテル・コーポレーション
(74)【代理人】
【識別番号】110000877
【氏名又は名称】龍華国際特許業務法人
(72)【発明者】
【氏名】リャオ、グアンデン、ディー.
(72)【発明者】
【氏名】イギトバシ、ネジー
(72)【発明者】
【氏名】ウィルキー、シオドー
(72)【発明者】
【氏名】ダッタ、クシャル
【審査官】 石川 亮
(56)【参考文献】
【文献】 NECのビッグデータ関連事業戦略 5 Hadoopの性能評価シミュレーション システムモデルベースSI支援環境により分散システムの性能予測が可能に,BUSINESS COMMUNICATION 5月号,日本,株式会社ビジネスコミュニケーション社,2012年 5月 1日,第49巻,第5号,p.46-47
【文献】 森達哉,外4名,MapReduceシステムのネットワーク負荷分析,オペレーションズ・リサーチ 6月号,日本,社団法人日本オペレーションズ・リサーチ学会,2011年 6月 1日,第56巻,第6号,p.29-36
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/445
G06F 9/46
G06F 12/00
(57)【特許請求の範囲】
【請求項1】
少なくとも構成情報に基づいて、分散データストレージ・処理システム(DDSPS)についての構成を決定し、
前記DDSPSのベースライン構成に基づいて、前記DDSPSの前記構成を調整し、
前記DDSPS通常動作から得られるサンプル情報を決定し、
前記サンプル情報に基づいて訓練された機械学習モデルを用いて前記DDSPSの性能モデルを生成し、前記性能モデルが前記DDSPSの性能を予測するための数学モデルを含んでおり、
前記DDSPSの通常動作中に、前記性能モデルを用いて、前記DDSPSの構成の変更が前記DDSPSの性能を向上させることが予測されるかを判断し、
前記構成の変更が前記DDSPSの性能を向上させることが予測される場合に、前記DDSPSの通常動作中に、前記DDSPSに前記構成の変更を実装する
よう構成されたチューナモジュールを少なくとも備える、デバイス。
【請求項2】
前記サンプル情報は、前記サンプル情報が前記DDSPSの通常動作を反映するように、直接検索アルゴリズムを用いて取得される
請求項1に記載のデバイス。
【請求項3】
前記チューナモジュールは、
ソフトウェアコンポーネント
を備え、
前記デバイスは、
前記デバイス中のメモリ内に格納されたプログラムコードを実行するよう構成された少なくとも1つのプロセッサ
をさらに備え、
前記プログラムコードの前記実行が、前記ソフトウェアコンポーネントを生成する
請求項1又は2に記載のデバイス。
【請求項4】
前記チューナモジュールは、前記DDSPSについてのシステムプロビジョニング構成及びシステムパラメータ構成を決定するよう構成されている
請求項1から3のいずれか一項に記載のデバイス。
【請求項5】
前記チューナモジュールは、ネットワーク構成、システム構成、又は、前記DDSPS内の少なくとも1つのデバイスの構成のうちの少なくとも1つを調整するよう構成されている
請求項1からのいずれか一項に記載のデバイス。
【請求項6】
前記DDSPSは、少なくとも1つのHadoopクラスタを備え、
前記チューナモジュールは、
前記デバイスで利用可能な、前記少なくとも1つのHadoopクラスタに対応する複数のジョブログファイルに少なくともアクセスするよう構成されている
請求項1からのいずれか一項に記載のデバイス。
【請求項7】
前記サンプル情報は、1つ又は複数のサンプルを備え、
各サンプルは、
前記少なくとも1つのHadoopクラスタ内でワークロードを動作するための構成、前記ワークロードに対応するジョブログ、及び前記ワークロードに対応するリソース使用情報を少なくとも含む、
請求項に記載のデバイス。
【請求項8】
前記チューナモジュールは、前記性能モデルを用いて複数の構成を構成空間にわたって検索することによってシステム性能を最適化するよう構成されている
請求項1から7のいずれか一項に記載のデバイス。
【請求項9】
前記チューナモジュールは、提示された前記構成の変更を含むサマリを提供するよう構成されている
請求項1からのいずれか一項に記載のデバイス。
【請求項10】
少なくとも構成情報に基づいて、分散データストレージ・処理システム(DDSPS)についての構成を決定する段階と、
前記DDSPSのベースライン構成に基づいて、前記DDSPSの前記構成を調整する段階と、
前記DDSPS通常動作から得られるサンプル情報を決定する段階と、
前記サンプル情報に基づいて訓練された機械学習モデルを用いて前記DDSPSの性能モデルを生成する段階であって前記性能モデルが前記DDSPSの性能を予測するための数学モデルを含んでいる、段階と、
前記DDSPSの通常動作中に、前記性能モデルを用いて前記DDSPSの構成の変更が前記DDSPSの性能を向上させることが予測されるかを判断する段階と、
前記構成の変更が前記DDSPSの性能を向上させることが予測される場合に、前記DDSPSの通常動作中に、前記DDSPSに前記構成の変更を実装する段階と
を備える方法。
【請求項11】
前記DDSPSの通常動作から得られるサンプル情報を決定する段階は、
前記サンプル情報が前記DDSPSの通常動作を反映するように、前記サンプル情報を直接検索アルゴリズムを用いて取得する段階
を備える、請求項10に記載の方法。
【請求項12】
前記DDSPSについての前記構成を決定する段階は、
前記DDSPSについてのシステムプロビジョニング構成及びシステムパラメータ構成を決定する段階
を備える、請求項10又は11に記載の方法。
【請求項13】
前記DDSPSの前記構成を調整する段階は、
ネットワーク構成、システム構成、又は、前記DDSPS内の少なくとも1つのデバイスの構成のうちの少なくとも1つを調整する段階
を備える、請求項10から12のいずれか一項に記載の方法。
【請求項14】
前記DDSPSは、少なくとも1つのHadoopクラスタを備え、
サンプル情報を決定する段階は、
前記少なくとも1つのHadoopクラスタに対応する複数のジョブログファイルに少なくともアクセスする段階
を備える、請求項10から13のいずれか一項に記載の方法。
【請求項15】
前記サンプル情報は、1つ又は複数のサンプルを備え、
各サンプルは、
前記少なくとも1つのHadoopクラスタ内でワークロードを動作するための構成、前記ワークロードに対応するジョブログ、及び前記ワークロードに対応するリソース使用情報を少なくとも含む、
請求項14に記載の方法。
【請求項16】
前記性能モデルを用いて複数の構成を構成空間にわたって検索することによってシステム性能を最適化する段階
さらに備える、請求項10から15のいずれか一項に記載の方法。
【請求項17】
提示された前記構成の変更を含むサマリを提供する段階
をさらに備える、請求項10から16のいずれか一項に記載の方法。
【請求項18】
システムであって、
少なくともチューナモジュールを備えるデバイスを含み、
前記システムは、請求項10から17のいずれか一項に記載の前記方法を実行するよう設けられたシステム。
【請求項19】
請求項10から17のいずれか一項に記載の前記方法を実行するよう設けられるチップセット。
【請求項20】
請求項10から17のいずれか一項に記載の前記方法をコンピュータに実行させるためのプログラム。
【請求項21】
請求項20に記載の前記プログラムを格納するコンピュータ可読記録媒体。
【請求項22】
請求項10から17のいずれか一項に記載の前記方法を実行するよう設けられたDDSPSをチューニングするよう構成されたデバイス。
【請求項23】
請求項10から17のいずれか一項に記載の前記方法を実行する手段を持つデバイス。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、分散システムの最適化、より具体的には、分散データストレージ・処理システムの構成をチューニングするための複数のシステムに関する。
【背景技術】
【0002】
現代社会のバーチャル化(例えば、インターネットを通じて実行される個人及びビジネスのインタラクションの両方についての増大傾向)は、全面的なオンラインインタラクションから生成される大量の情報を管理する方法において少なくとも1つの課題を生んだ。増大する複数のオンライン企業をサポートするために必要なストレージスペース及び/又は処理の複数の要件は、単一の装置(例えば、サーバ)の複数の能力をほぼ直ちに超え得るので、情報を管理するためにサーバのグループが必要となり得る。より大きい企業は、多くのサーバラックを用い得る。各サーバラックは、全て企業データを格納及び処理することが課された複数のサーバを備える。その結果、連携されるべきサーバの数は、かなり多くなり得る。
【0003】
複数の解決策は時には他の複数の問題を生むので、情報が速やかに処理され、安全に格納され得ることを確実にすることを支援すべく、多数のサーバを管理するための方法が考えられなければならない。多数のサーバを管理するために使用され得る存在する解決策の少なくとも1つの例は、Apache Software Foundationによって提供されるHadoopソフトウェアライブラリである。Hadoopは、複数のクラスタ(例えば、複数のコンピュータのグループ)にわたる大量の情報の分散処理を可能にするフレームワークを提供する。例えば、Hadoopは、複数のタスクを、当該タスクを処理するのに適した(例えば、当該タスクを完了するために必要な情報を備える)複数のサーバに割り当てるよう構成されてよい。また、Hadoopは、サーバ又はさらにはラックが失われることが情報へのアクセスが失われることを意味しないことを保証するために、情報の複数のコピーを管理してよい。Hadoop及び他の類似の複数の管理ソリューションは、分散データストレージ・処理システムの効率を最大化するそれらの能力において大きな潜在能力を持ち得るものの、それらの潜在能力は、正確な構成を通じてのみ実現されることができる。現在、構成は、システムアーキテクチャの知識を持つ複数のオペレータによる頻繁なシステム「調整」の処理を通じて、手動で実行されなければならない。
【図面の簡単な説明】
【0004】
請求された主題の様々な実施形態の複数の特徴及び複数の利点が、以下の詳細な説明が進むにつれて、及び、複数の図面を参照することで、明らかになるだろう。ここで、同様の数字は同様の部分を示す。
図1】本開示の少なくとも1つの実施形態に係るチューナモジュールを含む分散データストレージ・処理システムの例を示す。
図2】本開示の少なくとも1つの実施形態に係る、チューナモジュールが存在し得るデバイスについての構成の例を示す。
図3】本開示の少なくとも1つの実施形態に係る、分散データストレージ・処理システムをチューニングするための複数の動作の例のフローチャートを示す。
図4図3に関して以前に開示された複数の動作の例において使用され得る情報、及び/又は、図3に関して以前に開示された複数の動作の例の間に実行され得る複数のタスクの複数の例を示す。 以下の詳細な説明が、例示の実施形態を参照しながら行われ、多くの変更例、変形例、及び代替例が当業者には明らかであろう。
【発明を実施するための形態】
【0005】
この開示は、分散データストレージ・処理システムのためのチューニングに関する複数のシステム及び複数の方法を説明する。最初に、用語「情報」及び「データ」は、この開示を通じて交換可能に使用されている。「分散データストレージ・処理システム」(DDSPS)は、本明細書中で参照されるように、1つ又は複数のネットワークによって接続された複数のデバイスを備えてよい。複数のデバイスは、データの格納又はデータの処理の少なくとも1つをするよう構成される。複数のデバイスは、複数の特定の状況において、ジョブ(例えば、単一のデータコンシューマ)のためにデータを処理及び/又は格納するよう共同して動作してよい。例えば、複数のデバイスは、複数の処理リソース(例えば、1つ又は複数のプロセッサ)及び複数のストレージリソース(例えば、電子機械式又はソリッドステート記憶デバイス)を備える複数のコンピューティングデバイス(例えば、複数のサーバ)を備えてよい。典型的にはHadoopに関連付けられる複数の構造、用語等が、本明細書中で説明のために参照され得るものの、開示された様々な実施形態がHadoopを用いるDDSPSのみの実装に限定されることを意図していない。それどころか、複数の実施形態は、本開示に整合性のある機能を可能にするあらゆるDDSPS管理システムで実装されてよい。
【0006】
一実施形態では、デバイスは、チューナモジュールを備えてよい。チューナモジュールは、例えば、部分的又は全体的にデバイス内で実行可能なソフトウェアとして具現されてよい。概して、チューナモジュールは、最終的にDDSPSについて推奨構成に導く複数の機能を実行するよう構成されてよい。例えば、チューナモジュールは、構成情報に少なくとも基づいてDDSPS構成を決定し、その後、ベースライン構成に基づいてDDSPS構成を調整するよう構成されてよい。チューナモジュールは、その後に、実際のDDSPS動作から得られたDDSPSについてのサンプル情報を決定し、DDSPSの性能モデルの生成にサンプル情報を使用するようさらに構成されてよい。チューナモジュールは、その後、性能モデルに基づいてシステムに対する複数の構成変更を評価し、評価に基づいて推奨構成を決定するようさらに構成されてよい。
【0007】
DDSPSに対する構成を決定することは、例えば、システムプロビジョニング構成及びシステムパラメータ構成を決定することを備えてよい。Hadoop DDSP(例えば、少なくとも1つのHadoopクラスタを持つDDSPS)では、HDSPS構成は、Hadoop分散ファイルシステム(HDFS)及びHadoop MapReduceエンジンの複数の設定ファイルに基づいて決定されてよい。DDSPS構成を調整することは、例えばネットワーク構成、システム構成又はDDSPS内の少なくとも1つデバイスの構成を調整することを備えてよい。Hadoop DDSP上で動作する場合、チューナモジュールは、1つ又は複数のサンプルを決定するよう構成されてよい。1つ又は複数のサンプルの各々は、Hadoopクラスタ内でワークロードを動作させるための構成、ワークロードに対応するジョブログ及びワークロードに対応するリソース使用情報を少なくとも含んでよい。DDSPSに対して性能モデルを生成することは、1つ又は複数のサンプルに基づくDDSPSの数学モデルを構築するよう構成されたチューナモジュールを備えてよい。数学モデルは、システム性能及び複数のシステム依存性の少なくとも1つを記述する。
【0008】
チューナモジュールは、その後、性能モデルを評価するよう構成されてよい。例えば、チューナモジュールは、構成空間を検索すること及び可能な性能モデルを用いて複数の構成を評価することによって、推奨構成を決定するようさらに構成されてよい。一実施形態では、推奨構成を決定すると、チューナモジュールはまた、推奨構成がDDSPS内に実装されるようにするよう構成されてよい。同一又は異なる実施形態において、チューナモジュールはまた、DDSPSの構成を変更するのに必要な複数の提示された変更を含むサマリを推奨構成内に提供するよう構成されてよい。
【0009】
図1は、本開示の少なくとも1つの実施形態に係るチューナモジュール114を含むDDSPS100の例を示す。Hadoopアーキテクチャに一般に関連付けられた用語を用いて、DDSPS100は、例えば、マスタ102及びHDFSクラスタ104を備えてよい。マスタは、例えば、ジョブトラッカ106、ネームノード108及びチューナモジュール114を含んでよい。各クラスタ1...nは、例えば、複数のワーカA...nを含んでよい。各ワーカは、対応するタスクトラッカ110A...n及びデータノード112A...nを含む。システム100を可視化するために使用可能な物理レイアウトの例は、クラスタ104が、1つ又は複数のサーバラックと、1つ又は複数のサーバラック内の複数のコンピューティングデバイス(例えば、複数のサーバ)に対応するワーカA...nとを備えてよい。
【0010】
マスタ102は、クラスタ104の構成を管理するよう、また、クラスタ104内のワーカA...nに複数のタスクを分散するよう構成されてよい。Hadoopにおいて、クラスタ1...n内のワーカA...nへの複数のタスクの分散はHadoop MapReduceエンジン又はジョブトラッカ106によって決定され得るものの、クラスタ104のデータ管理は、HDFSによって実行されてよい。HDFSは、各ワーカA...nに格納された情報を監視するよう構成されてよい。例えば、データノード112A...nの情報コンテンツを記述するメタデータは、ワーカA...n内のデータノード112A...nから、マスタ102内のネームノード108に通知され得る。この情報を有することで、HDFSは、データが存在する場所を認識し得るだけでなく、また、サーバ/ラックが機能停止している間に継続的なデータアクセスを保証することを支援するためにデータの複製も管理し得る。例えば、HDFSは、サーバラックが(例えば、不具合、メンテナンス等によって)停止した場合に引き続きDDSPS100内でデータを利用可能であることを保証するために、同一データの複数のコピーが同一サーバラック内に存在しないようにしてよい。ワーカA...nの位置及び構成はまた、複数のタスクをワーカA...nに割り当てるためにMapReduceエンジンによって使用されてよい。MapReduceは、複数のジョブを、処理するためにワーカA...nに分散され得る複数のより小さいタスクに分割するよう構成されてよい。各タスクが完了すると、ワーカA...nは、各タスクの複数の結果をマスタに返却してよい。ここで、複数の結果は、ジョブについて複数の結果にまとめられてよい。例えば、ジョブトラッカ106は、システム100によって実行される複数のジョブをスケジュールするよう、及び、データ位置を認識してタスクトラッカ110A...nのために複数のジョブを複数のタスクに分割するよう構成されてよい。例えば、データノード(例えば、データノード112B)内に格納されているデータを要求するタスクについての処理は、対応するサーバ(例えば、ワーカB)に割り当てられてよい。このことは、ワーカA...nの間の不要な複数のデータ転送を排除することによってネットワークトラフィックを削減し得る。
【0011】
チューナモジュール114は、DDSPS100から受信した構成情報の組み合わせ及びDDSPS100の実際の動作に基づくモデルに基づいてDDSPS100の構成をチューニングするよう構成されてよい。例えば、チューナモジュール114は、DDSPS100についての複数の設定ファイルにアクセスすることを可能にするためにマスタ内にインストールされてよい。DDSPS100を管理するためにApache Hadoopが用いられるある例において、複数のHDFS設定ファイル及び少なくともジョブトラッカ106は、チューナモジュール114にアクセス可能であってよい。選択肢として、チューナモジュール114はさらに、ジョブトラッカ106及びネームノード108の両方と連携するよう構成されてよい。ネームノード108との選択肢としての連携は、例えば、DDSPS100について推奨構成を決定するためにチューナモジュール114によって必要とされる情報、推奨構成の実装態様(例えば、手動又は自動)等に依存してよい。
【0012】
図2は、本開示の少なくとも1つの実施形態に係る、チューナモジュール114が存在し得るデバイスについての構成の例を示す。一般的に言うと、デバイス200は、DDSPS100のための管理ソフトウェア(例えば、Apache Hadoop)に加えてチューナモジュール114を実行するための適切な複数のリソース(例えば、処理能力及びメモリ)を持つあらゆるコンピューティングデバイスであってよい。複数のデバイスの例は、複数のタブレットコンピュータ、複数のラップトップコンピュータ、複数のデスクトップ型コンピュータ、複数のサーバ等を含んでよい。DDSPS100のマスタは、例えば大規模なDDSPS100を制御するために必要な複数のリソースのために複数のデバイスで構成されてよいものの、チューナモジュール114は、装置の1つのみに存在してよい。Hadoopが採用される場合、少なくとも複数のHDFS設定ファイル、複数のMapReduce設定ファイル、及びジョブトラッカ106がインストールされるのは同一のデバイスであってよい。デバイス200は、例えば、デバイス200における複数の動作を管理するよう構成され得るシステムモジュール202を備えてよい。システムモジュール202は、例えば、処理モジュール204、メモリモジュール206、電力モジュール208、ユーザインタフェースモジュール210、及び、通信モジュール214と連携するよう構成されてよい通信インタフェースモジュール212を含んでよい。示される実施形態において、チューナモジュール114は、メモリモジュール206内に存在するソフトウェアで主として構成されるものとして表されている。しかしながら、本明細書中で開示される様々な実施形態は、この実装のみに限定されず、チューナモジュール114がハードウェア及びソフトウェアの両方の要素を備える複数の実装を含んでよい。さらに、システムモジュール200外に示される通信モジュール214は、単に本明細書中の説明のために過ぎない。通信モジュール214に関連付けられた機能のいくつか又は全てはまた、システムモジュール202に組み込まれてよい。
【0013】
デバイス200において、処理モジュール204は、別個のコンポーネントに位置する1つ又は複数のプロセッサを備えてよく、又は代替的に、単一のコンポーネント内(例えば、システムオンチップ(SOC)構成内)に具現された1つ又は複数の処理コア及びあらゆるプロセッサ関連補助回路(例えば、複数のブリッジインタフェース等)を備えてよい。複数のプロセッサの例は、インテル社から入手可能な、Pentium(登録商標), Xeon, Itanium, Celeron, Atom, Core iシリーズの製品ファミリーのマイクロプロセッサを含む、x86ベースの様々なマイクロプロセッサを含んでよい。補助回路の複数の例は、処理モジュール204が、デバイス200において異なるスピードで動作、異なるバス上で動作等してよい他の複数のシステムコンポーネントと連携し得るインタフェースを提供するよう構成された複数のチップセット(例えば、インテル社から入手可能なノースブリッジ、サウスブリッジ等)を含んでよい。補助回路に一般に関連付けられた機能のいくつか又は全てはまた、プロセッサと同一の物理パッケージ(例えば、インテル社から入手可能なSandy Bridge集積回路のようなSOCパッケージ)に含まれてよい。一実施形態では、処理モジュール204は、単一のハードウェアプラットフォームで複数の仮想マシン(VM)の実行を可能にする仮想化技術(例えば、インテル社から入手可能ないくつかのプロセッサ及びチップセットで利用可能なVT−xテクノロジ)が装備されてよい。例えば、VT−xテクノロジはまた、ハードウェア強化されたmeasured launch environment(MLE)とともにソフトウェアベースの保護を強化するよう構成されたトラステッド・エグゼキューション・テクノロジ(TXT)を実装しよい。
【0014】
処理モジュール204は、デバイス200内で複数の命令を実行するよう構成されてよい。複数の命令は、データ読み出し、データ書き込み、データ処理、データ形成、データ転換、データ変換等に関連する複数のアクティビティを処理モジュール204に実行させるよう構成されたプログラムコードを含んでよい。情報(例えば、複数の命令、データ等)は、メモリモジュール206内に格納されてよい。メモリモジュール206は、固定又はリムーバブル式のランダムアクセスメモリ(RAM)又はリードオンリメモリ(ROM)を備えてよい。RAMは、デバイス200の動作中に情報を保持するよう構成された、例えばスタティックRAM(SRAM)又はダイナミックRAM(DRAM)などのメモリを含んでよい。ROMは、デバイス200が稼働するときに複数の命令を提供するよう構成されたBIOSメモリ、複数の電子的プログラマブルROM(複数のEPROM)などの複数のプログラマブルメモリ、フラッシュ等のような、複数のメモリを含んでよい。他の固定及び/又はリムーバブルメモリは、例えば複数のフロッピー(登録商標)ディスク、複数のハードドライブ等のような複数の磁気メモリ、ソリッドステートフラッシュメモリ(例えば、embedded multimedia card(eMMC)等)などの複数の電子メモリ、複数のリムーバブルメモリカード又はスティック(例えば、マイクロストレージデバイス(uSD)、USB等)、コンパクトディスクベースROM(CD−ROM)などの複数の光学メモリ等を含んでよい。電力モジュール208は、複数の内部電源(例えば、バッテリ)及び/又は複数の外部電源(例えば、電子機械式又は太陽発電、電力グリッド等)、並びに、動作するために必要な電力をデバイス200に供給するよう構成された関連回路含んでよい。
【0015】
ユーザインタフェースモジュール210は、複数のユーザが、例えば様々な入力機構(例えば複数のマイクロフォン、複数のスイッチ、複数のボタン、複数のノブ、複数のキーボード、複数のスピーカ、複数の接触感知表面、複数の画像を取得する、及び/又は、近接度、距離、動き、複数のジェスチャーを検知するよう構成されている1つ又は複数のセンサ等)、及び、出力機構(例えば、複数のスピーカ、複数のディスプレイ、複数の光/フラッシュインジケータ、振動、動きのための複数の電気機械コンポーネント等)などのデバイス200と連携することを可能にするよう構成されている回路を含んでよい。通信インタフェースモジュール212は、有線及び/又は無線通信をサポートするよう構成された複数のリソースを含み得る通信モジュール214のためにパケットルーティング及び他の複数の制御機能を処理するよう構成されてよい。複数の有線通信は、例えばイーサネット(登録商標)、ユニバーサルシリアルバス(USB)、ファイアワイア、デジタルビジュアルインタフェース(DVI)、高精細度マルチメディアインタフェース(HDMI(登録商標))等のようなシリアル及びパラレルの有線媒体を含んでよい。複数の無線通信は、例えば、複数の近接近無線媒体(例えば、近距離通信(NFC)規格に基づくなどの無線周波数(RF)、赤外(IR)、光学文字認識(OCR)、磁気文字検出等)、複数の近距離無線媒体(例えば、Bluetooth(登録商標)、WLAN、Wi−Fi等)、及び長距離無線媒体(例えば、セルラー、衛星等)を含んでよい。一実施形態では、通信インタフェースモジュール212は、通信モジュール214においてアクティブな複数の無線通信が互いに干渉することを防ぐよう構成されてよい。この機能の実行において、通信インタフェースモジュール212は、例えば送信を待つ複数のメッセージの相対的な優先順位に基づいて、通信モジュール214についての複数のアクティビティをスケジュールしてよい。
【0016】
動作中の間、チューナモジュール114は、デバイス200に関して上述したモジュールのいくつか又は全てと連携してよい。例えば、チューナモジュール114は、いくつかの例において、DDSPS100内の他の複数のデバイスとの通信に通信モジュール214を用いてよい。DDSPS100内の他の複数のデバイスとの通信は、例えば、DDSPS100についての構成情報を取得するため、DDSPS100におけるプロビジョニングを決定するため、DDSPS100についての推奨構成を実装するため等に行われてよい。一実施形態では、チューナモジュール114はまた、例えばDDSPS100に推奨構成を実装するために必要な複数の変更を集約するために、ユーザインタフェースモジュール210と連携するよう構成されてよい。
【0017】
図3は、本開示の少なくとも1つの実施形態に係る、DDSPS100をチューニングするための複数の動作の例のフローチャートを示す。オペレーション300におけるスタートアップに続いて、チューナモジュール114は、オペレーション302及び304において、最初に、DDSPS100の構成を評価するよう構成されてよい。一実施形態では、構成はプロビジョニング構成及びパラメータ構成に分けられてよい。オペレーション302において、DDSPS100のプロビジョニング構成は、評価されてよく、必要であれば再構成されてよい。図4の400に示されるように、プロビジョニング構成は、DDSPS100の物理構成に基づいてよい。物理構成は、例えば、DDSPS100内の複数のデバイス(例えば、複数のサーバ)、各デバイスの複数の機能(例えば、処理、ストレージ等)、各デバイスの位置(例えば、ビルディング、ラック等)、及び複数のデバイスを結んでいるネットワークの複数の機能(例えば、スループット、安定性等)を含む。この情報に基づいて、チューナモジュール114は、例えば、より大きい処理能力又はより豊富なストレージリソースを持つ複数のデバイスの利点を得るため、処理/ストレージリソースを利用すべく特定の複数の位置(例えば、同一のラック)で動作している複数のリソースを統合するため、より遅い複数のネットワークリンク、より遅い複数のデバイスを通じて実行される必要がある負荷を最小化するため等に、DDSPS100を再構成してよい。例えば、強力なマルチコアプロセッサ及びより小容量のソリッドステートドライブを持つデバイスは、時間的制約のある複数のトランザクションを処理するために使用されてよい。これに対し、より小さいパワーのプロセッサ及び大容量の磁気ディスクドライブを持つデバイスは、大量の情報を保管するために使用されてよい。行われ得る特定の複数の変更の複数の例は、例えば、DDSPS100についてのHDFSデータ及びHadoop中間データのストレージ位置を構成すること、インクリメンタルなデータサイズ(例えば、HadoopのようなJava(登録商標)プログラミング言語に基づく複数のシステムのためのJava(登録商標)仮想マシン(JVM)のヒープサイズ)を構成すること、フォールトトレランス(例えば、データが利用不可能になることを避けるべくデータが複製される複数の位置、データが複製される度合い等)を構成することを含んでよい。
【0018】
オペレーション304において、チューナモジュール114は、DDSPS100のパラメータ構成を評価してよい。パラメータ構成の評価において、チューナモジュール114は、DDSPS100及びDDSPS100を構成する複数のデバイスの両方の設定ファイルにアクセスするよう構成されてよい。チューナモジュール114は、その後、DDSPS100についての「ベースライン」構成に対する両方のパラメータ構成を評価してよく、それに従ってDDSPS100内の様々なパラメータを再構成してよい。本明細書中で言及されるようなベースラインは、DDSPS100を単に(例えば、実質的にエラーのない状態で)動作させるのに要求され得る、選択された複数のネットワークレベル構成、選択された複数のシステムレベル構成、選択された複数のデバイスレベル構成等を備えてよい。例えば、DDSPS100についてのベースライン構成は、管理ソフトウェアの提供者(例えば、Apache Hadoop)によって指示されてよい。
【0019】
図4の402に示されるように、チューナモジュール114によって評価及び/又は再構成されてよい複数のパラメータの複数の例は、例えば、DDSPS100内の1つ又は複数のデバイスの複数のファイルシステム属性をイネーブル又はディセーブルすること(例えば、ここで「local」はデバイスレベル構成を表す)、ローカルな複数のオペレーティングシステム(OS)における複数のファイルキャッシュ及びプリフェッチをイネーブル又はディセーブルすること、不必要なローカルセキュリティ及び/又はバックアップ保護をイネーブル又はディセーブルすること、重複するローカルアクティビティをディセーブルすること等を含んでよい。例えば、DDSPS100におけるパラメータの評価に続いて、チューナモジュール114は、DDSPS100についての管理ソフトウェアがDDSPS100を構成する複数のデバイスにおける複数のストレージリソースにアクセスすることから防ぎ得るセキュリティ対策をディセーブルしてよく、複数のデバイス間の情報転送を遅らせることができる任意の複数のローカルアクセス構成をディセーブルしてよく、DDSPS100についての管理システムが類似の保護(例えば、Hadoopは、DDSPS100内の異なる複数の位置におけるデータ複製をサポートする)を含むのでローカライズされた任意の障害保護(例えば、複数のサーバRAIDシステム)をディセーブルしてよい。
【0020】
初期の構成フェーズの後、チューナモジュール114は、DDSPS100の動作から得られたサンプル情報に基づいて性能モデルを決定するよう構成されてよく、性能モデルを用いて構成空間にわたる検索に基づいてDDSPS100についての推奨構成を決定するよう構成されてよい。 本明細書中で参照されるように、構成空間にわたる検索は、例えば、最初に、性能モデルについての全ての可能なパラメータ構成を決定すること(例えば、構成空間を決定する)、その後、以前の複数のシステム構成と比較してシステムが実行する方法を決定するべく(例えば、最適化アルゴリズムに基づいて)様々なパラメータの組み合わせを試行することによって構成空間「にわたって検索」することを備えてよい。実際の動作から複数のサンプルを得ることから実現され得る少なくとも1つの利点は、チューナモジュール114がDDSPS100の通常の動作の間にチューニングを実行し得ることである。例えば、チューナモジュール114がDDSPS100についての推奨構成を自動的に実装するよう構成される複数の例において、チューニングは、DDSPS100の複数のオペレータにトランスペアレントな態様で継続的に実行されてよい。性能モデルの決定は、オペレーション306においてサンプル情報を収集することを含んでよい。ここで、サンプル情報は、DDSPS100から得られる1つ又は複数のサンプルを含んでよい。DDSPS100を管理するためにHadoopが採用される例では、各サンプルは、例えば、DDSPS100内でワークロードを動作するための構成、ワークロードに対応するジョブログ(例えば、ジョブトラッカ102に関連付けられた複数のジョブログファイルから取得される)、ワークロードに対応するリソース使用情報等を含んでよい。DDSPS100の構成/パラメータ空間は、相当に大きくてよく、したがって、少なくとも1つの実施形態において複数のサンプルが「スマート」サンプリングを用いて選択されてよい。スマートサンプリングは、パラメータ空間にわたって複数のサンプルをインテリジェントに収集する(例えば、上述したワークロード情報の複数のセット)ための、例えば複数の遺伝的アルゴリズム、シミュレーテッド・アニーリング、複数のシンプレックス法、勾配降下、再帰ランダムサンプリング等に基づく直接検索アルゴリズムを用いることを含んでよい。(例えば、DDSPS100の通常の動作を好適に反映する)特定の複数のサンプルを選択することは、DDSPS100の動作の挙動を正確に表すために必要なサンプルの総数を低減し得る。
【0021】
一実施形態では、性能モデルは、オペレーション306で収集された複数のサンプルに基づいてオペレーション308で訓練された機械学習モデルであってよい。例えば、性能モデルは、DDSPS100の性能をエミュレートしてよい複数の設定可能パラメータを含む数学モデルであってよい。性能モデルの構築は、例えば、異なるパラメータの間の非線形な相互作用/依存性を効率的にモデルするよう構成されてよい管理された機械学習アルゴリズムに、オペレーション306においてDDSPS100から取得された複数のサンプルを入力することからもたらされてよい。管理された機械学習アルゴリズムの例は、複数の人工ニューラルネットワーク(複数のANN)、M5決定木、サポートベクトル回帰(SVR)等を含んでよい。性能モデルは、様々なパラメータを用いてDDSPS100のシステム性能を記述してよい。 図4の404で示されるように、Hadoopによって管理されている場合のDDSPS100に関する複数のパラメータの例は、例えば、Map及びReduceのタスクレベルパラメータ、複数のシャッフルパラメータ、ジョブ及び/又はタスクの完成時間の複数の関係性、ワーカノードリソースアクティビティ及び分散システム(例えば、DDSPS100)リソースのプロビジョニングを含んでよい。オペレーション310において、サンプリング及び訓練は、DDSPS100の性能をエミュレートするのに必要な正確度を持つ複数の性能モデルの結果まで続いてよい。正確度は、例えば、ワークロードの複数のパラメータを性能モデルにセットすること、及び、性能モデルの性能予測がDDSPS100から取得された複数のサンプルにおいて観測された実際の複数の結果に十分に近接している(例えば、許容誤差内)かを判断することによって、検証されてよい。
【0022】
オペレーション308及び310において性能モデルが訓練された後、チューナモジュール114は、DDSPS100についての推奨構成に到達することを最終目標として、性能モデルを用いてDDSPS100に対する複数の可能な構成変更を検索するよう構成されてよい。オペレーション312において、チューナモジュール114は、構成空間を検索するために最適化検索アルゴリズムを用いてよく、DDSPS100についての最適構成を決定するために性能モデルを用いて構成をテストしてよい。例えば、オペレーション316及び318において、チューナモジュール114は、最適化アルゴリズムに基づいて複数のパラメータ構成を選択するよう、及び、モデルを用いてパラメータ構成の性能をテストするよう構成されてよい。パラメータ構成の性能は、DDSPS100の性能が複数の変更の結果として向上するかを判断するために、以前の複数の構成と比較されてよい。検索アルゴリズムは、例えば、システム性能の複数の問題(例えば、複数の関連性、複数のボトルネック、複数の依存性等)を、複数の性能問題を軽減するために実装され得る複数のパラメータ構成の決定において、考慮してよい。
【0023】
オペレーション318において最適構成が達成された場合、オペレーション320においてチューナモジュール114は、推奨構成に作用してよい。一実施形態では、チューナモジュール114は、DDSPS100に推奨構成を自動的に自訴ストライプするよう構成されてよい。 推奨構成を自動的に実装することは、例えば、DDSPS100内の管理ソフトウェア(例えば、Apache Hadoop)に、推奨構成に達するために複数の変更を実装させることを含んでよい。これは、HDFS及びMapReduce設定ファイル内の情報の変更又は更新、ローカルな複数の構成を変更するためのDDSPS100内の複数の特定デバイスとの通信、複数のネットワーク構成を変更するための複数のネットワークデバイスとの通信等を行うチューナモジュール114によって行われてよい。同一又は異なる実施形態において、チューナモジュール114はまた、複数の提示された変更を、推奨構成を実装するためにDDSPS100の構成に集約するよう構成されてよい。例えば、チューナモジュール114は、推奨の再構成のいくつか又は全てを自動的に実装させることができなくてよく、代わりに、必要な複数の変更を、例えば報告形式で集約してよい(例えば、報告を表示又は紙に印刷するためにそれを提供してよい)。報告は、例えば、再構成されるべきDDSPS100の複数の部分、場合によってはDDSPS100にこれらの変更を加えるための方法を示してよい。再構成の提示だけ又は組み合わせで、報告はまた、特定の複数のデバイス、ネットワーク装置等をDDSPS100における複数のボトルネックとして特定してよく、問題のある複数のデバイス、ネットワーク装置等のアップグレード又はリプレースを推奨してよい。
【0024】
図3は実施形態における様々な動作を示しているものの、図3に示される全ての動作が他の複数の実施形態で必要というわけではない点を理解されたい。実際に、本明細書中において、本開示の複数の他の実施形態では、図3に示された複数のオペレーション及び/又は本明細書中に記載された他の複数のオペレーションは、どの図面のいずれにも明示的に示されない態様で組み合わされてよいが依然として本開示に完全に整合し得ることが十分に理解される。したがって、1つの図面に厳密に示されていない複数の特徴及び/又は複数の動作に向けられた複数の請求項は、本開示の範囲及び内容の内にあるとみなされる。
【0025】
本明細書中の任意の実施形態で使用されるような「モジュール」という用語は、上述した複数の動作のいずれかを実行するよう構成されたソフトウェア、ファームウェア及び/又は回路のことを指していてよい。ソフトウェアは、複数の非一時的コンピュータ可読ストレージ媒体に格納される、ソフトウェアパッケージ、コード、複数の命令、複数の命令セット及び/又はデータとして具現されてよい。ファームウェアは、複数のメモリデバイスにハードコードされた(例えば、不揮発性である)、コード、複数の命令又は複数の命令セット及び/又はデータとして具現されてよい。本明細書中の任意の実施形態で使用されるような「回路」は、例えば、ハードワイヤード回路、1つ又は複数の個別の命令処理コアを備える複数のコンピュータプロセッサなどのプログラマブル回路、ステートマシン回路、及び/又は、プログラマブル回路によって実行される複数の命令を格納するファームウェアを単体で又は任意に組み合わせて備えてよい。複数のモジュールは、まとめて又は個別に、例えば集積回路(IC)、システムオンチップ(SoC)、複数のデスクトップ型コンピュータ、複数のラップトップコンピュータ、複数のタブレットコンピュータ、複数のサーバ、複数のスマートフォン等のより大きなシステムの一部を形成する回路として具現されてよい。
【0026】
本明細書中に記載された動作のいずれも、1つ又は複数のプロセッサによって実行された場合に、複数の方法を実行する複数の命令を、個別に又は組み合わせて格納している1つ又は複数の記憶媒体を含むシステム内に実装され得る。ここで、プロセッサは、例えば、サーバのCPU、モバイルデバイスのCPU、及び/又は他のプログラマブル回路を含んでよい。また、本明細書中に記載された複数の動作は、1つより多くの異なる物理的位置での複数の処理構造などの複数の物理デバイスにわたって分散されてよいことが意図される。記憶媒体は、例えば、複数のハードディスク、複数のフロッピー(登録商標)ディスク、複数の光ディスク、複数のコンパクトディスクリードオンリメモリ(複数のCD−ROM)、複数の書き換え可能コンパクトディスク(複数のCD−RW)及び複数の光磁気ディスクを含む任意のタイプのディスク、複数のリードオンリメモリ(複数のROM)、複数のダイナミック及びスタティックRAMなどの複数のランダムアクセスメモリ(複数のRAM)、複数の消去可能プログラマブルリードオンリメモリ(複数のEPROM)、電気的消去可能プログラマブルリードオンリメモリ(複数のEEPROM)、複数のフラッシュメモリ、複数のソリッドステートディスク(複数のSSD)、複数のembedded multimedia card(複数のeMMC)、複数のsecure digital input/output (SDIO)カードなどの複数の半導体デバイス、複数の磁気又は光カード、又は複数の電子命令を格納するための適切な任意のタイプの媒体である、任意のタイプの有形の媒体を含んでよい。複数の他の実施形態は、プログラマブル制御デバイスによって実行されるソフトウェアモジュールとして実装されてよい。
【0027】
したがって、本開示は、分散データ及びストレージ・処理システムについてのチューニングを記載する。デバイスは、分散データ及びストレージ・処理システムの構成をデバイス内で利用可能な構成情報に少なくとも基づいて決定し、ベースライン構成に基づいて、分散データ及びストレージ・処理システムの構成を調整するよう構成されたチューナモジュールを備えてよい。チューナモジュールは、その後、分散データ及びストレージ・処理システムについての、分散データ及びストレージ・処理システムの実際の動作から得られるサンプル情報を決定し、分散データ及びストレージ・処理システムの性能モデルを生成するのにサンプル情報を使用するよう、さらに構成されてよい。チューナモジュールは、その後、性能モデルに基づいてシステムに対する複数の構成変更を評価し、評価に基づいて、分散データ及びストレージ・処理システムの推奨構成を決定するよう、さらに構成されてよい。
【0028】
以下の複数の例は、複数のさらなる実施形態に関する。例示的な一実施形態において、デバイスが提供される。デバイスは、少なくとも構成情報に基づいて、分散データストレージ・処理システムについての構成を決定し、分散データストレージ・処理システムのベースライン構成に基づいて、分散データストレージ・処理システムの構成を調整し、分散データストレージ・処理システムについての、分散データストレージ・処理システムの動作から得られるサンプル情報を決定し、サンプル情報に基づいて、分散データストレージ・処理システムの性能モデルを生成し、性能モデルを用いて分散データストレージ・処理システムに対する複数の構成変更を評価し、構成変更の評価に基づいて推奨構成を決定するよう構成されたチューナモジュールを少なくとも含んでよい。
【0029】
上記の例示のデバイスは、チューナモジュールが、ソフトウェアコンポーネントを備え、デバイスが、デバイス中のメモリ内に格納されたプログラムコードを実行するよう構成された少なくとも1つのプロセッサをさらに備え、プログラムコードの実行が、ソフトウェアコンポーネントを生成するよう、さらに構成されてよい。
【0030】
上記の例示のデバイスは、分散データストレージ・処理システムについての構成を決定するよう構成されたチューナモジュールが、分散データストレージ・処理システムについてのシステムプロビジョニング構成及びシステムパラメータ構成を決定するよう構成されたチューナモジュールを備えるよう、上記の例示の複数の構成に加えて又は単独で、さらに構成されてよい。
【0031】
上記の例示のデバイスは、分散データストレージ・処理システムの構成を調整するよう構成されたチューナモジュールが、ネットワーク構成、システム構成、又は、分散データストレージ・処理システム内の少なくとも1つのデバイスの構成のうちの少なくとも1つを調整するよう構成されたチューナモジュールを備えるよう、上記の例示の複数の構成に加えて又は単独で、さらに構成されてよい。
【0032】
上記の例示のデバイスは、分散データストレージ・処理システムが、少なくとも1つのHadoopクラスタを備え、サンプル情報を決定するよう構成されるチューナモジュールが、デバイスで利用可能な、少なくとも1つのHadoopクラスタに対応する複数のジョブログファイルに少なくともアクセスするよう構成されたチューナモジュールを備えるよう、上記の例示の複数の構成に加えて又は単独で、さらに構成されてよい。この構成において、例示のデバイスは、サンプル情報が、1つ又は複数のサンプルを備え、各サンプルが、少なくとも1つのHadoopクラスタ内でワークロードを動作するための構成、ワークロードに対応するジョブログ、及びワークロードに対応するリソース使用情報を少なくとも含むよう、さらに構成されてよい。この構成において、例示のデバイスは、分散データストレージ・処理システムの性能モデルを生成するよう構成されたチューナモジュールが、1つ又は複数のサンプルに基づいて分散データストレージ・処理システムの数学モデルを構築するよう構成されたチューナモジュールを備え、数学モデルが、システム性能及び複数のシステム依存性のうちの少なくとも1つを記述するよう、さらに構成されてよい。
【0033】
上記の例示のデバイスは、分散データストレージ・処理システムに対する複数の構成変更を評価するよう構成されたチューナモジュールが、推奨構成を決定するために性能モデルを用いて複数の構成を構成空間にわたって検索し評価することによってシステム性能を最適化するよう構成されたチューナモジュールを備えるよう、上記の例示の複数の構成に加えて又は単独で、さらに構成されてよい。
【0034】
上記の例示のデバイスは、分散データストレージ・処理システムに推奨構成を実装させるよう構成されたチューナモジュールを、上記の例示の複数の構成に加えて又は単独で、さらに備えてよい。
【0035】
上記の例示のデバイスは、分散データストレージ・処理システムの構成を推奨構成に変更するために必要な複数の提示された変更を含むサマリを提供するよう構成されたチューナモジュールを、上記の例示の複数の構成に加えて又は単独で、さらに備えてよい。
【0036】
別の例示の実施形態では、方法が提供される。方法は、少なくとも構成情報に基づいて、分散データストレージ・処理システムについての構成を決定する段階と、分散データストレージ・処理システムのベースライン構成に基づいて、分散データストレージ・処理システムの構成を調整する段階と、分散データストレージ・処理システムについての、分散データストレージ・処理システムの動作から得られるサンプル情報を決定する段階と、サンプル情報に基づいて、分散データストレージ・処理システムの性能モデルを生成する段階と、性能モデルを用いて分散データストレージ・処理システムに対する複数の構成変更を評価する段階と、構成変更の評価に基づいて推奨構成を決定する段階とを含んでよい。
【0037】
上記の例示の方法は、分散データストレージ・処理システムについての構成を決定する段階が、分散データストレージ・処理システムについてのシステムプロビジョニング構成及びシステムパラメータ構成を決定する段階を備えるよう、さらに構成されてよい。
【0038】
上記の例示の方法は、分散データストレージ・処理システムの構成を調整する段階が、ネットワーク構成、システム構成、又は、分散データストレージ・処理システム内の少なくとも1つのデバイスの構成のうちの少なくとも1つを調整する段階を備えるよう、上記の例示の複数の構成に加えて又は単独で、さらに構成されてよい。
【0039】
上記の例示の方法は、分散データストレージ・処理システムが、少なくとも1つのHadoopクラスタを備え、サンプル情報を決定する段階が、少なくとも1つのHadoopクラスタに対応する複数のジョブログファイルに少なくともアクセスする段階を備えるよう、上記の例示の複数の構成に加えて又は単独で、さらに構成されてよい。この構成において、例示の方法は、サンプル情報が、1つ又は複数のサンプルを備え、各サンプルは、少なくとも1つのHadoopクラスタ内でワークロードを動作するための構成、ワークロードに対応するジョブログ、及びワークロードに対応するリソース使用情報を少なくとも含むよう、さらに構成されてよい。この構成において、例示の方法は、分散データストレージ・処理システムの性能モデルを生成する段階が、1つ又は複数のサンプルに基づいて分散データストレージ・処理システムの数学モデルを構築する段階を備え、数学モデルは、システム性能及び複数のシステム依存性のうちの少なくとも1つを記述するよう、さらに構成されてよい。
【0040】
上記の例示の方法は、分散データストレージ・処理システムに対する複数の構成変更を評価する段階が、推奨構成を決定するために性能モデルを用いて複数の構成を構成空間にわたって検索し評価することによってシステム性能を最適化する段階を備えるよう、上記の例示の複数の構成に加えて又は単独で、さらに構成されてよい。
【0041】
上記の例示の方法は、分散データストレージ・処理システムに推奨構成を実装させる段階を、上記の例示の複数の構成に加えて又は単独で、さらに備えてよい。
【0042】
上記の例示の方法は、分散データストレージ・処理システムの構成を推奨構成に変更するために必要な複数の提示された変更を含むサマリを提供する段階を、上記の例示の複数の構成に加えて又は単独で、さらに備えてよい。
【0043】
別の例示の実施形態では、システムであって、少なくともチューナモジュールを備えるデバイスを含み、上記の例示の複数の方法のいずれかを実行するよう設けられたシステムが提供される。
【0044】
別の例示の実施形態では、上記の例示の複数の方法のいずれかを実行するよう設けられるチップセットが提供される。
【0045】
別の例示の実施形態では、コンピューティングデバイスで実行されることに応じて、コンピューティングデバイスに、上記の例示の複数の方法のいずれかを実行させる複数の命令を備える少なくとも1つの機械可読媒体が提供される。
【0046】
別の例示の実施形態では、上記の例示の複数の方法のいずれかを実行するよう設けられた分散データストレージ・処理システムをチューニングするよう構成されたデバイスが提供される。
【0047】
別の例示の実施形態では、上記の例示の複数の方法のいずれかを実行する手段を持つデバイスが提供される。
【0048】
別の例示の実施形態では、1つ又は複数のプロセッサによって実行された場合に、システムに、上記の例示の複数の方法のいずれかを実行することをもたらす複数の命令を単独で又は組み合わせで格納する少なくとも1つの機械可読記憶媒体を備えるシステムが提供される。
【0049】
別の例示の実施形態では、デバイスが提供される。デバイスは、少なくとも構成情報に基づいて、分散データストレージ・処理システムについての構成を決定し、分散データストレージ・処理システムのベースライン構成に基づいて、分散データストレージ・処理システムの構成を調整し、分散データストレージ・処理システムについての、分散データストレージ・処理システムの動作から得られるサンプル情報を決定し、サンプル情報に基づいて、分散データストレージ・処理システムの性能モデルを生成し、性能モデルを用いて分散データストレージ・処理システムに対する複数の構成変更を評価し、構成変更の評価に基づいて推奨構成を決定するよう構成されたチューナモジュールを少なくとも含んでよい。
【0050】
上記の例示のデバイスは、分散データストレージ・処理システムが、少なくとも1つのHadoopクラスタを備え、サンプル情報を決定するよう構成されるチューナモジュールが、デバイスで利用可能な、少なくとも1つのHadoopクラスタに対応する複数のジョブログファイルに少なくともアクセスするよう構成されたチューナモジュールを備えるよう、さらに構成されてよい。この構成において、例示のデバイスは、サンプル情報が、1つ又は複数のサンプルを備え、各サンプルが、少なくとも1つのHadoopクラスタ内でワークロードを動作するための構成、ワークロードに対応するジョブログ、及びワークロードに対応するリソース使用情報を少なくとも含むよう、さらに構成されてよい。この構成において、例示のデバイスは、分散データストレージ・処理システムの性能モデルを生成するよう構成されたチューナモジュールが、1つ又は複数のサンプルに基づいて分散データストレージ・処理システムの数学モデルを構築するよう構成されたチューナモジュールを備え、数学モデルが、システム性能及び複数のシステム依存性のうちの少なくとも1つを記述するよう、さらに構成されてよい。
【0051】
上記の例示のデバイスは、分散データストレージ・処理システムに対する複数の構成変更を評価するよう構成されたチューナモジュールが、推奨構成を決定するために性能モデルを用いて複数の構成を構成空間にわたって検索し評価することによってシステム性能を最適化するよう構成されたチューナモジュールを備えるよう、上記の例示の複数の構成に加えて又は単独で、さらに構成されてよい。
【0052】
上記の例示のデバイスは、分散データストレージ・処理システムに推奨構成を実装させること、又は、分散データストレージ・処理システムの構成を推奨構成に変更するために必要な複数の提示された変更を含むサマリを提供することの少なくとも1つをするよう構成されたチューナモジュールを、上記の例示の複数の構成に加えて又は単独で、さらに備えてよい。
【0053】
別の例示の実施形態では、方法が提供される。方法は、少なくとも構成情報に基づいて、分散データストレージ・処理システムについての構成を決定する段階と、分散データストレージ・処理システムのベースライン構成に基づいて、分散データストレージ・処理システムの構成を調整する段階と、分散データストレージ・処理システムについての、分散データストレージ・処理システムの動作から得られるサンプル情報を決定する段階と、サンプル情報に基づいて、分散データストレージ・処理システムの性能モデルを生成する段階と、性能モデルを用いて分散データストレージ・処理システムに対する複数の構成変更を評価する段階と、構成変更の評価に基づいて推奨構成を決定する段階とを含んでよい。
【0054】
上記の例示の方法は、分散データストレージ・処理システムが、少なくとも1つのHadoopクラスタを備え、サンプル情報を決定する段階が、少なくとも1つのHadoopクラスタに対応する複数のジョブログファイルに少なくともアクセスする段階を備えるよう、さらに構成されてよい。この構成において、例示の方法は、サンプル情報が、1つ又は複数のサンプルを備え、各サンプルは、少なくとも1つのHadoopクラスタ内でワークロードを動作するための構成、ワークロードに対応するジョブログ、及びワークロードに対応するリソース使用情報を少なくとも含むよう、さらに構成されてよい。この構成において、例示の方法は、分散データストレージ・処理システムの性能モデルを生成する段階が、1つ又は複数のサンプルに基づいて分散データストレージ・処理システムの数学モデルを構築する段階を備え、数学モデルは、システム性能及び複数のシステム依存性のうちの少なくとも1つを記述するよう、さらに構成されてよい。
【0055】
上記の例示の方法は、分散データストレージ・処理システムに対する複数の構成変更を評価する段階が、推奨構成を決定するために性能モデルを用いて複数の構成を構成空間にわたって検索し評価することによってシステム性能を最適化する段階を備えるよう、上記の例示の複数の構成に加えて又は単独で、さらに構成されてよい。
【0056】
上記の例示の方法は、分散データストレージ・処理システムに推奨構成を実装させる段階、又は、分散データストレージ・処理システムの構成を推奨構成に変更するために必要な複数の提示された変更を含むサマリを提供する段階の少なくとも1つを、上記の例示の複数の構成に加えて又は単独で、さらに備えてよい。
【0057】
別の例示の実施形態では、システムであって、少なくともチューナモジュールを備えるデバイスを含み、上記の例示の複数の方法のいずれかを実行するよう設けられたシステムが提供される。
【0058】
別の例示の実施形態では、上記の例示の複数の方法のいずれかを実行するよう設けられるチップセットが提供される。
【0059】
別の例示の実施形態では、コンピューティングデバイスで実行されることに応じて、コンピューティングデバイスに、上記の例示の複数の方法のいずれかを実行させる複数の命令を備える少なくとも1つの機械可読媒体が提供される。
【0060】
別の例示の実施形態では、デバイスが提供される。デバイスは、少なくとも構成情報に基づいて、分散データストレージ・処理システムについての構成を決定し、分散データストレージ・処理システムのベースライン構成に基づいて、分散データストレージ・処理システムの構成を調整し、分散データストレージ・処理システムについての、分散データストレージ・処理システムの動作から得られるサンプル情報を決定し、サンプル情報に基づいて、分散データストレージ・処理システムの性能モデルを生成し、性能モデルを用いて分散データストレージ・処理システムに対する複数の構成変更を評価し、構成変更の評価に基づいて推奨構成を決定するよう構成されたチューナモジュールを少なくとも含んでよい。
【0061】
上記の例示のデバイスは、チューナモジュールが、ソフトウェアコンポーネントを備え、デバイスが、デバイス中のメモリ内に格納されたプログラムコードを実行するよう構成された少なくとも1つのプロセッサをさらに備え、プログラムコードの実行が、ソフトウェアコンポーネントを生成するよう、さらに構成されてよい。
【0062】
上記の例示のデバイスは、分散データストレージ・処理システムについての構成を決定するよう構成されたチューナモジュールが、分散データストレージ・処理システムについてのシステムプロビジョニング構成及びシステムパラメータ構成を決定するよう構成されたチューナモジュールを備えるよう、上記の例示の複数の構成に加えて又は単独で、さらに構成されてよい。
【0063】
上記の例示のデバイスは、分散データストレージ・処理システムの構成を調整するよう構成されたチューナモジュールが、ネットワーク構成、システム構成、又は、分散データストレージ・処理システム内の少なくとも1つのデバイスの構成のうちの少なくとも1つを調整するよう構成されたチューナモジュールを備えるよう、上記の例示の複数の構成に加えて又は単独で、さらに構成されてよい。
【0064】
上記の例示のデバイスは、分散データストレージ・処理システムが、少なくとも1つのHadoopクラスタを備え、サンプル情報を決定するよう構成されるチューナモジュールが、デバイスで利用可能な、少なくとも1つのHadoopクラスタに対応する複数のジョブログファイルに少なくともアクセスするよう構成されたチューナモジュールを備えるよう、上記の例示の複数の構成に加えて又は単独で、さらに構成されてよい。この構成において、例示のデバイスは、サンプル情報が、1つ又は複数のサンプルを備え、各サンプルが、少なくとも1つのHadoopクラスタ内でワークロードを動作するための構成、ワークロードに対応するジョブログ、及びワークロードに対応するリソース使用情報を少なくとも含むよう、さらに構成されてよい。この構成において、例示のデバイスは、分散データストレージ・処理システムの性能モデルを生成するよう構成されたチューナモジュールが、1つ又は複数のサンプルに基づいて分散データストレージ・処理システムの数学モデルを構築するよう構成されたチューナモジュールを備え、数学モデルが、システム性能及び複数のシステム依存性のうちの少なくとも1つを記述するよう、さらに構成されてよい。
【0065】
上記の例示のデバイスは、分散データストレージ・処理システムに対する複数の構成変更を評価するよう構成されたチューナモジュールが、推奨構成を決定するために性能モデルを用いて複数の構成を構成空間にわたって検索し評価することによってシステム性能を最適化するよう構成されたチューナモジュールを備えるよう、上記の例示の複数の構成に加えて又は単独で、さらに構成されてよい。
【0066】
上記の例示のデバイスは、分散データストレージ・処理システムに推奨構成を実装させるよう構成されたチューナモジュールを、上記の例示の複数の構成に加えて又は単独で、さらに備えてよい。
【0067】
上記の例示のデバイスは、分散データストレージ・処理システムの構成を推奨構成に変更するために必要な複数の提示された変更を含むサマリを提供するよう構成されたチューナモジュールを、上記の例示の複数の構成に加えて又は単独で、さらに備えてよい。
【0068】
別の例示の実施形態では、方法が提供される。方法は、少なくとも構成情報に基づいて、分散データストレージ・処理システムについての構成を決定する段階と、分散データストレージ・処理システムのベースライン構成に基づいて、分散データストレージ・処理システムの構成を調整する段階と、分散データストレージ・処理システムについての、分散データストレージ・処理システムの動作から得られるサンプル情報を決定する段階と、サンプル情報に基づいて、分散データストレージ・処理システムの性能モデルを生成する段階と、性能モデルを用いて分散データストレージ・処理システムに対する複数の構成変更を評価する段階と、構成変更の評価に基づいて推奨構成を決定する段階とを含んでよい。
【0069】
上記の例示の方法は、分散データストレージ・処理システムについての構成を決定する段階が、分散データストレージ・処理システムについてのシステムプロビジョニング構成及びシステムパラメータ構成を決定する段階を備えるよう、さらに構成されてよい。
【0070】
上記の例示の方法は、分散データストレージ・処理システムの構成を調整する段階が、ネットワーク構成、システム構成、又は、分散データストレージ・処理システム内の少なくとも1つのデバイスの構成のうちの少なくとも1つを調整する段階を備えるよう、上記の例示の複数の構成に加えて又は単独で、さらに構成されてよい。
【0071】
上記の例示の方法は、分散データストレージ・処理システムが、少なくとも1つのHadoopクラスタを備え、サンプル情報を決定する段階が、少なくとも1つのHadoopクラスタに対応する複数のジョブログファイルに少なくともアクセスする段階を備えるよう、上記の例示の複数の構成に加えて又は単独で、さらに構成されてよい。この構成において、例示の方法は、サンプル情報が、1つ又は複数のサンプルを備え、各サンプルは、少なくとも1つのHadoopクラスタ内でワークロードを動作するための構成、ワークロードに対応するジョブログ、及びワークロードに対応するリソース使用情報を少なくとも含むよう、さらに構成されてよい。この構成において、例示の方法は、分散データストレージ・処理システムの性能モデルを生成する段階が、1つ又は複数のサンプルに基づいて分散データストレージ・処理システムの数学モデルを構築する段階を備え、数学モデルは、システム性能及び複数のシステム依存性のうちの少なくとも1つを記述するよう、さらに構成されてよい。
【0072】
上記の例示の方法は、分散データストレージ・処理システムに対する複数の構成変更を評価する段階が、推奨構成を決定するために性能モデルを用いて複数の構成を構成空間にわたって検索し評価することによってシステム性能を最適化する段階を備えるよう、上記の例示の複数の構成に加えて又は単独で、さらに構成されてよい。
【0073】
上記の例示の方法は、分散データストレージ・処理システムに推奨構成を実装させる段階を、上記の例示の複数の構成に加えて又は単独で、さらに備えてよい。
【0074】
上記の例示の方法は、分散データストレージ・処理システムの構成を推奨構成に変更するために必要な複数の提示された変更を含むサマリを提供する段階を、上記の例示の複数の構成に加えて又は単独で、さらに備えてよい。
【0075】
別の例示の実施形態では、システムが提供される。システムは、少なくとも構成情報に基づいて、分散データストレージ・処理システムについての構成を決定する手段と、分散データストレージ・処理システムのベースライン構成に基づいて、分散データストレージ・処理システムの構成を調整する手段と、分散データストレージ・処理システムについての、分散データストレージ・処理システムの動作から得られるサンプル情報を決定する手段と、サンプル情報に基づいて、分散データストレージ・処理システムの性能モデルを生成する手段と、性能モデルを用いて分散データストレージ・処理システムに対する複数の構成変更を評価する手段と、構成変更の評価に基づいて推奨構成を決定する手段とを含んでよい。
【0076】
上記の例示のシステムは、分散データストレージ・処理システムについての構成を決定することが、分散データストレージ・処理システムについてのシステムプロビジョニング構成及びシステムパラメータ構成を決定することを備えるよう、さらに構成されてよい。
【0077】
上記の例示のシステムは、分散データストレージ・処理システムの構成を調整することが、ネットワーク構成、システム構成、又は、分散データストレージ・処理システム内の少なくとも1つのデバイスの構成のうちの少なくとも1つを調整することを備えるよう、上記の例示の複数の構成に加えて又は単独で、さらに構成されてよい。
【0078】
上記の例示のシステムは、分散データストレージ・処理システムが、少なくとも1つのHadoopクラスタを備え、サンプル情報を決定することが、少なくとも1つのHadoopクラスタに対応する複数のジョブログファイルに少なくともアクセスすることを備えるよう、上記の例示の複数の構成に加えて又は単独で、さらに構成されてよい。この構成において、例示のシステムは、サンプル情報が、1つ又は複数のサンプルを備え、各サンプルは、少なくとも1つのHadoopクラスタ内でワークロードを動作するための構成、ワークロードに対応するジョブログ、及びワークロードに対応するリソース使用情報を少なくとも含むよう、さらに構成されてよい。この構成において、例示のシステムは、分散データストレージ・処理システムの性能モデルを生成することが、1つ又は複数のサンプルに基づいて分散データストレージ・処理システムの数学モデルを構築することを備え、数学モデルは、システム性能及び複数のシステム依存性のうちの少なくとも1つを記述するよう、さらに構成されてよい。
【0079】
上記の例示のシステムは、分散データストレージ・処理システムに対する複数の構成変更を評価することが、推奨構成を決定するために性能モデルを用いて複数の構成を構成空間にわたって検索し評価することによってシステム性能を最適化することを備えるよう、上記の例示の複数の構成に加えて又は単独で、さらに構成されてよい。
【0080】
上記の例示のシステムは、分散データストレージ・処理システムに推奨構成を実装させる手段を、上記の例示の複数の構成に加えて又は単独で、さらに備えてよい。
【0081】
上記の例示のシステムは、分散データストレージ・処理システムの構成を推奨構成に変更するために必要な複数の提示された変更を含むサマリを提供する手段を、上記の例示の複数の構成に加えて又は単独で、さらに備えてよい。
【0082】
本明細書中で使用されている複数の用語及び複数の語句は、説明のための複数の用語として使用されており、限定のための複数の用語として使用されているものではない。そして、そのような複数の用語及び複数の語句の使用において、示され説明された複数の特徴(又はその複数の部分)についての任意の均等物を排除することを意図していない。そして、様々な変更が特許請求の範囲内で可能であることが認識される。したがって、特許請求の範囲は、そのような均等物全てを包含するように意図される。
図1
図2
図3
図4