JP2015530647A - System and method for tuning a cloud computing system - Google Patents
System and method for tuning a cloud computing system Download PDFInfo
- Publication number
- JP2015530647A JP2015530647A JP2015526575A JP2015526575A JP2015530647A JP 2015530647 A JP2015530647 A JP 2015530647A JP 2015526575 A JP2015526575 A JP 2015526575A JP 2015526575 A JP2015526575 A JP 2015526575A JP 2015530647 A JP2015530647 A JP 2015530647A
- Authority
- JP
- Japan
- Prior art keywords
- node
- workload
- configurator
- configuration
- cluster
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 83
- 230000000977 initiatory effect Effects 0.000 claims abstract description 8
- 238000012544 monitoring process Methods 0.000 claims description 106
- 238000012545 processing Methods 0.000 claims description 76
- 230000008569 process Effects 0.000 claims description 13
- 239000000872 buffer Substances 0.000 claims description 10
- 230000004931 aggregating effect Effects 0.000 claims description 3
- 238000012360 testing method Methods 0.000 description 125
- 238000004891 communication Methods 0.000 description 84
- 238000010586 diagram Methods 0.000 description 50
- 238000003860 storage Methods 0.000 description 21
- 239000003795 chemical substances by application Substances 0.000 description 20
- 230000007246 mechanism Effects 0.000 description 20
- 239000002131 composite material Substances 0.000 description 18
- 230000004048 modification Effects 0.000 description 18
- 238000012986 modification Methods 0.000 description 18
- 238000004422 calculation algorithm Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 14
- 238000004458 analytical method Methods 0.000 description 13
- 238000005259 measurement Methods 0.000 description 13
- 210000000609 ganglia Anatomy 0.000 description 12
- 238000011056 performance test Methods 0.000 description 11
- 238000013515 script Methods 0.000 description 11
- 230000008859 change Effects 0.000 description 10
- 238000009826 distribution Methods 0.000 description 8
- 230000006399 behavior Effects 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 6
- 238000012546 transfer Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 238000005070 sampling Methods 0.000 description 4
- 238000004088 simulation Methods 0.000 description 4
- 230000002776 aggregation Effects 0.000 description 3
- 238000004220 aggregation Methods 0.000 description 3
- 230000015572 biosynthetic process Effects 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 230000010076 replication Effects 0.000 description 3
- 238000003786 synthesis reaction Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000012384 transportation and delivery Methods 0.000 description 2
- 241000989913 Gunnera petaloidea Species 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 239000011218 binary composite Substances 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000007728 cost analysis Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 230000009849 deactivation Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000001343 mnemonic effect Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 238000012913 prioritisation Methods 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000010187 selection method Methods 0.000 description 1
- 230000004936 stimulating effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000010998 test method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
- G06F11/3428—Benchmarking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3476—Data logging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3495—Performance evaluation by tracing or monitoring for systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/865—Monitoring of software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/508—Monitor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Debugging And Monitoring (AREA)
- Computer And Data Communications (AREA)
- Stored Programmes (AREA)
Abstract
本開示は、クラウドコンピューティングシステム等のコンピューティングシステムをコンフィギュアするための方法及びシステムに関する。方法は、複数ノードのクラスタのコンフィギュレーションパラメータの複数の異なるセットに基づきコンピューティングシステムの複数ノードのクラスタ上でのワークロードの複数の実行を開始することを含む。コンフィギュレーションパラメータは、ワークロードコンテナの動作パラメータ、少なくとも1つのノードのブート時間パラメータ、及び、少なくとも1つのノードのハードウェアコンフィギュレーションパラメータの少なくとも1つを含む。方法は、更に、ワークロードの各実行に際してモニタされた複数ノードのクラスタの少なくとも1つの性能特性と、複数ノードのクラスタの少なくとも1つの所望の性能特性と、の比較に基づき、複数ノードのクラスタのためのコンフィギュレーションパラメータのセットを、コンフィギュレーションパラメータの複数の異なるセットから選択することを含む。方法は、更に、選択されたコンフィギュレーションパラメータのセットでコンフィギュアされた複数ノードのクラスタによる実行のために、ワークロードを複数ノードのクラスタに提供することを含む。【選択図】図1The present disclosure relates to methods and systems for configuring a computing system, such as a cloud computing system. The method includes initiating multiple executions of a workload on a multiple node cluster of a computing system based on multiple different sets of configuration parameters of the multiple node cluster. The configuration parameters include at least one of workload container operational parameters, at least one node boot time parameter, and at least one node hardware configuration parameter. The method further includes, based on a comparison of at least one performance characteristic of the multi-node cluster monitored at each execution of the workload, and at least one desired performance characteristic of the multi-node cluster, of the multi-node cluster. Selecting a set of configuration parameters for a plurality of different sets of configuration parameters. The method further includes providing a workload to the multi-node cluster for execution by the multi-node cluster configured with the selected set of configuration parameters. [Selection] Figure 1
Description
本開示は、概してコンピューティングシステムの分野に関し、より特定的にはクラウドコンピューティングシステムの性能特性をコンフィギュア及び/又はモニタするための方法及びシステムに関する。 The present disclosure relates generally to the field of computing systems, and more particularly to methods and systems for configuring and / or monitoring performance characteristics of cloud computing systems.
クラウドコンピューティングは、例えば、インターネット等のネットワークを介してのホストサービスの受け渡し(delivery)に関与する。クラウドコンピューティングシステムは、エンドユーザへのサービスとしてコンピューティング能力及び記憶容量の受け渡しを提供する。クラウドコンピューティングシステムは、分散型通信ネットワーク上で動作する複数のサーバ、即ち複数の「ノード」を含み、各ノードはローカル処理能力及びメモリを含む。例えば、クラウドコンピューティングシステムの各ノードは、コンピューティング能力を提供するための少なくとも1つの処理デバイスと、記憶容量を提供するためのメモリと、を含む。ユーザは、アプリケーションをローカル的に実行し又はデータをローカル的に記憶するよりもむしろ、クラウド上、即ち複数ノードの「クラスタ」上でアプリケーションを遠隔的に実行し又はデータを遠隔的に記憶することができる。エンドユーザは、例えばローカルコンピュータ上のウェブブラウザその他の何らかのソフトウェアアプリケーションを介してクラウドベースのアプリケーションにアクセスすることができる一方で、そのソフトウェアアプリケーション及び/又はそのソフトウェアアプリケーションに関連するデータは、遠隔位置にあるクラウドノード上で記憶され且つ/又は実行される。クラウドコンピューティングリソースは、典型的には、要求に応じてエンドユーザに割り振られ(allocated)、これには、エンドユーザによって利用されたリソースの実際の量に対応するクラウドコンピューティングシステムコストが伴う。 Cloud computing is involved in delivery of a host service via a network such as the Internet, for example. Cloud computing systems provide the delivery of computing capacity and storage capacity as a service to end users. A cloud computing system includes a plurality of servers or “nodes” operating on a distributed communication network, each node including local processing power and memory. For example, each node of a cloud computing system includes at least one processing device for providing computing capabilities and memory for providing storage capacity. Rather than running the application locally or storing the data locally, the user can run the application remotely or store the data remotely on the cloud, i.e. on a "cluster" of multiple nodes Can do. An end user can access a cloud-based application, for example via a web browser or some other software application on the local computer, while the software application and / or data associated with the software application is at a remote location. Stored and / or executed on a cloud node. Cloud computing resources are typically allocated to end users on demand, which is accompanied by cloud computing system costs that correspond to the actual amount of resources utilized by the end users.
コンピューティングタスクは、ワークロードの形態で、クラウドコンピューティングシステムの複数のノードに分散される。ノードは、ワークロードの処理を共有するように動作する。ワークロード(「カーネル」とも称する)は、複数ノードのクラウド上で行われ実行されるコンピューティングジョブ又はタスクを含む。ワークロードは、ソフトウェアコード又はファームウェアコードの集まり及び任意の必要なデータを備えており、任意のアプリケーション若しくはプログラム又は複数ノードのクラスタ上で実行されるアプリケーション若しくはプログラムの一部を含む。例えば、1つの例示的なワークロードは、1つ以上のアルゴリズムを実装するアプリケーションである。例示的なアルゴリズムは、例えば、データセットをクラスタ化し、ソーティングし、分類し又はフィルタリングすることを含む。他の例示的なワークロードは、コンピューティングサービスをエンドユーザに提供するために実行されるサービス指向型アプリケーションを含む。幾つかの形態では、ワークロードは、複製されて複数のノード上で一斉に実行される単一のアプリケーションを含む。ロードバランサは、ワークロードに関連付けられた処理ロードを複数ノードが共有するように、ワークロードと共に実行されるべき要求を複数ノードのクラスタに分散させる。複数ノードのクラスタは、ワークロードの実行の結果について協働して最終結果を生成する。 Computing tasks are distributed across multiple nodes of a cloud computing system in the form of a workload. Nodes operate to share workload processing. A workload (also referred to as a “kernel”) includes computing jobs or tasks that are performed and executed on a multi-node cloud. A workload comprises a collection of software or firmware code and any necessary data, including any application or program or part of an application or program that runs on a cluster of nodes. For example, one exemplary workload is an application that implements one or more algorithms. Exemplary algorithms include, for example, clustering, sorting, classifying, or filtering data sets. Other exemplary workloads include service-oriented applications that are executed to provide computing services to end users. In some forms, the workload includes a single application that is replicated and executed simultaneously on multiple nodes. A load balancer distributes requests to be executed with a workload across a cluster of nodes so that multiple nodes share the processing load associated with the workload. The multi-node cluster collaborates on the results of the workload execution to produce a final result.
ワークロードコンテナは、ワークロードコンテナモジュール(例えばソフトウェアコード又はファームウェアコード)を実行しているノードの1つ以上のプロセッサを備えており、各ノード上で動作する。ワークロードコンテナは、複数ノードのクラスタ上でのワークロードの実行を開始し且つ指揮するソフトウェア環境を提供する、ワークロードのための実行フレームワークである。ワークロードコンテナは、典型的には、複数ノードのクラスタ上の特定のクラスのワークロードのための実行フレームワークを提供する。ワークロードコンテナは、関連ノードが、クラウドのあるノードとして、そのノードがワークロードを実行し、ワークロード実行の結果をクラウドの他のノードと共有し、且つ、クラウドの他のノードと協働及び通信するように動作するように、関連ノードをコンフィギュアする。1つの形態では、ワークロードコンテナは、他のノードとインタフェースすると共に関連ノードの他のアプリケーション及びハードウェアともインタフェースするためのアプリケーションプログラムインタフェース(APIs)又はXMLベースのインタフェースを含む。 The workload container comprises one or more processors of nodes executing workload container modules (eg, software code or firmware code) and runs on each node. A workload container is an execution framework for workloads that provides a software environment that initiates and directs execution of workloads on a multi-node cluster. Workload containers typically provide an execution framework for a particular class of workloads on a multi-node cluster. A workload container is a related node as a node in the cloud, where the node executes the workload, shares the results of the workload execution with other nodes in the cloud, and cooperates with other nodes in the cloud and Configure related nodes to operate in communication. In one form, the workload container includes application program interfaces (APIs) or XML-based interfaces for interfacing with other nodes as well as other applications and hardware of the associated node.
1つの例示的なワークロードコンテナは、マップリデュース(map-reduce)ワークロードのためのマップリデュースフレームワーク及び分散型ファイルシステム(HDFS)を提供するJAVA(登録商標)ベースのアパッチハドゥープ(Apache Hadoop)である。ハドゥープワークロードコンテナを伴って動作する複数ノードのクラスタは、典型的には、マスタノードと、複数のワーカノードと、を含む。ハドゥープワークロードコンテナは、各ノードへのマスタ状態又はワーカ状態の割り当て(assignment)を連携させると共に、各ノードにそれがクラウド上で動作していることを通知する。マスタノードは、ジョブ(即ちワークロード)の開始及び完了並びにファイルシステムメタデータを追跡する。マップリデュースフレームワークの「マップ」段階においては、1つのタスク、即ち1つのワークロードは、複数の部分(即ち、1つ以上の処理スレッドの複数のグループ)へと区分化され、そのワークロードの複数部分は、それら処理スレッド及び関連入力データを処理する複数のワーカノードへと分散させられる。「リデュース」段階においては、各ワーカノードからの出力が収集されて結合され、最終的な結果又は回答が生成される。ハドゥープの分散型ファイルシステム(HDFS)は、データを記憶し、複数のワーカノード間でデータを通信するために利用される。HDFSファイルシステムは、データ複製をサポートして、データ及びファイルのコピーを複数記憶することによってデータ信頼性の尤度を高める。 One exemplary workload container is a Java-based Apache Hadoop that provides a map reduce framework and a distributed file system (HDFS) for map-reduce workloads. ). A multi-node cluster operating with a hadoop workload container typically includes a master node and a plurality of worker nodes. The Hadoop workload container coordinates the assignment of the master state or worker state to each node and notifies each node that it is operating on the cloud. The master node tracks the start and completion of jobs (ie workloads) and file system metadata. In the “map” phase of the map reduce framework, one task, or workload, is partitioned into multiple parts (ie, multiple groups of one or more processing threads) The multiple parts are distributed to multiple worker nodes that process the processing threads and associated input data. In the “reduce” phase, the outputs from each worker node are collected and combined to produce the final result or answer. The Hadoop Distributed File System (HDFS) is used to store data and communicate data between multiple worker nodes. The HDFS file system supports data replication and increases the likelihood of data reliability by storing multiple copies of data and files.
従来のクラウドコンピューティングプラットフォームにおいて複数ノードのクラスタをセットアップし又はコンフィギュアすることは、険しい学習曲線を必要とする複雑な処理である。クラウドソフトウェア及びワークロードは、各ノードに個別に展開される必要があり、また、いかなるコンフィギュレーション変化であっても各ノードに個別に展開される必要がある。複数ノードのクラスタの性能を解析しクラウドセットアップを最適化することは、複数の独立変数を伴い、多くの場合に時間のかかるものであり、特定のアプリケーションをモニタし且つ解析するのに適したその場その場での(ad-hoc)インタフェースを必要とする。特に、クラウドのオペレータ又はエンジニアは、ワークロードがどのように実行されているかについてのデータを獲得し、ワークロードの実際の結果を獲得するために、コマンドを作成する必要がある。加えて、そのようなデータは、目下のシステムコンフィギュレーションに特有なフォーマットの形態にあり、当該データは、クラウドのオペレータ又はエンジニアによって、性能解析に適した形態に統一される必要もある。クラウドのオペレータ又はエンジニアにとっては、クラウドメカニズム、任意のネットワーキング問題、システム管理関連のタスク、並びに、利用可能な性能解析ツールの展開及びデータフォーマットの具体的詳細について学習することが要求される。更に、ワークロードの性能を複数ノードのクラスタ上でモニタし解析することは、複雑であり、時間もかかり、特定のクラウドコンフィギュレーションに依存する。クラウドのオペレータ又はエンジニアは、特定のクラウドシステムのためのコンフィギュレーション及びハードウェア情報の全ての内情に通じているとは限らず、このことが正確な性能解析を困難にしている。 Setting up or configuring a multi-node cluster in a conventional cloud computing platform is a complex process that requires a steep learning curve. Cloud software and workloads need to be deployed to each node individually, and any configuration changes need to be deployed to each node individually. Analyzing the performance of a multi-node cluster and optimizing a cloud setup involves multiple independent variables, often time consuming, and is suitable for monitoring and analyzing a specific application. Requires an ad-hoc interface. In particular, the cloud operator or engineer needs to create commands in order to obtain data about how the workload is running and to obtain the actual results of the workload. In addition, such data is in a format specific to the current system configuration, and the data needs to be unified by a cloud operator or engineer into a form suitable for performance analysis. Cloud operators or engineers are required to learn about cloud mechanisms, any networking issues, system management related tasks, and specific details of available performance analysis tool deployments and data formats. Furthermore, monitoring and analyzing workload performance on a multi-node cluster is complex, time consuming, and depends on the specific cloud configuration. A cloud operator or engineer is not familiar with all the details of the configuration and hardware information for a particular cloud system, which makes accurate performance analysis difficult.
今日では、例えばアマゾンウェブサービス(Amazon Web Services)(AWS)及びオープンスタック(OpenStack)を含め、いくつかのクラウドコンピューティングプラットフォームが利用可能である。アマゾンのAWSは、エラスティックコンピュートクラウド(Elastic Compute Cloud)(EC2)を含み、クラウドコンピューティングシステムとしての使用のために、複数ノード(サーバ)のクラスタをエンドユーザに貸し出す。AWSは、ユーザが複数ノードのクラスタを割り振ること及び複数ノードのそのクラスタ上でワークロードを実行することを許可している。AWSは、特定のハードウェアコンフィギュレーション及びソフトウェアコンフィギュレーションを要求する等の種々の制約で、ユーザがアマゾン提供のサーバハードウェア上でのみワークロードを実行するように制限している。オープンスタックは、ユーザがユーザ提供のハードウェア上で複数ノードのクラスタを構築し管理することを許可している。AWS及びオープンスタックには、ワークロード及びワークロードコンテナソフトウェアを迅速にコンフィギュアして各ノードに展開し、ネットワークパラメータを修正し、またクラスタの全ノードからの性能データを集約するためのメカニズムが欠けている。 Today, several cloud computing platforms are available, including, for example, Amazon Web Services (AWS) and OpenStack. Amazon's AWS includes an Elastic Compute Cloud (EC2) and lends a cluster of multiple nodes (servers) to end users for use as a cloud computing system. AWS allows a user to allocate a cluster of nodes and run a workload on that cluster of nodes. AWS restricts users to run workloads only on Amazon-provided server hardware with various constraints, such as requiring specific hardware and software configurations. The open stack allows a user to build and manage a multi-node cluster on user-provided hardware. AWS and open stack lack mechanisms to quickly configure workload and workload container software to deploy to each node, modify network parameters, and aggregate performance data from all nodes in the cluster. ing.
特定のローカルプロセッサの性能をテストする既知の方法は、そのローカルプロセッサによって実行可能なユーザ指定のパラメータに基づく合成バイナリコードを作成することを含む。しかし、バイナリ合成コードの作成には、ユーザがユーザ指定のパラメータをハードコード化することが必要であり、かなりの展開時間を要し、対象となるプロセッサのアーキテクチャに関する予備知識も必要である。そのようなハードコード化された合成コードは、対象となるプロセッサの特定の命令セットアーキテクチャ(instruction set architecture)(ISA)(例えばx86)や特定のマイクロアーキテクチャを対象として書かれていなければならない。命令セットアーキテクチャとは、データのタイプ/フォーマット、命令、データブロックサイズ、処理レジスタ、メモリアドレッシングモード、メモリアーキテクチャ、割り込み及び例外の扱い、I/O等を識別するコンピュータアーキテクチャのコンポーネントのことである。マイクロアーキテクチャとは、データパス、データ処理要素(例えば論理ゲート、演算論理ユニット(ALUs)等)、データ記憶要素(例えばレジスタ、キャッシュ等)などを識別し、また、プロセッサがどのように命令セットアーキテクチャを実装するのかを識別するコンピュータアーキテクチャのコンポーネントのことである。従って、合成コードは、他の1つ以上のプロセッサの種々の命令セットアーキテクチャや異なるマイクロアーキテクチャを実行するためには、修正された又は新たなハードコード化パラメータ及び命令で再設計される必要がある。このため、そのようなハードコード化された合成コードは、クラウドコンピューティングシステムの複数のノードをテストするのには適していない。 A known method of testing the performance of a particular local processor involves creating synthetic binary code based on user-specified parameters that can be executed by that local processor. However, the creation of the binary composite code requires that the user hard-codes the parameters specified by the user, requires considerable development time, and requires prior knowledge about the architecture of the target processor. Such hard-coded composite code must be written for a specific instruction set architecture (ISA) (eg, x86) or a specific microarchitecture of the target processor. The instruction set architecture is a component of the computer architecture that identifies the type / format of data, instructions, data block size, processing registers, memory addressing mode, memory architecture, interrupt and exception handling, I / O, etc. Microarchitecture identifies data paths, data processing elements (eg, logic gates, arithmetic logic units (ALUs), etc.), data storage elements (eg, registers, caches, etc.), and how the processor sets the instruction set architecture. A component of a computer architecture that identifies whether to implement Thus, the composite code needs to be redesigned with modified or new hard-coded parameters and instructions to implement various instruction set architectures or different microarchitectures of one or more other processors. . For this reason, such hard-coded composite code is not suitable for testing multiple nodes of a cloud computing system.
ローカルプロセッサの性能をテストする他の方法は、標準性能評価法人(Standard Performance Evaluation Corporation)(SPEC)によって提供されるワークロード等の業界標準のワークロード又はトレースを実行して、プロセッサの性能を性能ベンチマークと比較するものである。しかし、業界標準のワークロードを完全に実行するためには、多くの場合に多大なシミュレーション時間が必要である。関連するより小さなトレースをプロセッサによる実行のためにワークロードから抽出する場合には、シミュレーション時間が短縮されるかもしれないが、関連するトレースを識別し抽出するための余分な技術的努力が必要とされる。更に、業界標準のワークロードの選択又はワークロードからのより小さなトレースの抽出は、1つ以上のプロセッサの異なるアーキテクチュラルコンフィギュレーションに対して繰り返されなければならない。 Another way to test local processor performance is to run processor-standard workloads or traces such as those provided by the Standard Performance Evaluation Corporation (SPEC) to improve processor performance. It is to be compared with the benchmark. However, a large amount of simulation time is often required to fully run an industry standard workload. Extracting related smaller traces from the workload for execution by the processor may reduce simulation time, but requires extra technical effort to identify and extract related traces. Is done. Furthermore, the selection of industry standard workloads or the extraction of smaller traces from the workloads must be repeated for different architectural configurations of one or more processors.
コンピューティング能力及び記憶容量をエンドユーザへのサービスとして受け渡す現行のクラウドシステムには、クラウドシステムの複数ノードのクラスタの各ノードのブート時間コンフィギュレーションを変更するメカニズムが欠けている。例えば、ブート時間コンフィギュレーション変更は、複数ノードのブート時間パラメータを修正するためにエンジニア又はプログラマによってクラウドの各ノード上へハードコード化される必要があり、多大な時間がかかり、また煩雑なものである。更に、エンジニアは、コンフィギュレーションコードを書くにあたり、複数ノードのクラスタのハードウェア及びコンピュータアーキテクチャに関する詳細な知識を有している必要がある。 Current cloud systems that deliver computing capacity and storage capacity as a service to end users lack a mechanism to change the boot time configuration of each node in a cluster of multiple nodes of the cloud system. For example, boot time configuration changes need to be hard coded onto each node in the cloud by an engineer or programmer to modify the boot time parameters of multiple nodes, which can be time consuming and cumbersome. is there. In addition, engineers need to have detailed knowledge of the hardware and computer architecture of a multi-node cluster in writing configuration code.
コンピューティング能力及び記憶容量をエンドユーザへのサービスとして受け渡す典型的なクラウドシステムには、ユーザが複数ノードからなる割り振られたクラスタのネットワークコンフィギュレーションを特定すること及び修正することを可能にするメカニズムが欠けている。多くのクラウドシステムでは、ユーザは、汎用タイプのノードを要求することができるだけであり、ネットワークトポロジ、つまりノードの物理的及び論理的なネットワーク接続性に関する直接制御や要求したノードのネットワーク性能特性に関する直接制御を行うことが不可能であり、可能であったとしてもごく僅かである。例えば、アマゾンAWSは、ユーザが国内又は世界のある同じ地域(例えば米国東部又は西部、欧州、等)に物理的に位置しているノードを選択することを可能にしているが、それらノードのネットワーク接続性やそれらノードのネットワーク性能特性を選択することができないし、修正することもできない。更に、選択されたノードの幾つかは、国内の同じ地域あるいはましてや同じデータセンタ内にあるにもかかわらず、他の選択されたノードから物理的に遠く離れている場合がある。例えば、クラウドシステムによって割り振られたノードは、分散型データセンタ内で物理的に遠く離れた別のラック上にあることがあり、結果としてノード間のネットワーク性能が低下したり一貫性がなくなったりしてしまう。 A typical cloud system that delivers computing capacity and storage capacity as a service to an end user has a mechanism that allows the user to identify and modify the network configuration of an allocated cluster of nodes Is missing. In many cloud systems, the user can only request a generic type of node, and directly control the network topology, that is, the physical and logical network connectivity of the node and the network performance characteristics of the requested node. Control is impossible and very little, if possible. For example, Amazon AWS allows users to select nodes that are physically located in the same region of the country or the world (eg, US East or West, Europe, etc.), but the network of those nodes Connectivity and network performance characteristics of those nodes cannot be selected or modified. In addition, some of the selected nodes may be physically remote from other selected nodes even though they are in the same region of the country or even in the same data center. For example, nodes allocated by a cloud system may be on separate racks that are physically far apart in a distributed data center, resulting in poor or inconsistent network performance between nodes. End up.
同様に、典型的なクラウドシステムでは、ノードクラスタの実際のハードウェアリソースに対するエンドユーザによる制御が制限されており、あるいは不可能である。例えば、ノードを割り振る場合、ユーザは、汎用タイプのノードを要求することができるだけである。各利用可能なノードのタイプは、ノードのCPUの数、利用可能なメモリ、利用可能なディスクスペース、及び、ノードが位置する国内又は世界の地域によって分類されることがある。しかし、割り振られたノードは、選択されたノードタイプとして的確なハードウェア特性を有していないかもしれない。選択可能なノードタイプは粗い分類である。例えば、ノードタイプは、システムメモリ及びディスクスペースの量並びにノードの処理コアの数に応じて、小型、中型、大型及び超大型であるものを含み得る。しかし、同じ汎用タイプとして選択されたノードであっても、システムにより割り振られたノードのコンピューティング能力及び記憶容量が変化することがある。例えば、利用可能なメモリ及びディスクスペース並びに動作周波数や他の特性がばらつき得るし、即ちそれらの値のある一定の範囲内に収まることになろう。例えば、「中型」ノードは、1500MB〜5000MBのシステムメモリ及び200GB〜400GBの記憶容量を有する任意のノードを含み得る。従って、ユーザは、割り振られたノードの実際のハードウェアコンフィギュレーションに通じているとは限らない。更に、同数のプロセッサ及び同じメモリ/ディスクスペースを有するノード間でさえも、これらのノードの他のハードウェア特性が変化することがある。例えば、同様のノードであっても、ノードの動作周波数、キャッシュのサイズ、32ビットアーキテクチャであるのか64ビットアーキテクチャであるのか、ノードの製造業者、命令セットアーキテクチャ等に基づいてばらつきが生じ、ユーザは、選択されたノードのこれらの特性について制御することができない。 Similarly, in a typical cloud system, end user control over the actual hardware resources of the node cluster is limited or impossible. For example, when allocating a node, the user can only request a generic type node. Each available node type may be categorized by the number of CPUs in the node, available memory, available disk space, and the country or world region where the node is located. However, the allocated node may not have the exact hardware characteristics as the selected node type. The node types that can be selected are rough classifications. For example, node types may include small, medium, large and very large depending on the amount of system memory and disk space and the number of processing cores in the node. However, even for nodes selected as the same general purpose type, the computing capacity and storage capacity of the nodes allocated by the system may change. For example, available memory and disk space as well as operating frequency and other characteristics may vary, i.e., fall within a certain range of those values. For example, a “medium” node may include any node having 1500 MB to 5000 MB of system memory and 200 GB to 400 GB of storage capacity. Thus, the user is not necessarily familiar with the actual hardware configuration of the allocated node. Further, even between nodes having the same number of processors and the same memory / disk space, other hardware characteristics of these nodes may change. For example, even for similar nodes, variations occur based on node operating frequency, cache size, 32-bit or 64-bit architecture, node manufacturer, instruction set architecture, etc. There is no control over these properties of the selected node.
多くの場合、ユーザは、ユーザのアプリケーション又はワークロードに必要な具体的なハードウェアリソースについて明確に理解していない。ノードクラスタをセットアップしてワークロードを実行することが難しい結果、ユーザが異なるハードウェアコンフィギュレーションを試す機会は限られている。このことは、割り振られたノードの実際のハードウェアリソースに関するユーザの知識が欠如していることと相まって、しばしば結果として、利用下にあるハードウェアリソースに対する不必要な費用をユーザにもたらす。CPU、メモリ及びディスク並びに単一の物理的処理マシンのネットワーク利用に関する測定が可能な種々のモニタリングツールが利用可能である。しかし、現行のクラウドシステムは、ユーザがこれらのモニタリングツールをクラスタの複数ノードに展開してハードウェア使用量をモニタすることを可能にするメカニズムを提供していない。従って、ユーザは、ワークロード実行に際しての実際のハードウェア利用を知ることができない。最も一般的なクラウドサービスは、ユーザによって要求され使用されたハードウェアリソースの、ワークロードを実行している間の費用に関する基本情報を提供することができる会計メカニズムを用意している。しかし、そのようなメカニズムは、要求されたハードウェアリソースのコストに関する基本情報を提供するだけであるから、ワークロード実行に際して使用された実際のハードウェアリソースを識別しない。 In many cases, the user does not have a clear understanding of the specific hardware resources required for the user's application or workload. As a result of the difficulty of setting up node clusters and running workloads, users have limited opportunities to try different hardware configurations. This, coupled with the lack of user knowledge about the actual hardware resources of the allocated nodes, often results in unnecessary costs for the hardware resources under use. Various monitoring tools are available that can measure the network utilization of the CPU, memory and disk and a single physical processing machine. However, current cloud systems do not provide a mechanism that allows users to deploy these monitoring tools to multiple nodes of a cluster to monitor hardware usage. Therefore, the user cannot know the actual hardware usage when executing the workload. The most common cloud services provide an accounting mechanism that can provide basic information about the cost of hardware resources requested and used by users while running a workload. However, such a mechanism only provides basic information about the cost of the requested hardware resource and thus does not identify the actual hardware resource used in the workload execution.
多くのクラウドシステムでは、ユーザがノードクラスタのコンフィギュレーションを調節し改善するために、限定された数のコンフィギュレーションパラメータしか利用できない。例えば、ユーザは、クラウドコンフィギュレーションを変更するために、異なる汎用ノードタイプの幾つかのノードを選択することができるだけであろう。更に、各コンフィギュレーション変更は、ユーザが、ノードクラスタのための幾つかのノードを選択すると共にこれらのノードでワークロードを開始することによって手動で実装されなければならない。コンフィギュレーション変更を適用し結果をテストするためのそのような手動労力は、費用がかかり、また時間を浪費する。更に、ノード性能をテストするのに利用可能な種々の性能モニタリングツールは、典型的には単一の物理的処理マシンに適しており、現行のクラウドシステムには、ユーザがこれらのモニタリングツールをクラスタの複数ノードに展開してノードクラスタの性能を異なるコンフィギュレーションでテストすることを可能にするメカニズムが欠けている。 In many cloud systems, only a limited number of configuration parameters are available for the user to adjust and improve the configuration of the node cluster. For example, the user may only be able to select several nodes of different generic node types to change the cloud configuration. Furthermore, each configuration change must be implemented manually by the user selecting several nodes for the node cluster and starting the workload on these nodes. Such manual effort to apply configuration changes and test results is expensive and time consuming. In addition, the various performance monitoring tools available for testing node performance are typically suitable for a single physical processing machine, and in current cloud systems, users can cluster these monitoring tools. It lacks a mechanism that allows it to be deployed across multiple nodes to test the performance of a node cluster with different configurations.
そこで、任意サイズのノードクラスタ上でのワークロードの作成、展開、提供、実行及びデータ集約を自動化するための方法及びシステムが求められている。また、ワークロード及びワークロードコンテナソフトウェアを迅速にコンフィギュアして各ノードに展開すると共にクラスタの全ノードからのワークロード性能データを集約し解析する方法及びシステムが求められている。また、クラウドコンピューティングシステムの複数のノードの性能をテストすると共にモニタされた性能に基づくクラウドコンピューティングシステムの自動化されたコンフィギュレーションチューニングを提供する方法及びシステムが求められている。また、種々のコンピュータアーキテクチャを有するノードプロセッサをテストするためのクラウドコンピューティングシステム上での実行に対する再対象化可能な(retargetable)合成テストワークロードを作成する方法及びシステムが求められている。また、クラウドコンピューティングシステムの複数ノードのブート時間コンフィギュレーションの修正を提供する方法及びシステムが求められている。また、クラウドシステムの複数ノードのクラスタのネットワークコンフィギュレーションの修正を容易にする方法及びシステムが求められている。また、クラウドシステムの所望のネットワークトポロジ、所望のネットワーク性能及び/又は所望のハードウェア性能に基づく、複数ノードのクラスタのために適したノードの自動化された選択を可能にする方法及びシステムが求められている。また、ワークロード実行に際してのノードクラスタのハードウェアリソースの使用量を測定すると共にハードウェア使用量フィードバックをユーザに提供し及び/又はハードウェアリソースのモニタされた使用量に基づきノードクラスタコンフィギュレーションを自動的に修正する方法及びシステムが求められている。 Thus, there is a need for a method and system for automating the creation, deployment, provision, execution and data aggregation of workloads on any size node cluster. There is also a need for a method and system for quickly configuring workloads and workload container software to deploy to each node and aggregating and analyzing workload performance data from all nodes of the cluster. There is also a need for methods and systems that test the performance of multiple nodes of a cloud computing system and provide automated configuration tuning of the cloud computing system based on the monitored performance. There is also a need for a method and system for creating a retargetable synthetic test workload for execution on a cloud computing system for testing node processors having various computer architectures. There is also a need for a method and system that provides for modification of the boot time configuration of multiple nodes in a cloud computing system. There is also a need for a method and system that facilitates modifying the network configuration of a cluster of multiple nodes in a cloud system. There is also a need for a method and system that enables automated selection of suitable nodes for a multi-node cluster based on the desired network topology, desired network performance, and / or desired hardware performance of the cloud system. ing. It also measures node cluster hardware resource usage during workload execution and provides hardware usage feedback to the user and / or automatically automates node cluster configuration based on monitored hardware resource usage. There is a need for a method and system that automatically corrects.
本開示の例示的な実施形態では、1つ以上のコンピューティングデバイスによって実施されるコンピューティングシステムをコンフィギュアする方法が提供される。この方法は、複数ノードのクラスタのコンフィギュレーションパラメータの複数の異なるセットに基づきコンピューティングシステムの複数ノードのクラスタ上でのワークロードの複数の実行を開始することを含む。一実施形態では、コンフィギュレーションパラメータは、ワークロードコンテナの動作パラメータ、少なくとも1つのノードのブート時間パラメータ、及び、少なくとも1つのノードのハードウェアコンフィギュレーションパラメータの少なくとも1つを含む。ワークロードコンテナは、複数ノードのクラスタ上でのワークロードの共有処理を連携させるように動作する。この方法は、更に、ワークロードの各実行に際してモニタされた複数ノードのクラスタの少なくとも1つの性能特性と複数ノードのクラスタの少なくとも1つの所望の性能特性との1つ以上のコンピューティングデバイスによる比較に基づき、複数ノードのクラスタのためのコンフィギュレーションパラメータのセットをコンフィギュレーションパラメータの複数の異なるセットから選択することを含む。この方法は、更に、選択されたコンフィギュレーションパラメータのセットでコンフィギュアされた複数ノードのクラスタによる共有実行のために、ワークロードを複数ノードのクラスタに提供することを含む。 In an exemplary embodiment of the present disclosure, a method for configuring a computing system implemented by one or more computing devices is provided. The method includes initiating multiple executions of a workload on a multiple node cluster of a computing system based on multiple different sets of configuration parameters for the multiple node cluster. In one embodiment, the configuration parameters include at least one of workload container operational parameters, boot time parameters of at least one node, and hardware configuration parameters of at least one node. The workload container operates so as to link workload sharing processing on a cluster of a plurality of nodes. The method further includes comparing, by one or more computing devices, at least one performance characteristic of the multi-node cluster monitored at each execution of the workload and at least one desired performance characteristic of the multi-node cluster. Based on selecting a set of configuration parameters for a cluster of nodes from a plurality of different sets of configuration parameters. The method further includes providing a workload to the multi-node cluster for shared execution by the multi-node cluster configured with the selected set of configuration parameters.
数ある利益のなかでも、幾つかの実施形態は、ユーザインタフェースを介しての、複数ノードのクラスタ、ワークロード、ワークロードコンテナ及びネットワークコンフィギュレーションの選択、コンフィギュレーション及び展開を可能にし得る。加えて、幾つかの実施形態は、クラウドコンフィギュレーションパラメータの制御及び調節を可能にし得るので、これにより、ノードハードウェア、ネットワーク、ワークロードコンテナ及び/又はワークロードの変化しつつある特性下での性能解析が可能になり、また性能解析に基づく自動化されたシステムチューニングが可能になる。他の利益は当業者によって認識されるはずである。 Among other benefits, some embodiments may allow selection, configuration and deployment of multi-node clusters, workloads, workload containers and network configurations via a user interface. In addition, some embodiments may allow for control and adjustment of cloud configuration parameters, thereby allowing for under changing characteristics of node hardware, networks, workload containers, and / or workloads. Performance analysis becomes possible, and automated system tuning based on performance analysis becomes possible. Other benefits should be recognized by those skilled in the art.
本開示の他の例示的な実施形態では、バッチプロセッサと、ノードコンフィギュレータと、ワークロードコンフィギュレータと、を含むコンピューティングコンフィギュレーションシステムが提供される。バッチプロセッサは、複数ノードのクラスタのコンフィギュレーションパラメータの複数の異なるセットに基づきコンピューティングシステムの複数ノードのクラスタ上でのワークロードの複数の実行を開始するように動作する。一実施形態では、コンフィギュレーションパラメータは、ワークロードコンテナの動作パラメータ、少なくとも1つのノードのブート時間パラメータ、及び、少なくとも1つのノードのハードウェアコンフィギュレーションパラメータの少なくとも1つを含む。ワークロードコンテナは、複数ノードのクラスタ上でのワークロードの共有処理を連携させるように動作する。ノードコンフィギュレータは、ワークロードの各実行に際してモニタされた複数ノードのクラスタの少なくとも1つの性能特性と複数ノードのクラスタの少なくとも1つの所望の性能特性とのノードコンフィギュレータによる比較に基づき、複数ノードのクラスタのためのコンフィギュレーションパラメータのセットをコンフィギュレーションパラメータの複数の異なるセットから選択するように動作する。ワークロードコンフィギュレータは、選択されたコンフィギュレーションパラメータのセットでコンフィギュアされた複数ノードのクラスタによる共有実行のために、ワークロードを複数ノードのクラスタに提供するように動作する。 In another exemplary embodiment of the present disclosure, a computing configuration system is provided that includes a batch processor, a node configurator, and a workload configurator. The batch processor operates to initiate multiple executions of the workload on the multiple node cluster of the computing system based on the multiple different sets of configuration parameters of the multiple node cluster. In one embodiment, the configuration parameters include at least one of workload container operational parameters, boot time parameters of at least one node, and hardware configuration parameters of at least one node. The workload container operates so as to link workload sharing processing on a cluster of a plurality of nodes. The node configurator is based on a comparison by the node configurator of at least one performance characteristic of the multi-node cluster monitored with each execution of the workload and at least one desired performance characteristic of the multi-node cluster. Operate to select a set of configuration parameters for a plurality of different sets of configuration parameters. The workload configurator operates to provide a workload to a multi-node cluster for shared execution by a multi-node cluster configured with a selected set of configuration parameters.
本開示の更に他の例示的な実施形態では、実行可能命令を含む非一時的(non-transitory)コンピュータ可読媒体が提供される。実行可能命令は、少なくとも1つのプロセッサによって実行されるときに、複数ノードのクラスタのコンフィギュレーションパラメータの複数の異なるセットに基づきコンピューティングシステムの複数ノードのクラスタ上でのワークロードの複数の実行を開始することを、少なくとも1つのプロセッサに実行させる。一実施形態では、コンフィギュレーションパラメータは、ワークロードコンテナの動作パラメータ、少なくとも1つのノードのブート時間パラメータ、及び、少なくとも1つのノードのハードウェアコンフィギュレーションパラメータの少なくとも1つを含む。ワークロードコンテナは、複数ノードのクラスタ上でのワークロードの共有処理を連携させるように動作する。実行可能命令の実行は、更に、複数ノードのクラスタのためのコンフィギュレーションパラメータのセットをコンフィギュレーションパラメータの複数の異なるセットから選択することを、少なくとも1つのプロセッサに実行させる。コンフィギュレーションパラメータのセットの選択は、ワークロードの各実行に際してモニタされた複数ノードのクラスタの少なくとも1つの性能特性と複数ノードのクラスタの少なくとも1つの所望の性能特性との少なくとも1つのプロセッサによる比較に基づく。実行可能命令の実行は、更に、選択されたコンフィギュレーションパラメータのセットでコンフィギュアされた複数ノードのクラスタによる共有実行のために、ワークロードを複数ノードのクラスタに提供することを、少なくとも1つのプロセッサに実行させる。 In yet another exemplary embodiment of the present disclosure, a non-transitory computer readable medium including executable instructions is provided. Executable instructions, when executed by at least one processor, initiate multiple executions of the workload on the multiple node cluster of the computing system based on different sets of configuration parameters of the multiple node cluster Causing at least one processor to execute. In one embodiment, the configuration parameters include at least one of workload container operational parameters, boot time parameters of at least one node, and hardware configuration parameters of at least one node. The workload container operates so as to link workload sharing processing on a cluster of a plurality of nodes. Execution of executable instructions further causes at least one processor to select a set of configuration parameters for a cluster of nodes from a plurality of different sets of configuration parameters. The selection of a set of configuration parameters may include a comparison by at least one processor of at least one performance characteristic of the multi-node cluster monitored at each execution of the workload and at least one desired performance characteristic of the multi-node cluster. Based. Execution of executable instructions further provides at least one processor to provide a workload to a cluster of nodes for shared execution by a cluster of nodes configured with a selected set of configuration parameters. To run.
本発明は、以下の図面と共に下記の説明を考慮してより容易に理解されるはずである。図面において同様の参照番号は同様の要素を示す。 The present invention will be more readily understood in view of the following description in conjunction with the following drawings. In the drawings, like reference numbers indicate like elements.
ここに開示される実施形態は、クラウドコンピューティングシステムに関して説明されるが、本開示の方法及びシステムは、ワークロードを協働して実行する複数のノードを含む任意の適切なコンピューティングシステムに実装されてよい。 Although the embodiments disclosed herein are described with respect to a cloud computing system, the disclosed methods and systems may be implemented on any suitable computing system that includes multiple nodes that cooperate to execute a workload. May be.
ここで参照されるとき、コンピューティングシステムのノードとは、少なくとも1つの処理デバイスと、その少なくとも1つの処理デバイスによってアクセス可能なメモリと、を含むものである。ノードは、例えば、サーバ、仮想サーバ、仮想マシン、インスタンス(instance)又は処理ノードとも称されることがある。 As referred to herein, a node of a computing system includes at least one processing device and memory accessible by the at least one processing device. A node may also be referred to as a server, virtual server, virtual machine, instance, or processing node, for example.
図1は、コンピューティング能力及び記憶容量をエンドユーザへのサービスとして受け渡すように構成される、種々の実施形態による例示的なクラウドコンピューティングシステム10を示す図である。クラウドコンピューティングシステム10は、複数ノードのクラスタ14に動作可能に結合された制御サーバ12を含む。複数ノードのクラスタ14は、分散型通信ネットワーク18に接続されており、各ノード16は、ローカル処理能力及びメモリを含む。具体的には、各ノード16は、少なくとも1つのプロセッサ40(図2)と、プロセッサ40によってアクセス可能な少なくとも1つのメモリ42(図2)と、を含む。通信ネットワーク18は、例えば、伝送制御プロトコル/インターネットプロトコル(Transmission Control Protocol/Internet Protocol)(TCP/IP)若しくはユーザデータグラムプロトコル(User Datagram Protocol)(UDP)を含むインターネットプロトコル(IP)フォーマット、イーサネット(登録商標)(Ethernet(登録商標))ネットワーク、シリアルネットワーク、又は、他のローカルエリア若しくはワイドエリアのネットワーク(LAN若しくはWAN)等の任意の適切なコンピュータネットワークプロトコルを含む。
FIG. 1 is a diagram illustrating an exemplary
ここに述べられるように、ノード16は、制御サーバ12によって、通信ネットワーク18に接続された複数の利用可能ノード16のクラウドから、複数ノードのクラスタ14を指定するために選択される。利用可能ノード16は、例えばデータセンタ内の1つ以上のサーバストレージラック上に設けられており、種々のハードウェアコンフィギュレーションを含む。一実施形態では、複数のデータセンタ及び/又は他のハードウェアプロバイダからの利用可能ノード16が、クラウドコンピューティングシステム10のための複数ノードのクラスタ14としての選択及びコンフィギュレーションのために、制御サーバ12によってアクセス可能である。例えば、1つ以上のサードパーティに係るデータセンタ(例えばアマゾンウェブサービス等)及び/又はユーザ提供のハードウェアが、制御サーバ12によってクラウドコンピューティングのためにコンフィギュアされてよい。一例においては、数千のノード16が、制御サーバ12による選択及びコンフィギュレーションのために利用可能であってよいが、任意の数のノード16が利用可能であってよい。図1では5つのノード16が示されているが、任意の適切な数のノード16がクラウドコンピューティングシステム10のために選択されてよい。制御サーバ12は、各々が1つ以上のプロセッサを含む1つ以上のコンピューティングデバイス(例示的にはサーバコンピュータ)を含む。図示された実施形態では、制御サーバ12は、ノードクラスタ14から物理的に離れている専用の制御サーバ12である。一実施形態では、制御サーバ12は、利用可能ノード16を収容しているデータセンタから物理的に遠隔のものであってよい。代替的には、制御サーバ12は、複数ノードからなる選択されたクラスタ14の1つ以上のノード16であってよい。制御サーバ12は、ここに述べられるように、複数ノード16を割り振ると共にコンフィギュアすること、ノード16上でワークロードを開始すること、性能データを収集すると共に報告すること等のために動作するクラウドコンピューティングコンフィギュレーションシステムとして機能する。
As described herein, a
制御サーバ12は、例示的には、コンフィギュレータ22と、ロードジェネレータ24と、ロードバランサ26と、を含む。コンフィギュレータ22、ロードジェネレータ24及びロードバランサ26は、ここで参照されるとき、1つ以上のプロセッサによってアクセス可能な内部メモリ又は外部メモリ内に記憶されたソフトウェアコード又はファームウェアコードを実行する当該1つ以上のプロセッサを備えるものである。ソフトウェア/ファームウェアコードは、コンフィギュレータ22、ロードジェネレータ24及びロードバランサ26に対応する命令を含み、これらの命令は、当該1つ以上のプロセッサによって実行されるときに、ここに述べられる種々の機能を当該1つ以上のプロセッサに実行させる。コンフィギュレータ22、ロードジェネレータ24及び/又はロードバランサ26は、代替的には、特定用途向け集積回路(ASICs)、フィールドプログラマブルゲートアレイ(FPGAs)、デジタル信号プロセッサ(DSPs)、ハードウェア論理素子又はこれらの組み合わせを含んでいてよい。コンフィギュレータ22は、ここに述べられるように、複数ノードのクラスタ14に含ませる1つ以上のノード16を選択しコンフィギュアすること、通信ネットワーク18のパラメータをコンフィギュアすること、複数ノードのクラスタ14上での実行のためにワークロードコンテナモジュール及びワークロードを選択し、コンフィギュアし及び展開すること、並びに、ワークロードの実行に関連付けられた性能データを収集し解析することのために動作可能である。コンフィギュレータ22は、ノード16上でソフトウェアをコンフィギュアするためにノード16に提供され且つノード16で処理されるコンフィギュレーションファイル28と、ワークロード要求パラメータをロードジェネレータ24に提供するためにロードジェネレータ24に提供される少なくとも1つのコンフィギュレーションファイル30と、を生成するように動作する。
The
ロードジェネレータ24は、ワークロード実行のためにノードクラスタ14によって使用される入力としての役割を果たす要求を生成するように動作する。つまり、ノードクラスタ14は、要求、並びに、要求に付随して提供された入力パラメータ及びデータに基づき、ワークロードを実行する。一実施形態では、ロードジェネレータ24からの要求はユーザによって開始される。例えば、ユーザ又は顧客は、指定された検索ターム又はデータセットに対する検索動作又はソート動作をそれぞれ要求してよく(例えばユーザインタフェース200を介して)、ロードジェネレータ24は、対応する検索要求又はソート要求を生成する。一実施形態では、コンフィギュレータ22は、ユーザインタフェース200を介して受信したユーザ要求を記述するコンフィギュレーションファイル30を生成する。ノード16は、検索されるべき識別されたターム又はソートされるべきデータセットを用いてワークロードを実行する。ロードジェネレータ24は、実行されるべきワークロードのタイプに応じて他の適切な要求を生成してよい。ロードバランサ26は、ロードジェネレータ24によって提供された要求を複数ノード16間で分散させて、どのノード16がどの要求を実行するのかを指示するように動作する。また、ロードバランサ26は、ロードジェネレータ24からの要求を複数部分に分割すると共に複数のノード16がその要求を並列動作で実行するよう動作するように、それら複数部分を複数ノード16に分散させるようにも動作する。
The
コンフィギュレータ22は、例示的には、ユーザがインターネットを介してコンフィギュレータ22にアクセスすることのできるようなウェブベースのものであるが、コンフィギュレータ22は、任意の適切なネットワーク又は通信リンクを介してアクセスされてよい。図1に示される例示的なユーザコンピュータ20は、ディスプレイ21と、プロセッサ32(例えば中央処理ユニット(CPU))と、プロセッサ32によってアクセス可能なメモリ34と、を含む。コンピュータ20は、デスクトップコンピュータ、ラップトップ、モバイルデバイス、スマートフォン等の任意の適切なコンピューティングデバイスを含み得る。ユーザコンピュータ20上では、ソフトウェアコード又はファームウェアコードを含むウェブブラウザ36が実行されており、ウェブブラウザ36は、コンフィギュレータ22によって提供されたグラフィカルユーザインタフェースにアクセスするために用いられ、またグラフィカルユーザインタフェースをディスプレイ21上に表示するためにも用いられる。例えば図7〜30に図示されるグラフィカルユーザインタフェース200を参照されたい。
The
図示されるものに代替可能な、コンポーネントの種々の他の配置及びそれに対応するクラウドコンピューティングシステム10の接続性が利用可能であり、そのようなコンポーネントの配置及び対応する接続性は、ここに開示される実施形態に従うものとする。
Various other arrangements of components and corresponding connectivity of the
図2を参照すると、コンフィギュレータ22によってコンフィギュアされる図1のノードクラスタ14の例示的なノード16が、一実施形態に従って図示されている。ノード16は、メモリ42内に記憶されたソフトウェア又はファームウェアを実行するように動作する少なくとも1つのプロセッサ40を含む。メモリ42は、1つ以上の物理的メモリロケーションを含み、プロセッサ40の内部にあってもよいし、外部にあってもよい。
Referring to FIG. 2, an
図2は、各ノード16上へとロードされたソフトウェア(又はファームウェア)コードを示しており、このコードは、オペレーティングシステム44と、カーネルモード測定エージェント46と、ネットワークトポロジドライバ48と、ユーザモード測定エージェント50と、ウェブアプリケーションサーバ52と、ワークロードコンテナモジュール54と、サービス志向アーキテクチャランタイムエージェント56と、合成ワークロードエンジン58と、を含む。図示された実施形態では、カーネルモード測定エージェント46及びネットワークトポロジドライバ48は、例えばノード16の入力/出力(I/O)デバイスからのデータ等の特定のデータにアクセスするために、オペレーティングシステム44からの特権(privilege)を要求する。一方、ユーザモード測定エージェント50、ウェブアプリケーションサーバ52、ワークロードコンテナモジュール54、サービス志向アーキテクチャランタイムエージェント56及び合成ワークロードエンジン58は、例示的には、データにアクセスするため又はそれらのそれぞれの機能を行うためには、オペレーティングシステム44からの特権を要求しない。
FIG. 2 shows the software (or firmware) code loaded on each
オペレーティングシステム44は、例えば、アプリケーション、特権及びハードウェアリソースを管理すること、並びに、プロセッサ時間及びメモリ使用量を割り振ることを含む、ノード16の全体動作を管理する。ネットワークトポロジドライバ48は、通信ネットワーク18(図1)上でのノード16のネットワーク特性及びネットワークパラメータを制御するように動作する。一実施形態では、ネットワークトポロジドライバ48は、コンフィギュレータ22(図1)から受信したコンフィギュレーションファイル28(図1)に基づき、ノード16に関連付けられたネットワーク特性を変更するように動作する。
The
また、ネットワークソフトウェアスタック(図示せず)が各ノード16で記憶され実行される。ネットワークソフトウェアスタックは、図1のネットワーク18上での通信を容易にするためのネットワークソケットを含む。ここに述べられる実施形態においては、ネットワークソケットは、ネットワーク通信のためのアドレスと、1つ以上のポート番号と、が割り当てれらたTCPソケットを含む。一実施形態では、ネットワークソフトウェアスタックは、オペレーティングシステム44のネットワークドライバを利用する。
A network software stack (not shown) is stored and executed at each
カーネルモード測定エージェント46及びユーザモード測定エージェント50の各々は、ノード16での動作及びワークロード性能をモニタするためのデータを収集し解析するように動作する。カーネルモード測定エージェント46は、例えば、プロセッサ命令の数、プロセッサ利用、各I/O動作のために送信され及び受信されたバイト数、並びに他の適切なデータ、又は、これらの組み合わせをモニタする。例示的なカーネルモード測定エージェント46は、システムタップ(SystemTap)ソフトウェアを含む。ユーザモード測定エージェント50は、データへのアクセスのためにオペレーティングシステム44からシステム特権を要求する必要のない性能データを収集する。この性能データの例としては、個々のサブタスクの開始時間と完了時間とを表示するアプリケーション特有ログ、そのようなタスクが実行される速度、システムによって利用された仮想メモリの量、あるタスクのために処理された入力記録の量、等が挙げられる。一実施形態では、エージェント46,50及び/又は他のモニタリングツールは、各ノード16に予めインストールされており、コンフィギュレーションファイル28(図1)に基づき各ノード16でコンフィギュレータ22によってコンフィギュアされる。代替的には、コンフィギュアされたエージェント46,50及び/又は他のモニタリングツールを、コンフィギュレータ22が、ワークロード展開に際してノード16へとロードする。
Each of kernel
ウェブアプリケーションサーバ52は、ノード16と、図1の制御サーバ12及びノードクラスタ14の他のノード16の両者と、の間での通信を制御するアプリケーションである。ウェブアプリケーションサーバ52は、ノード16間でのファイル転送、及び、制御サーバ12とノードとの間でのファイル転送をもたらす。例示的なウェブアプリケーションサーバ52は、アパッチトムキャット(Apache Tomcat)である。
The
また、ワークロードコンテナモジュール54も、各ノード16のメモリ42内に記憶されている。ここに述べられるように、制御サーバ12は、ユーザ選択と、ワークロードコンテナモジュール54のコンフィギュレーションとに基づき、ワークロードコンテナモジュール54をノード16に提供する。ワークロードコンテナモジュール54の例としては、アパッチハドゥープ(Apache Hadoop)、メムキャッシュディー(Memcached)、アパッチカサンドラ(Apache Cassandra)、又は、市販されていないユーザによって提供されたカスタムワークロードコンテナモジュールが挙げられる。一実施形態では、ワークロードコンテナモジュール54は、プロセッサによって実行されるときにメモリ42内でのデータ記憶とノード16間データ通信とを管理するコードモジュールを備えるファイルシステム55を含む。例示的なファイルシステム55は、アパッチハドゥープワークロードコンテナの分散型ファイルシステム(HDFS)である。ファイルシステム55は、データ及びファイルのコピーをノードメモリ42内に複数記憶することによって、データ複製をサポートする。
The
随意的なサービス志向アーキテクチャ(SOA)ランタイムエージェント56及び随意的な合成ワークロードエンジン58等の他の適切なワークロードコンテナモジュールが設けられていてもよい。SOAランタイムエージェント56は、プロセッサによって実行されるときにワークロードの実行を連携させるように動作する他のタイプのワークロードコンテナモジュールである。SOAランタイムエージェント56は、例えば、ワークロード動作を迅速化するために、頻繁に使用されるファイル(例えばイメージ等)をキャッシュしたりサーブするサービス機能を行う。SOAランタイムエージェント56の例としては、グーグルプロトコルバッファ(Google Protocol Buffers)が挙げられる。合成ワークロードエンジン58は、ここに述べられるように、プロセッサによって実行されるときに、コンフィギュレータ22(図1)を介して受信した合成テストワークロードをアクティベートして実行するように動作するワークロードコンテナモジュールを含む。図示された実施形態では、合成ワークロードエンジン58は、実際の非テストワークロードにではなく合成テストワークロードでの実行に合わせられている。
Other suitable workload container modules may be provided, such as an optional service-oriented architecture (SOA)
図3を参照すると、一実施形態に従う制御サーバ12のコンフィギュレータ22が示されている。コンフィギュレータ22は、例示的には、オーセンティケータ(authenticator)70と、ノードコンフィギュレータ72と、ネットワークコンフィギュレータ74と、ワークロードコンテナコンフィギュレータ76と、ワークロードコンフィギュレータ78と、バッチプロセッサ80と、データモニタコンフィギュレータ82と、データアグリゲータ84と、を含み、これらの各々は、ここに述べられる種々の機能を行うために制御サーバ12の1つ以上のプロセッサ22によってアクセス可能なメモリ(例えばメモリ90)内に記憶されたそれぞれのソフトウェアコードモジュール又はファームウェアコードモジュールを実行する制御サーバ12の1つ以上のプロセッサ22を備えている。オーセンティケータ70は、認証コードモジュールを実行する1つ以上のプロセッサ22を含み、図7に関してここに述べられるように、コンフィギュレータ22へのユーザアクセスを認証するように動作する。ノードコンフィギュレータ72は、ノードコンフィギュレーションコードモジュールを実行する1つ以上のプロセッサ22を含み、図8〜10に関してここに述べられるように、指定されたハードウェア及び動作のコンフィギュレーションを有する複数ノードのクラスタ14を識別するために、ノード16を選択してコンフィギュアするように動作する。ネットワークコンフィギュレータ74は、ネットワークコンフィギュレーションコードモジュールを実行する1つ以上のプロセッサ22を含み、図11〜17に関してここに述べられるように、テストや性能解析及び/又はシステム電力消費を調節すること等のために、図1の通信ネットワーク18のネットワークパラメータを調節するように動作する。ワークロードコンテナコンフィギュレータ76は、ワークロードコンテナコンフィギュレーションコードモジュールを実行する1つ以上のプロセッサ22を含み、図18〜21に関してここに述べられるように、ノード16上での動作のためにワークロードコンテナモジュールを選択してコンフィギュアするように動作する。ワークロードコンフィギュレータ78は、ワークロードコンフィギュレーションコードモジュールを実行する1つ以上のプロセッサ22を含み、ノード16によって選択されたワークロードコンテナでの実行のためにワークロードを選択してコンフィギュアするように動作する。ワークロードコンフィギュレータ78は、例示的には、合成テストワークロード生成コードモジュールを実行する1つ以上のプロセッサ22を含むコードシンセサイザ79を含み、コードシンセサイザ79は、図23及び図32〜35に関してここに述べられるように、ユーザ定義のワークロードパラメータに基づき合成テストワークロードを生成するように動作する。バッチプロセッサ80は、バッチプロセッサコードモジュールを実行する1つ以上のプロセッサ22を含み、図25に関してここに述べられるように、複数のワークロードのバッチ処理を開始するように動作し、複数のワークロードはノードクラスタ14上のシーケンス内で実行される。データモニタコンフィギュレータ82は、データモニタリングコンフィギュレーションコードモジュールを実行する1つ以上のプロセッサ22を含み、図26〜29に関してここで述べられるように、ワークロードの実行に際して性能データをリアルタイムでモニタすると共にデータを収集するモニタリングツールをコンフィギュアするように動作する。データアグリゲータ84は、データアグリゲーションコードモジュールを実行する1つ以上のプロセッサ22を含み、図30及び31に関してここに述べられるように、各ノード16からの性能データを収集及び集約する(collect and aggregate)と共にログ、統計、グラフ、及び、データの他の表現を生成するように動作する。
Referring to FIG. 3, the
コンフィギュレータ22からの出力は、例示的には、制御サーバ12のメモリ90内に記憶される。メモリ90は、制御サーバ12の1つ以上のプロセッサの内部にあってもよいし、外部にあってもよく、1つ以上の物理的メモリロケーションを含む。メモリ90は、例示的には、コンフィギュレータ22によって生成された図1のコンフィギュレーションファイル28,30を記憶する。また、メモリ90は、ワークロードの実行に続いてノード16によって生成され制御サーバ12へ伝えられたログファイル98を記憶する。図示されるように、オペレーティングシステムのイメージファイル92と、ワークロードコンテナコンフィギュレータ76で選択されたワークロードコンテナのイメージファイル94と、ワークロードコンフィギュレータ78で選択又は生成されたワークロードのイメージファイル96とは、メモリ90内に記憶される。一実施形態では、複数のオペレーティングシステムイメージファイル92がメモリ90内に記憶されており、ユーザは、各ノード16にインストールされるべきオペレーティングシステムを、コンフィギュレータ22を介して選択することができる。一実施形態では、ユーザは、ノード16にインストールされるべきオペレーティングシステムイメージファイル92を遠隔メモリ(例えば図1のコンピュータ20のメモリ34)から制御サーバ12へアップロードすることができる。ワークロードコンテナイメージファイル94は、複数の利用可能ワークロードコンテナモジュールからのユーザによるワークロードコンテナモジュールの選択及びコンフィギュレーションに基づき、ワークロードコンテナコンフィギュレータ76で生成される。ここに述べられる実施形態では、ワークロードコンテナコンフィギュレータ76は、図7〜30のユーザインタフェース200を介して受信したユーザ入力に基づき、対応するワークロードコンテナイメージファイル94をコンフィギュアする。同様に、ワークロードコンフィギュレータ78は、制御サーバ12のユーザインタフェース200を介しての、1つ以上の利用可能ワークロードからのワークロードのユーザ選択に基づき、ワークロードイメージファイル96を生成してコンフィギュアする。ワークロードイメージファイル96は、ユーザ入力に基づきワークロードコンフィギュレータ78によって選択された予め定義された実際のワークロード、又はユーザ入力に基づきワークロードコンフィギュレータ78によって生成された合成テストワークロードを含む。
The output from the
一実施形態では、メモリ90は、ノードクラスタ14の各ノード16によってアクセス可能であり、制御サーバ12は、各イメージファイル92,94,96のメモリ90内のロケーションを識別するポインタ又は他の識別子をノードクラスタ14の各ノード16へ送る。ノード16は、ポインタに基づきそれぞれのイメージファイル92,94,96をメモリ90からリトリーブする(retrieve)。代替的には、制御サーバ12は、イメージファイル92,94,96及び適切なコンフィギュレーションファイル28を各ノード16へロードし、又は、任意の他の適切なメカニズムによりイメージファイル92,94,96及びコンフィギュレーションファイル28をノード16へ提供する。
In one embodiment, the
ここに述べられるように、コンフィギュレータ22は、ユーザ選択及びユーザ入力に基づき自動的に以下の作用をするように動作する。即ち、所望のリソース(例えばノード16)を割り振り、ノード16を予めコンフィギュアし(例えばネットワークトポロジ、メモリ特性)、ワークロードコンテナソフトウェアを各ノード16にインストールし、ユーザ提供のワークロードソフトウェア及びデータをノード16に展開し、モニタリングツール(例えばガングリア(Ganglia)、システムタップ(SystemTap))を起動して各ノード16から性能データを収集し始め、ワークロード実行に際してライブ状態更新をユーザに提供し、ワークロードの結果及びモニタリングツールによって集められた情報を含めユーザによって要求された全データを収集し、ユーザによって要求された性能データを処理し、まとめ、表示し、そして他の適切な機能を行う。更に、ユーザは、ここに述べられるように、コンフィギュレータ22を用いて、順次又は並列で実行されるワークロードのシーケンスを作成して展開してよい。ユーザは、実行に際して又は実行の合間にコンフィギュレーション又は入力パラメータの随意的な調節をしながら、任意のワークロード又は全てのワークロードを繰り返し実行してもよい。また、コンフィギュレータ22は、ユーザによる要求に基づき、ノードクラスタ14の指定されたデータベースノード16上でデータを記憶するようにも動作する。
As described herein, the
図4は、クラウドコンピューティングシステムをコンフィギュアするために図1及び図3のコンフィギュレータ22によって行われる例示的な動作のフロー図100である。図4の説明全体に対して図1及び図3が参照される。図示された実施形態では、コンフィギュレータ22は、図7〜30に示されるユーザインタフェース200等のユーザインタフェースを介して受信した複数のユーザ選択に基づき、図4のフロー図100に従って図1のノードクラスタ14をコンフィギュアする。ブロック102では、コンフィギュレータ22のノードコンフィギュレータ72は、複数の利用可能ノード16から複数ノードのクラスタ14を選択する。複数ノードのクラスタ14の各ノード16は、少なくとも1つの処理デバイス40及びメモリ42(図2)を含み、ここに述べられるように、ワークロードの処理をクラスタ14の他のノード16と共有するように動作する。図示された実施形態では、複数のノード16がコンフィギュレータ22による選択のために利用可能であり、コンフィギュレータ22は、利用可能ノード16のサブセットをノードクラスタ14として選択する。一実施形態では、コンフィギュレータ22は、ユーザインタフェースを介して受信したユーザ選択に基づき、複数ノードのクラスタ14の各ノード16から収集されるべき少なくとも1種類のデータを選択し、コンフィギュレータ22のデータアグリゲータ84は、図26〜30に関してここに述べられるように、複数ノードのクラスタ14の各ノード16からの当該少なくとも1種類のデータを収集及び集約する。
FIG. 4 is a flow diagram 100 of exemplary operations performed by the
ブロック104では、コンフィギュレータ22のワークロードコンテナコンフィギュレータ76は、複数ノードからなる選択されたクラスタ14の各ノード16上での動作のためのワークロードコンテナモジュールを選択する。ワークロードコンテナモジュールは、ノード16によって実行されるときにワークロードの実行を開始し連携させるように動作する選択可能コードモジュールを含む。一実施形態では、ワークロードコンテナモジュールは、図18に関してここに述べられるように、複数の利用可能ワークロードコンテナモジュールから選択される。一実施形態では、コンフィギュレータ22は、ユーザインタフェースを介して受信したユーザ入力に基づき、各ノード16上のワークロードコンテナモジュールの少なくとも1つの動作パラメータを修正する。この少なくとも1つの動作パラメータは、ここに述べられるように、リード/ライト動作、ファイルシステム動作、ネットワークソケット動作及びソーティング動作の少なくとも1つに関連付けられている。
At
一実施形態では、選択されたワークロードコンテナモジュールは、クラウドコンピューティングシステム10からは遠隔のメモリ(例えば図1のメモリ34)上に記憶されたカスタムワークロードコンテナモジュールであり、コンフィギュレータ22は、遠隔メモリ上に記憶されたカスタムワークロードコンテナモジュールを複数ノードのクラスタ14の各ノード16へとロードする。例えば、カスタムワークロードコンテナモジュールは、ユーザによって提供される市販されていないワークロードコンテナモジュールを含む。一実施形態では、カスタムワークロードコンテナモジュールは、ワークロードを実行するためのユーザ定義の命令及びパラメータを含むコンフィギュレーションファイルを含む。命令の例としては、典型的なワークロードではあまり見られないワークロードパラメータであって及び/又は特定のワークロードに固有のワークロードパラメータをテストするための命令が挙げられる。カスタムワークロードコンテナモジュールの命令の他の例としては、実行の出力又はログファイルを更なる解析のために異なるロケーションにリダイレクトするための命令が挙げられる。代替的には、ワークロードコンテナモジュールは、アパッチハドゥープ(Apache Hadoop)、メムキャッシュディー(Memchashed)、アパッチカサンドラ(Apache Cassandra)等の、コンピューティングシステム10に記憶され(例えば図3のメモリ90)且つコンフィギュレータ22による選択及び展開のために利用可能な市販のサードパーティに係るワークロードコンテナモジュールを含む。
In one embodiment, the selected workload container module is a custom workload container module stored on memory remote from the cloud computing system 10 (eg,
ブロック106では、コンフィギュレータ22のワークロードコンフィギュレータ78は、複数ノードのクラスタ14上でのワークロードコンテナモジュールでの実行のためのワークロードを選択する。選択されたワークロードの処理は、ここに述べられるように、複数ノードのクラスタ14に分散される。一実施形態では、ワークロードは、実際のワークロード及び合成テストワークロードの少なくとも一方から選択される。1つ以上の実際の予めコンパイルされたワークロードが、制御サーバ12のプロセッサによってアクセス可能なメモリ(例えば図1のメモリ34)内に記憶され、コンフィギュレータ22は、選択された実際のワークロードをノード16へとロードする。合成テストワークロードは、図23及び図32〜35に関してここに述べられるように、ユーザインタフェース200を介して受信したユーザ定義のワークロードパラメータに基づきコンフィギュレータ22によって生成され、各ノード16へとロードされる。一実施形態では、コンフィギュレータ22は、図11〜17に関してここに述べられるように、ユーザインタフェース200を介して受信したユーザ入力に基づき、少なくとも1つの通信ネットワークパラメータを調節して、選択されたワークロードの実行に際しての通信ネットワーク18の性能を修正し又は制限する。
At
図示された実施形態では、コンフィギュレータ22は、選択可能ノードデータ(例えば図8のテーブル258)と、選択可能ワークロードコンテナデータ(例えば図18の選択可能入力352)と、選択可能ワークロードデータ(例えば図22の選択可能入力418)と、を含むユーザインタフェース200(図7〜30)を提供する。複数ノードのクラスタ14は、選択可能ノードデータのユーザ選択に基づき選択され、ワークロードコンテナモジュールは、選択可能ワークロードコンテナデータのユーザ選択に基づき選択され、ワークロードは、選択可能ワークロードデータのユーザ選択に基づき選択される。
In the illustrated embodiment, the
図5は、クラウドコンピューティングシステム10をコンフィギュアするために図1及び図3のコンフィギュレータ22によって行われる他の例示的な動作のフロー図120である。図5の説明全体に対して図1及び図3が参照される。ブロック122では、ワークロードコンテナコンフィギュレータ76は、ユーザインタフェース(例えばユーザインタフェース200)を介して受信したユーザ選択に基づき、クラウドコンピューティングシステム10の複数ノードのクラスタ14の各ノード16上での動作のためのワークロードコンテナモジュールを複数の利用可能ワークロードコンテナモジュールから選択する。図示された実施形態では、ワークロードコンテナモジュールは、例えば、図18の入力352,360,362及び図21の入力353,401等の選択可能ワークロードコンテナデータに基づき選択される。選択されたワークロードコンテナモジュールは、ワークロードの実行を連携させるように動作する選択可能コードモジュール(例えば図18の入力360,362及び図21の入力401で選択可能)を含む。一実施形態では、複数の利用可能ワークロードコンテナモジュールは、ここに述べられるように、カスタムワークロードコンテナモジュールを含む。ブロック124では、ノードコンフィギュレータ72は、ワークロードの処理が複数ノードのクラスタに分散されるようにワークロードを実行するために、複数ノードのクラスタ14の各ノード16を選択されたワークロードコンテナモジュールでコンフィギュアする。ここに述べられるように、各ノード16は、処理デバイス40及びメモリ42を含み、ワークロードの動作を複数ノードのクラスタ14の他のノード16と共有するように動作する。コンフィギュレータ22は、選択されたワークロードコンテナモジュールを複数ノードのクラスタ14の各ノード16にインストールし、複数ノードのクラスタ14上での選択されたワークロードコンテナモジュールでのワークロードの実行を開始する。
FIG. 5 is a flow diagram 120 of other exemplary operations performed by the
図6は、クラウドコンピューティングシステム10をコンフィギュアするために図1及び図3のコンフィギュレータ22によって行われる他の例示的な動作のフロー図140である。図6の説明全体に対して図1及び図3が参照される。ブロック142では、コンフィギュレータ22のノードコンフィギュレータ72は、ワークロードの処理を共有するように動作する複数ノードのクラスタ14をクラウドコンピューティングシステム10のための複数の利用可能ノード16から選択する。図示された実施形態では、複数ノードのクラスタ14は、ここに述べられるように、選択可能ノードデータに基づき選択される。
FIG. 6 is a flow diagram 140 of other exemplary operations performed by the
ブロック144では、ワークロードコンテナコンフィギュレータ76は、ユーザインタフェースを介して受信したユーザ入力(例えば図19のユーザインタフェース200の選択可能入力367及びフィールド374,378,380)に基づき、各ノード16の同じワークロードコンテナモジュールの動作パラメータを修正する。この同じワークロードコンテナモジュールは、ノード16によって実行されるときに動作パラメータに基づきワークロードの実行を連携させるように動作する選択可能コードモジュールを含む。動作パラメータは、図19及び図20に関してここに述べられるように、リード/ライト動作、ファイルシステム動作、ネットワークソケット動作及びソーティング動作の少なくとも1つに関連付けられている。コンフィギュレータ22は、ワークロードコンテナモジュールを各ノード16へと展開するのに先立ち、又は、コンフィギュレーションを更新する場合には各ノード16へのワークロードコンテナモジュールの展開の後に、1つ以上の動作パラメータを修正する。ワークロードコンテナモジュールは、各ノード16によって実行されるときに、修正された動作パラメータに基づき複数ノードのクラスタ14上でのワークロードの実行を連携させるように動作する。一実施形態では、動作パラメータは、リード/ライト動作のためのメモリバッファサイズ、リード/ライト動作に際して転送されるデータブロックのサイズ、各ノード16のメモリ42内に記憶されるデータブロックの数、ファイルシステム55に対する要求を処理するために割り振られる各ノード16の処理スレッドの数、及び/又は、データをソーティングするときにマージする(merge)データストリームの数を含む。図19及び図20に関して述べられるように、他の適切な動作パラメータが修正されてもよい。
At
図3の制御サーバ12へのユーザアクセスを提供する例示的なユーザインタフェース200が図7〜30に示されている。ユーザインタフェース200は、例示的には、コンピュータ20(図1)のディスプレイ21等のディスプレイ上への表示のためにコンフィギュアされた複数の選択可能画面を含むウェブベースのグラフィカルユーザインタフェース200である。ネイティブユーザインタフェースアプリケーション、コマンドライン駆動インタフェース、プログラム可能API、他の種類のもの、又は、複数のインタフェースの組み合わせ等の他の適切なインタフェースが提供されてもよい。ユーザインタフェース200は、選択可能な入力、フィールド、モジュール、タブ、ドロップ・ダウンメニュー、ボックス及び他の適切な選択可能データ等の、コンフィギュレータ22のコンポーネント70〜84にリンクされると共にそれらへの入力を提供する選択可能データを含む。一実施形態では、ユーザインタフェース200の選択可能データは、それが個別に選択可能になるような方法で描画される。例えば、選択可能データは、マウスポインタによって、ユーザインタフェース200のタッチ画面に触れることによって、キーボードのキーを押下することによって、又は、任意の他の適切な選択メカニズムによって、ユーザにより選択される。データが選択された結果、そのデータが例えばハイライトされ又はチェックされてよく、何らかの選択可能データ(例えばモジュール、ドロップ・ダウンメニュー等)の選択に基づき、新たな画面、メニュー又はポップ・アップウィンドウが現れてよい。
An
ユーザインタフェース200の説明全体に対して図1〜3が参照される。図7に示されるように、ユーザインタフェース200は、選択されたときにコンフィギュレータ22へのアクセスを提供することによりユーザ選択を可能にすると共にコンフィギュレータ22への他のユーザ入力を可能にする幾つかの選択可能モジュールを含む。具体的には、認証及び設定ライブラリモジュール202は、コンフィギュレータ22のオーセンティケータ70を表し且つこれにリンクされたデータを備える。インスタンスモジュール204は、コンフィギュレータ22のノードコンフィギュレータ72を表し且つこれにリンクされたデータを備える。ネットワークコンフィギュレーションモジュール206は、コンフィギュレータ22のネットワークコンフィギュレータ74を表し且つこれにリンクされたデータを備える。ワークロードコンテナコンフィギュレーションモジュール208は、コンフィギュレータ22のワークロードコンテナコンフィギュレータ76を表し且つこれにリンクされたデータを備える。ワークロードコンフィギュレーションモジュール210は、コンフィギュレータ22のワークロードコンフィギュレータ78を表し且つこれにリンクされたデータを備える。バッチ処理モジュール212は、コンフィギュレータ22のバッチプロセッサ80を表し且つこれにリンクされたデータを備える。モニタリングモジュール214は、コンフィギュレータ22のデータモニタコンフィギュレータ82を表し且つこれにリンクされたデータを備える。制御及び状態モジュール216は、コンフィギュレータ22のデータアグリゲータ84を表し且つこれにリンクされたデータを備える。コンフィギュレータ22のコンポーネント70〜84は、それらのそれぞれの機能を、ユーザ選択、データ及びユーザインタフェース200のモジュール202〜216を介して提供された他のユーザ入力に基づき実装する。
1-3 for the entire description of the
図7を参照すると、認証及び設定ライブラリモジュール202が選択されている。モジュール202へのユーザ入力に基づき、オーセンティケータ70は、コンフィギュレータ22へのユーザアクセスを認証すると共に、先にセーブされたシステムコンフィギュレーションをロードする。オーセンティケータ70は、それぞれのフィールド220,222,224内のアクセスキー、秘密キー、及び/又は、EC2キーペアの形態にある信用証明データを確認することによって、コンフィギュレータ22へのユーザアクセスを許可する。図示された実施形態では、フィールド224のEC2キーペアは、モジュール202を用いてアマゾンウェブサービスクラウドプラットフォームにアクセスするときに、新たに選択されたノード16へのルート又は初期アクセスを提供する。オーセンティケータ70は、入力238のユーザ選択に基づき、先にセーブされたシステムコンフィギュレーションをシステムコンフィギュレーションファイル(例えば図1のユーザコンピュータ20又は制御サーバ12に記憶されている)からロードする。システムコンフィギュレーションファイルは、ワークロード及びワークロードコンテナのコンフィギュレーション、ノード16及びネットワークの設定情報、クラウドコンピューティングシステム10のためのデータモニタリング/収集の設定、並びに、コンフィギュレータ22で先にセーブされたシステムコンフィギュレーションに関連付けられている全ての他のコンフィギュレーション情報を含む。先にセーブされたシステムコンフィギュレーションファイルをロードすることにより、システムコンフィギュレーションファイルからのコンフィギュレーション情報でコンフィギュレータ22が更新される。システムコンフィギュレーションファイルは、例示的には、JSONファイルフォーマットを含むが、他の適切なフォーマットが提供されてもよい。システムコンフィギュレーションファイルをロードした後に、ロードされたシステムコンフィギュレーションは、ユーザインタフェース200のモジュールを介して修正されてよい。入力240が選択されると、オーセンティケータ70は、コンフィギュレータ22の現在のシステムコンフィギュレーションをファイルにセーブする。認証データは、選択ボックス242の選択に基づきセーブされたシステムコンフィギュレーションファイル内に含まれていてよい。
Referring to FIG. 7, the authentication and
システムコンフィギュレーションファイルは、ウェブベースのユーザインタフェース200を介して識別され制御サーバ12へとロードされるが、システムコンフィギュレーションファイルを得るために、他の適切な遠隔メソッド呼び出し(remote method invocation)(RMI)メカニズムが用いられてもよい。例えば、アパッチハイパーテキスト転送プロトコル(Apache Hypertext Transfer Protocol)(HTTP)サーバ、アパッチトムキャット(Apache Tomcat)サーバ、RMIメカニズムを用いてシステムコンフィギュレーションファイルを渡すトムキャットサーブレット(Tomcat survlet)、又は、RMIメカニズムを用いてシステムコンフィギュレーションファイルを直接的に制御サーバ12へ渡すカスタムアプリケーション(例えばコマンドラインユーティリティ)である。
The system configuration file is identified and loaded into the
設定ライブラリ226は、選択入力227を介して選択及び実行のために利用可能な先に作成されたシステムコンフィギュレーションファイルのテーブル又はリストを提供する。入力228の選択があると、オーセンティケータ70は、ライブラリ226内で選択されたシステムコンフィギュレーションファイルからのコンフィギュレーション情報でモジュール202〜216を更新する。現在のシステムコンフィギュレーション(例えばモジュール202〜216を介してコンフィギュアされている)は、入力230の選択に基づきファイルにセーブされると共にライブラリ226に追加され、システムコンフィギュレーションファイルは、入力234の選択に基づきライブラリ226から削除される。入力232があると、オーセンティケータ70は、システムコンフィギュレーションファイルをローカルコンピュータ(例えば図1のコンピュータ20)からライブラリ226へアップロードし、あるいは入力236があると、オーセンティケータ70は、システムコンフィギュレーションファイルを遠隔コンピュータからライブラリ226へダウンロードする(例えばインターネットを介して)。ライブラリ226は、1つ以上の先に用いられたシステムコンフィギュレーションが迅速にロードされ実行されることを可能にする。ライブラリ226のシステムコンフィギュレーションファイルは、クラウドコンピューティングシステム10上で別個に、並列に又は順次的に選択及び実行されてよい。例えば、バッチシーケンスにおける実行のために複数のシステムコンフィギュレーションファイルがライブラリ226内に提供されてよく、この場合、コンフィギュレータ22は、各選択されたシステムコンフィギュレーションを自動的に順次展開して、各システムコンフィギュレーションで1つ以上のワークロードを実行する。図示された実施形態では、ここに述べられるように、システムコンフィギュレーションは、図30の制御及び状態モジュール216を介してノード16に展開される。システムコンフィギュレーションの展開は、図30を参照してここに述べられるように、システムコンフィギュレーションファイルに関連付けられた設定、ソフトウェア及びワークロード情報でコンフィギュレータ22がクラウドコンピューティングシステム10をコンフィギュアすることを伴う。ここに述べられるように、コンフィギュレータ22は、例示的には、それぞれのノード16をコンフィギュアするために各ノード16にルート付けられた1つ以上のコンフィギュレーションファイル28を生成する。ノード16に展開されたコンフィギュレーションファイル28は、モジュール202を介してロードされたシステムコンフィギュレーションファイルに含まれる全てのコンフィギュレーション情報に加えて、システムコンフィギュレーションファイルをロードした後にモジュール202〜216を介してなされた任意の追加的なコンフィギュレーション変更を含む。
The
図8を参照すると、ノード16の数及び特性をコンフィギュアするためのインスタンスモジュール204が選択されている。モジュール204へのユーザ入力に基づき、ノードコンフィギュレータ72は、指定されたハードウェア及び動作のコンフィギュレーションを有する複数ノードのクラスタ14を識別し選択する。インスタンスモジュール204は、インスタンスタブ250と、インスタンスタイプタブ252と、他のインスタンス設定タブ254と、を含む。図8でインスタンスタブ250が選択されている状態で、ノードクラスタ14に含ませるための所望のノード16の数がフィールド256へとエンターされる。ノードコンフィギュレータ72は、フィールド256でユーザが選択したノード16の所望の数の下で、特定のハードウェアコンフィギュレーションを各々が有する当該数のノード16のデフォルトリストをテーブル258内に生成する。テーブル258は、図1の複数ノードのクラスタ14のリスト及びコンフィギュレーション記述を提供する。テーブル258は、各ノード16のための幾つかの記述的フィールドを含み、これらのフィールドは、ノードの番号及び名前、インスタンス(ノード)タイプ、メモリ容量、コアプロセッサ(例えばCPU)の数、記憶容量、割り当て量(quota)、受信/送信割り当て量、及び、受信/送信上限(cap)を含む。インスタンスタイプは、一般的にはノードの相対サイズ及び演算能力を記述し、例示的には、微小(micro)、小(small)、中(medium)、大(large)、x−大(x-large)、2x−大(2x-large)、4x−大(4x-large)等(図9)から選択される。図8の例示的なテーブル258において、各ノード16は、7680メガバイト(MB)のメモリ容量と、850ギガバイト(GB)の記憶容量と、4コアプロセッサと、を伴う大タイプである。ノードコンフィギュレータ72は、選択可能ノードデータ、例示的には選択ボックス259及び選択可能入力262、のユーザ選択に基づきノード16を選択する。各ノード16のタイプは、テーブル258のノード16の選択(例えば入力262を用いた選択又は対応する選択ボックス259をチェックすることによる選択)及びインスタンスタイプ編集入力260を選択することに基づき変更可能であり、インスタンスタイプ編集入力260は選択されたノード16のためのインスタンスタイプタブ252を表示させる。図9を参照すると、テーブル264は、ノードクラスタ14における使用に対する選択のために利用可能であるノード16のタイプ(即ち利用可能なサーバハードウェア)のリストを備えている。テーブル264の1つ以上のノード16が、図8のテーブル258において選択されたノード16と差し替えるために、選択可能入力265で選択される。一実施形態では、テーブル264のフィールド(例えばメモリ、VCPUs、記憶容量等)は、選択されたノード16の所望のハードウェア性能特性を更に識別するために、ユーザによって修正可能である。利用可能なサーバハードウェアに応じて、より少ない又は追加的なノード16のタイプがテーブル264における選択のために利用可能であってよい。図示された実施形態では、ノードクラスタ14に追加するために、テーブル264にリストされている各ノードタイプに対して複数のノード16が利用可能である。
Referring to FIG. 8, the
図10を参照すると、ノードコンフィギュレータ72は、ユーザインタフェース200のインスタンス設定タブ254において提供されたユーザ入力に基づき、各ノード16のブート時間コンフィギュレーションを調節する。ブート時間コンフィギュレーションは、個々のノード16、ノード16のグループ又はノードクラスタ14全体に適用される1つ以上のブート時間パラメータを含む。各ノード16の演算能力、システムメモリ容量及び/又は記憶容量等のブート時間パラメータは、それぞれのノード16が最大能力未満で動作するように、フィールド268,270,272,274へのユーザ入力に基づき制限又は制約される。デフォルトのブート時間パラメータは、入力269のユーザ選択に基づき選択され、カスタマイズされたブート時間パラメータは、入力271のユーザ選択に基づき選択される。図示された実施形態では、各調節可能パラメータの最大設定がデフォルトであるが、ユーザは、入力271で「カスタム」オプションを選択してコンフィギュレーション設定をそれぞれのフィールド268,270,272,274にエンターすれば、各パラメータを調節することができる。
Referring to FIG. 10, the node configurator 72 adjusts the boot time configuration of each
図示された実施形態では、ノード16の処理コアの数はフィールド268で調節可能である。例えば、インスタンスタブ250(図8)のテーブル258において選択されたノード16が4つの処理コアを有している場合、ワークロード実行に際して有効にされる処理コアの数は、フィールド268を介して0,1,2又は3に減らすことができ、それにより、選択されたノード16の1つ以上の処理コアをワークロード実行に際してオペレーティングシステム44(図2)から「隠す」こと(hiding)ができる。可視(visible)システムメモリサイズ、即ちオペレーティングシステム44(図2)によってアクセス可能なシステムメモリのサイズは、フィールド270,272への入力に基づき調節可能である。例えば、インスタンスタブ250(図8)のテーブル258において選択されたノード16が2048MBのメモリ容量を有している場合、ワークロード実行に際して有効にされる「可視」メモリ(例えばランダムアクセスメモリ)は、2048MB未満に減らされてよく、それにより、ワークロード実行に際してそのメモリの一部をオペレーティングシステム44(図2)から「隠す」ことができる。追加的なブート時間パラメータを調節するために、追加的なワークロード引数(arguments)又は命令がフィールド274で適用される。ワークロードの引数の数は、フィールド274にエンターされた数に基づき増大又は減少させられてよい。例えば、ワークロードの命令のサブセットが実行のためにフィールド274で選択可能であり、それにより、残りの命令をオペレーティングシステム44(図2)から隠すことができる。更に、64ビットアーキテクチャを有するノード16は、32ビットだけがオペレーティングシステム44に可視である場合に32ビットモードで動作するように、フィールド274への入力に基づきコンフィギュア可能である。追加的なブート時間パラメータがフィールド276にエンターされてよい。一実施形態では、追加的なクラウドコンフィギュレーション設定を提供するために、命令又はコードがユーザによって手動でフィールド276にエンターされてよい。例えば、ブートに際して特定のノード16がマスタとして動作するように、マップリデュースワークロードのためのマスタノード16がフィールド276を介して指定されてよい。一実施形態では、ここに述べられるように、1つ以上のノード16の動作をノードコンフィギュレータ72で制限することは、クラウドコンピューティングシステム10の性能をテストするために用いられる。図示された実施形態では、図10において指定されたブート時間コンフィギュレーション設定は、図36〜38に関してここに述べられるように、それぞれのノード16のブート時間コンフィギュレーションを調節するためにノードコンフィギュレータ72から各ノード16に提供されるブート時間コンフィギュレーションファイル28(図3)内で提供される。
In the illustrated embodiment, the number of processing cores for
コンフィギュレータ22は、図7のネットワークコンフィギュレーションモジュール206のユーザ選択に基づき、図11〜17に示される例示的なネットワーク設定ウィザードウィンドウ280を生成する。図11を参照すると、ネットワーク設定ウィザード280は、1つ以上のノード16のネットワークパラメータを調節するための選択可能データを各々が含む複数のグローバルネットワーク設定を提供する。調節可能なネットワークパラメータは、タブ282を介してのネットワーク遅延、タブ284を介してのパケット損失、タブ286を介してのパケット重複、タブ288を介してのパケット破損、タブ290を介してのパケット並び替え、タブ292を介してのパケット速度制御、及び、タブ294を介しての他のカスタムコマンドを含む。ユーザインタフェース200のネットワーク設定ウィザード280を介したユーザ選択及びユーザ入力に基づき、図3のネットワークコンフィギュレータ74は、ここに述べられるように、図1の通信ネットワーク18のノード16のネットワークパラメータを調節するように動作する。一実施形態では、ネットワークパラメータの修正は、ネットワークテスト及び性能解析のために用いられ且つ/又はシステム電力消費を調節するために用いられる。図示された実施形態では、ネットワークコンフィギュレータ74は、ネットワーク設定ウィザード280へのユーザ入力に基づきネットワークのトラフィック及び挙動を人為的に形成し、それにより種々のタイプのネットワークトポロジをモデル化する。例えば、異なる通信ネットワークは、ネットワークコンフィギュレーションに応じて異なるレイテンシ(latencies)、帯域、性能等を有する。そこで、ネットワークコンフィギュレータ74は、異なるコンフィギュレーションを有するネットワークに、選択されたワークロードでそれら異なるネットワークの性能をテストし解析するためのワークロード実行が実装されることを可能にする。一実施形態では、テスト及び解析は、異なるネットワークコンフィギュレーションでのワークロード実行をバッチプロセッサ80が開始することに連動して行われる。例えば、選択されたハードウェア(ノード16)コンフィギュレーションでの特定のワークロードの実行のために、最適ネットワークトポロジが決定されてよい。一実施形態では、ネットワークコンフィギュレータ74は、ノードクラスタ14のノード16の特定のグループ又はサブセットにネットワーク設定を適用するように動作する。
The
引き続き図11を参照すると、通信ネットワーク遅延を実装することに関連する選択可能データは、タブ282内に示される。ネットワークコンフィギュレータ74は、入力(例示的にはボックス)298〜301及びフィールド302,304,306,308,310,312のユーザ選択に基づきネットワーク遅延を選択し修正する。通信ネットワーク18(図1)を介しての各パケット通信(即ち、パケットはノード16間又はあるノード16と制御サーバ12との間でデータ又は情報を搬送する)に対する通信遅延は、入力298の選択及びフィールド302を介してエンターされた遅延値に基づき実装される。指定された通信遅延の変動は、入力299の選択及びフィールド304を介してエンターされた変動値(例えば例示的にはプラスマイナス10ミリ秒の変動)に基づき実装される。フィールド310,312は、フィールド302,304のそれぞれの値に関連する時間の単位(例えばミリ秒、マイクロ秒等)を選択するためのドロップダウンメニューを含む。指定された通信遅延間の相関は、入力300の選択及びフィールド306を介してエンターされた相関値、例示的にはパーセンテージ相関値、に基づき実装される。指定された通信遅延の分布は、ドロップダウンメニュー301の選択に基づき実装される。分布は、正規分布又は他の適切な分布タイプを含む。
With continued reference to FIG. 11, selectable data associated with implementing communication network delay is shown in
図12を参照すると、ネットワークパケット損失率を実装することに関連する選択可能データがタブ284内に示されている。ネットワークコンフィギュレータ74は、入力(例示的にはボックス)313,314及びフィールド315,316のユーザ選択に基づきパケット損失率(即ちパケットが人為的に失われる比率)を選択し修正する。パケット損失率は、入力313の選択及びフィールド315を介してエンターされた比率の値に基づき、ネットワーク18を介したパケット通信に対して実装される。パケット損失率は例示的にはパーセンテージとしてエンターされ、例えば0.1%はノード16によって送られる1000パケット毎に1パケットの損失をもたらす。パケット損失率のための相関は、入力314の選択及びフィールド316を介してエンターされた相関値(例示的にはパーセント値)に基づき実装される。
Referring to FIG. 12, selectable data related to implementing network packet loss rates is shown in
図13を参照すると、ネットワークパケット重複率を実装することに関連する選択可能データがタブ286内に示されている。ネットワークコンフィギュレータ74は、入力(例示的にはボックス)317,318及びフィールド319,320のユーザ選択に基づきパケット重複率(即ち、パケットが人為的に重複させられる比率)を選択し修正する。パケット重複率は、入力317の選択及びフィールド319を介してエンターされた比率の値に基づき、ネットワーク18を介したパケット通信に対して実装される。パケット重複率は例示的にはパーセンテージとしてエンターされ、例えば0.1%はノード16によって送られる1000パケット毎に1パケットの重複をもたらす。パケット重複率のための相関は、入力318の選択及びフィールド320を介してエンターされた相関値(例示的にはパーセント値)に基づき実装される。
Referring to FIG. 13, selectable data related to implementing network packet duplication rates is shown in
図14を参照すると、ネットワークパケット破損率を実装することに関連する選択可能データがタブ288内に示されている。ネットワークコンフィギュレータ74は、入力(例示的にはボックス)321及びフィールド322のユーザ選択に基づきパケット破損率(即ち、パケットが人為的に破損させられる比率)を選択し修正する。パケット破損率は、入力321の選択及びフィールド322を介してエンターされた比率の値に基づき、ネットワーク18を介したパケット通信に対して実装される。パケット破損率は、例示的にはパーセンテージとしてエンターされ、例えば0.1%はノード16によって送られる1000パケット毎に1パケットの破損をもたらす。一実施形態では、パケット破損率のための相関が選択され実装されてもよい。
Referring to FIG. 14, selectable data associated with implementing a network packet corruption rate is shown in
図15を参照すると、ネットワークパケット並び替え率を実装することに関連する選択可能データがタブ290内に示されている。ネットワークコンフィギュレータ74は、入力(例示的にはボックス)323,324及びフィールド325,326のユーザ選択に基づきパケット並び替え率(即ち、パケット通信に際してパケットが順序を変えて置かれる比率)を選択し修正する。パケット並び替え率は、入力323の選択及びフィールド325を介してエンターされた比率の値に基づき、ネットワーク18を介したパケット通信に対して実装される。パケット並び替え率は、例示的にはパーセンテージとしてエンターされ、例えば0.1%はノード16によって送られる1000パケット毎に1パケットの並び替えをもたらす。パケット並び替え率のための相関は、入力324の選択及びフィールド326を介してエンターされた相関値(例示的にはパーセント値)に基づき実装される。
Referring to FIG. 15, selectable data associated with implementing a network packet reordering rate is shown in
図16を参照すると、ネットワーク通信速度を実装することに関連する選択可能データがタブ292内に示されている。ネットワークコンフィギュレータ74は、入力(例示的にはボックス)327〜330及びフィールド331〜338のユーザ選択に基づきパケット通信速度(即ち、ノード16間でパケットが通信される速度)を選択し修正する。パケット通信速度は、入力327の選択及びフィールド331を介してエンターされた速度値に基づき通信ネットワーク18に対して実装され、パケット通信速度に対する許容限度(ceiling)(最大値)は、入力328の選択及びフィールド332を介してエンターされた許容限度値に基づき実装される。パケットバーストは、入力329の選択及びフィールド333を介してエンターされたパケットバースト値に基づき実装され、パケットバーストに対する許容限度(最大値)は、入力330の選択及びフィールド334を介してエンターされた許容限度値に基づき実装される。フィールド335及び336は、速度単位(例示的にはキロバイト毎秒)を選択するためのドロップダウンメニューを提供し、フィールド337及び338は、バースト単位(例示的にはバイト)を選択するためのドロップダウンメニューを提供する。
Referring to FIG. 16, selectable data related to implementing network communication speed is shown in
図17を参照すると、ネットワークパラメータの調節を実装することに関連する選択可能データがタブ294内に示されている。ネットワークコンフィギュレータ74は、入力(例示的にはボックス)340のユーザ選択及びフィールド342を介してエンターされたカスタムコマンドに基づき、通信ネットワーク18上の1つ以上のノード16に関連するネットワークパラメータを修正するためのカスタムコマンドを提供する。
Referring to FIG. 17, selectable data associated with implementing network parameter adjustment is shown in
図18を参照すると、ワークロードコンテナコンフィギュレーションモジュール208が選択されている。モジュール208へのユーザ入力(例えば、入力352,360,362等の選択可能ワークロードコンテナデータのユーザ選択)に基づき、ワークロードコンテナコンフィギュレータ76は、ノードクラスタ14上での動作のためのワークロードコンテナモジュールを選択しコンフィギュアするように動作する。モジュール208は、種々の利用可能ワークロードコンテナモジュールに対応する複数の選択可能タブ350を含む。各利用可能ワークロードコンテナモジュールは、実行されるときにノードクラスタ14上でのワークロードの実行を開始し制御するように動作する選択可能コードモジュールを含む。図示された実施形態においてモジュール208を介して利用可能なワークロードコンテナモジュールは、アパッチハドゥープ(Apache Hadoop)、メムキャッシュディー(Memchashed)、カサンドラ(Cassandra)及びダーウィンストリーミング(Darwin Streaming)等の幾つかのサードパーティに係る市販のワークロードコンテナモジュールを含む。カサンドラは、基本的データベース動作を提供するためのキー値ストアを提供するオープンソースの分散型データ管理システムである。ダーウィンストリーミングは、アップルインク(Apple, Inc.)によって提供されるクィックタイム(QuickTime)等の、種々の動画媒体をストリーミングするために利用される媒体ストリーミングアプリケーションのオープンソースの実装である。オープンソースのワークロードコンテナソフトウェアがモジュール208を介して例示的に提供されているが、クローズドソースのワークロードコンテナが選択のために提供されてもよい。例えば、クローズドソースのワークロードコンテナソフトウェアに関連するライセンス情報が、ユーザインタフェース200を介して入力され又は購入されてよい。また、1つ以上のカスタムワークロードコンテナモジュールが、モジュール208の「カスタム」タブを介してロードされ選択されてもよい。他のワークロードコンテナモジュールが提供されてもよい。例えば先に使用されたカスタムワークロードコンテナモジュール等の選択のために利用可能な追加的なワークロードコンテナモジュールのライブラリへのアクセスを提供する「ライブラリ」タブも提供されている。
Referring to FIG. 18, the workload
図18の「ハドゥープ」タブの下で、ワークロードコンテナコンフィギュレータ76は、入力352のユーザ選択に基づきアパッチハドゥープワークロードコンテナモジュールを選択する。アパッチハドゥープのバージョン及びビルドバリアント(build variant)は、一般タブ354の下でそれぞれドロップダウンメニュー360,362を介して選択可能である。選択されたワークロードコンテナモジュールの動作パラメータは、拡張タブ356及びカスタムタブ358を介して提供されるユーザ入力に基づきワークロードコンテナコンフィギュレータ76によって調節可能である。調節のために利用可能な動作パラメータは、例示的には、選択されたワークロードコンテナモジュールに依存する。例えば、アパッチハドゥープがワークロードコンテナモジュールとして選択されている場合、図19に示される拡張タブ356は、ワークロードコンテナコンフィギュレータ76によってコンフィギュア可能な、アパッチハドゥープワークロードコンテナモジュールの例示的な選択可能動作パラメータのテーブル366を表示する。ワークロードコンテナコンフィギュレータ76は、対応する選択ボックス367のユーザ選択に基づき、コンフィギュレーションのための動作パラメータを選択する。テーブル366は、オーバーライドフィールド374、マスタ値フィールド378及びスレーブ値フィールド380を含むコンフィギュレーションデータを受信するために、ワークロードコンテナコンフィギュレータ76のための幾つかのフィールドを提供する。オーバーライドフィールド374内でのユーザ選択に基づき、対応する動作パラメータでそのワークロードコンテナが調節されるべきノード16が選択される。ノード16は、対応するドロップダウンメニューにおけるユーザ選択に基づき又は入力384のユーザ選択に基づきオーバーライドフィールド374において選択される。例示的には、「非(never)」の選択は、全ノード16で実装されている対応する動作パラメータのデフォルトコンフィギュレーションをもたらし、「マスタ」又は「スレーブ」の選択は、それぞれマスタノード16又はスレーブノード16でのパラメータ調節の実装をもたらし、「常に(always)」の選択は、ノードクラスタ14の全ノード16でのパラメータ調節の実装をもたらす。代替的には、ノードクラスタ14の個々のノード16が、調節された動作パラメータの実装のために選択されてよい。
Under the “Haddoop” tab of FIG. 18, the
マスタ値フィールド378及びスレーブ値フィールド380においては、制約、データ値又は他のユーザ選択が、マスタノード16又はスレーブノード16のそれぞれにおけるワークロードコンテナの対応する動作パラメータのための調節値を提供する。プロパティ名フィールド376は、例示的には、選択されたワークロードコンテナモジュールのコードモジュールにおいて参照される関連動作パラメータの名前をリストする。記述フィールド382は、例示的には、関連動作パラメータのユーザに対して概要を表示する。入力386により、ユーザはテーブル366内にリストされた全動作パラメータを選択又は除外することができる。入力388により、ユーザは、先の選択又はパラメータ変更を逆にすること又は「取り消し(undo)」が可能であり、入力390により、ユーザは、フィールド374,378,380内に提供された値をデフォルト設定にリセットすることができる。
In the
テーブル366内でのユーザ選択に基づきワークロードコンテナコンフィギュレータ76で調節可能な動作パラメータの例としては、ノード16のリード/ライト(I/O)動作、ソーティング動作、ノード16のネットワークソケット動作(例えばTCPソケット接続)のコンフィギュレーション、及び、ワークロードコンテナのファイルシステム55(例えばアパッチハドゥープのためのHDFS)に関連する動作パラメータが挙げられる。リード/ライト動作に関連する動作パラメータは、例えば、ノード16のメモリバッファサイズ及びリード/ライト動作に際して転送されるデータブロックのサイズを含む。例示的には、テーブル366の行368に示されるメモリバッファサイズは、ノード16のリード/ライト(I/O)動作に際してどれくらいの量のデータがバッファされる(キャッシュ内に一時的に記憶される)のかに対応している。図示された実施形態では、メモリバッファサイズは、ノードハードウェアのメモリページ又はデータブロックサイズの倍数である。メモリページ又はデータブロックは、ここに述べられるように、メモリ割り振り及びメモリ転送のためのデータの最小単位である、ノード16の固定長ブロック又は仮想メモリを参照する。図19の行368においては、マスタノード及びスレーブノードの値は、例示的に4096ビットに設定されているが、これらの値は、8192ビット又はノードプロセッサ40(図2)のデータブロックサイズの他の適切な倍数に調節されてよい。同様に、リード/ライト動作に際して転送されるデータブロックのサイズもまた、テーブル366へのユーザ入力に基づき調節される。
Examples of operation parameters that can be adjusted by the
ソーティング動作に関連する動作パラメータは、例えば、データをソーティングするときに同時にマージするデータストリームの数を含む。ワークロードコンテナのファイルシステム(例えば図2のファイルシステム55)に関連する動作パラメータは、各ノード16のメモリ42に記憶されるファイルシステム記録又はファイルの数(例えば行370参照)及びファイルシステム55に対する処理要求のために割り振られる各ノード16の処理スレッドの数を含む。テーブル366の例示的な行370においては、図2のファイルシステム55のためにメモリ42内に記憶される記録の数は、マスター及びスレーブノード16に対して両方とも100000記録であるが、他の適切な記録制限値がエンターされてもよい。一実施形態では、ファイルシステム記録の数を制限することは、ファイルシステム55によるファイルの複製を制限するのに役立つ。
The operational parameters associated with the sorting operation include, for example, the number of data streams that are merged simultaneously when sorting data. The operational parameters associated with the workload container file system (eg,
ここで述べられるTCPネットワークソケット等のネットワークソケットのコンフィギュレーション及び動作に関連する動作パラメータは、ワークロードコンテナとネットワークソケットの相互作用を伴う。例えば、ネットワークソケットの通信遅延又はレイテンシ及びネットワーク18(図1)を介して送られるパケットの数が調節されてよい。例えば、ノード16のTCPソケット接続を介して送られるデータパケットのレイテンシ及び数を調節するために、テーブル366の行372が、アルゴリズム、例示的には当該技術分野において知られる「ネーグルアルゴリズム(Nagle's algorithm)」、のフィールド378,380を介してのアクティベーション/ディアクティベーションを可能にしている。ネットワークソケットの動作に関連する他の適切な動作パラメータが調節されてもよい。
Operating parameters related to the configuration and operation of network sockets such as the TCP network socket described herein involve the interaction of the workload container and the network socket. For example, network socket communication delay or latency and the number of packets sent over the network 18 (FIG. 1) may be adjusted. For example, to adjust the latency and number of data packets sent over the TCP socket connection of
ワークロードコンテナコンフィギュレータ76によって調節可能な他の例示的な動作パラメータは、ノード16のプロセッサ40により同時に実行されるソフトウェアタスクの数を含む。例えば、ユーザは、ワークロード実行に際して同時に実行される一定数のタスク(例えばJAVA(登録商標)タスク)を、テーブル366への入力を介して指定してよく、これに伴いワークロードコンテナコンフィギュレータ76はタスクの数を調節する。ワークロードコンテナに関連する他の適切な動作パラメータが調節されてよい。
Other exemplary operating parameters that can be adjusted by the
図20のカスタムタブ358を参照すると、選択されたワークロードコンテナモジュールの更なるカスタム化を可能にするために、追加的なコンフィギュレーション調節が、選択されたワークロードコンテナモジュール、例示的にはハドゥープワークロードコンテナモジュール、のために実装されてよい。ワークロードコンテナコンフィギュレータ76は、フィールド392,394,396へと入力されたコマンド文字列並びに対応する選択可能ボックス398のユーザ選択に基づき、選択されたワークロードコンテナモジュールのコンフィギュレーションを更に調節する。図示された実施形態では、これらのフィールド392,394,396は、それぞれ、ハドゥープマスタノードと、ハドゥープファイルシステムと、タスクトラッカ(task tracker)内のタスクの数、一時的データを何処に置くかのローカルディレクトリ及び他の適切なパラメータ等の、マップリデュース実行に関連するパラメータと、に適用されるコンフィギュレーションを指定する。
Referring to the
他の利用可能ワークロードコンテナモジュール(例えばメムキャッシュディー、カサンドラ、ダーウィンストリーミング等)に関連する動作パラメータは、ハドゥープワークロードコンテナモジュールで説明したのと同様に調節される。モジュール208の入力352とタブ354,356,358を介して提供されたコンフィギュレーション情報とに基づき、ワークロードコンテナコンフィギュレータ76は、ノードクラスタ14のノード16へとロードするためのワークロードコンテナイメージファイル94(図3)を生成する。一実施形態では、ワークロードコンテナイメージファイル94は、制御サーバ12のメモリ90内又はノード16のメモリ42内にセーブされ、ワークロードコンテナコンフィギュレータ76は、イメージファイル94をコンフィギュレーション情報で更新する。一実施形態では、ワークロードコンテナモジュールの複数のコンフィギュレーションがセーブされてよく、次いで、例えばワークロード及びシステム性能に対するワークロードコンテナコンフィギュレーション変更の影響を調査する等のために、順に実行されてよい。
Operating parameters associated with other available workload container modules (eg, Mem Cash Dee, Cassandra, Darwin Streaming, etc.) are adjusted in the same manner as described for the Hadoop Workload Container Module. Based on the
図21を参照すると、ワークロードコンテナコンフィギュレータ76は、モジュール208の「カスタム」タブの入力353,401のユーザ選択に基づき、ノード16上での実行のためのユーザ定義のカスタムワークロードコンテナモジュールを選択する。図示された実施形態では、カスタムワークロードコンテナモジュールは、ここに述べられるように、ユーザによって提供され且つ商業的には利用可能でなくてよいワークロードコンテナモジュールを含む。ワークロードコンテナコンフィギュレータ76は、例示的には、ワークロードコンテナコードモジュールを含む圧縮ジップ(zip)ファイルをロードする。具体的には、ジップファイルは、ノードクラスタ14上でのワークロードの実行を連携させるためのユーザ定義のパラメータを含むコンフィギュレーションファイル又はスクリプトを含む。図21に示されるように、テーブル400は、制御サーバ12(又はコンピュータ20)に記憶され且つ選択可能な1つ以上の入力401を介してユーザ選択のために利用可能なロード済みのカスタムワークロードコンテナモジュールのリストを提供する。追加的なカスタムワークロードコンテナモジュールが、入力402,404のユーザ選択に基づきそれぞれアップロード又はダウンロードされテーブル400内に表示され、カスタムワークロードコンテナモジュールは、入力403のユーザ選択に基づきテーブル400から削除される。ユーザは、ジップフォルダパス及び/又はコンフィギュレーションスクリプトパスを、それぞれのフィールド406,408を介してエンターすることができる。一実施形態では、カスタムワークロードコンテナモジュールは、コンピュータ20(図1)のメモリ34上など、クラウドコンピューティングシステム10から遠隔の場所に記憶されており、入力402のユーザ選択に基づき制御サーバ12のメモリ90(図3)へとアップロードされる。
Referring to FIG. 21, the
図22を参照すると、ワークロードコンフィギュレーションモジュール210が選択されている。モジュール210へのユーザ入力に基づき、ワークロードコンフィギュレータ78(図3)は、ノードクラスタ14により選択されたワークロードコンテナモジュールでの実行のためのワークロードを選択しコンフィギュアするように動作する。また、ワークロードコンフィギュレータ78は、選択されたワークロードコンテナモジュールでノード16上で実行される合成テストワークロードを、ユーザ定義のワークロードパラメータに基づき生成するようにも動作する。モジュール210は幾つかの選択可能タブを含み、これらの選択可能タブは、ワークロードタブ410、合成カーネルタブ412、MCブラスタ(MC-Blaster)タブ414、設定ライブラリタブ416及びクラウドスィート(CloudSuite)タブ417を含む。図22のワークロードタブ410の下で、例示的には選択可能入力418,424,428を含む選択可能ワークロードデータのユーザ選択に基づき、実行されるべきワークロードがワークロードコンフィギュレータ78によって選択される。例示的には、利用可能ワークロードは、例えば、ハドゥープワークロードコンテナ上での実行に適したワークロード(入力418)、メムキャッシュディーワークロードコンテナ上での実行に適したワークロード(入力424)、又は、カスタムワークロード(入力428)等の、選択されたワークロードコンテナのためにコンフィギュアされた任意の他の適切なワークロードを含む。
Referring to FIG. 22, the
図22を参照すると、ハドゥープワークロードが、実際のワークロード及び合成テストワークロードから、対応する入力418の1つのユーザ選択に基づき選択されている。実際のワークロードは、ハドゥープワークロードコンテナのマップリデュース機能に適した予め定義されたコードモジュールを含み、フィールド422内の実際のワークロードの記憶ロケーションの識別に基づき制御サーバ12へとロードされる。一実施形態では、実際のワークロードは、図1のメモリ34等の、クラウドコンピューティングシステム10から遠隔のメモリ上に記憶され、フィールド422を介して制御サーバ12のメモリ90へとアップロードされる。他の実施形態では、実際のワークロードは、ハドゥープワークロードコンテナモジュールと共に提供されるサンプルハドゥープワークロードであり、あるいは制御サーバ12へ予めロードされた他のワークロードである。また、合成テストワークロードは、ハドゥープワークロードコンテナ上での実行のために、対応する入力418のユーザ選択に基づき選択可能である。入力記録の数、又は、合成テストワークロードと共に生成されるべき命令の数であって、合成テストワークロードの「マップ」段階において処理されるべき命令の数は、ここに述べられるように、フィールド420を介してエンターされてよく、また、ワークロードコンフィギュレータ78のシンセサイザ79(図3)への入力として提供されてよい。シンセサイザ79による合成テストワークロードの生成のための他の入力パラメータは、ここに述べられるように、合成カーネルタブ412を介してコンフィギュアされる。ハドゥープワークロードコンテナでの実行のために合成テストワークロードが例示的に適用されているが、他の利用可能ワークロードコンテナのために合成テストワークロードが選択され生成されてもよい。
Referring to FIG. 22, a hadoop workload has been selected based on one user selection of the
カスタムスクリプトは、選択されたワークロードコンテナモジュールでの実行のための予め定義された実際のワークロードとして、フィールド430を介して且つ入力428のユーザ選択があった場合にロードされる。カスタムスクリプトは、選択されたワークロードコンテナモジュールでノードクラスタ14によって実行される1つ以上の実行コマンドを含むユーザ提供のコードを備える。図示された実施形態では、カスタムスクリプトは、バッチプロセッサ80でのシステムテストに際して実行されるワークロードとして用いられ、種々のネットワーク、ワークロードコンテナ及び/又は他のシステムコンフィギュレーションの変更が、ここに述べられるように、逐次的ワークロード実行に際してなされて、システム性能への影響がモニタされる。
The custom script is loaded as a pre-defined actual workload for execution in the selected workload container module via
予め定義されたワークロードが、入力424のユーザ選択に基づき、メムキャッシュディーワークロードコンテナでの実行のためにロードされてもよい。一実施形態では、メムキャッシュディーワークロードは、「セット」コマンドを介してキー値ペアを記憶すると共に「ゲット」コマンドを介してキー値ペアをリトリーブするメモリ内加速構造を含む。1つのキー値ペアは、2つのリンクされたデータ項目のセットであり、これらデータ項目は、データのある項目のための識別子であるキーと、そのキーによって識別されたデータ又はそのデータのロケーションへのポインタのいずれかである値と、を含む。メムキャッシュディーワークロードは、例示的には、フィールド426への入力値に基づきそのランタイムが選択される選択可能MCブラスタツールで動作する。MCブラスタは、一定数のネットワーク(例えばTCP)ソケット接続上でメムキャッシュディーから記録をリード/ライトする要求を生成することによって、テスト中のシステムを刺激するためのツールである。各要求は、キー及び値を指定する。MCブラスタツールは、図24のMCブラスタタブ414を介してコンフィギュアされる。図24を参照すると、フィールド460への入力は処理スレッド毎に利用するTCP接続の数を指定し、フィールド462への入力は動作させるキーの数を指定し、そしてフィールド464,466への入力は、1秒あたりに送られることを要求される「ゲット」コマンド及び「セット」コマンドをそれぞれ指定する。ユーザ指定の(カスタム)バッファサイズは、対応する入力469の選択及びフィールド468へエンターされた値に基づきワークロードコンフィギュレータ78によって実装されてよく、TCP要求は、入力470の「オン(on)」の選択に基づき遅延させられてよい。開始すべき一定数の処理スレッドが、対応する入力473のユーザ選択及びフィールド472にエンターされた値に基づき、ワークロードコンフィギュレータ78によってカスタマイズされてよい。処理スレッドのデフォルト数は、ノード16のアクティブな処理コアの数に等しい。UDPリプレイポートの数は、フィールド474への入力に基づき選択され、ワークロード実行の結果として記憶される(又は戻される)値のサイズ(バイト)は、フィールド476への入力に基づき選択される。
A predefined workload may be loaded for execution in the Mem Cash Dee workload container based on the user selection of
図23を参照すると、合成テストワークロードが、合成カーネルタブ412を介して提供されたユーザ入力に基づき、シンセサイザ79によって生成される。具体的には、ワークロードコンフィギュレータ78のシンセサイザ79(図3)は、制御サーバ12のメモリ90へとロードされるコードモジュール、例示的にはトレース(trace)ファイル(例えばコンフィギュレーションファイル)、において提供されるユーザ定義のパラメータに基づき、合成テストワークロードを生成する。トレースファイルは、ここに述べられるように、合成テストワークロードの所望の計算上の(computational)特性を記述するデータを含む。図23の「合成」入力434のユーザ選択があると、フィールド436又はフィールド438へのユーザ入力に基づき、記憶されているトレースファイルのロケーションが識別されてよい。フィールド436は、例示的には、トレースファイルを含むハードディスクロケーション(例えば図1のコンピュータ20のメモリ34)を識別し、フィールド438は、例示的には、トレースファイルをリトリーブするためのウェブアドレス又はURLを識別する。テーブル440は、トレースファイルと、ロード済みで選択のために利用可能な先に生成された合成テストワークロードと、を表示する。トレースファイルは、入力442のユーザ選択でロードされると共にテーブル440内に表示され、入力444のユーザ選択でテーブル440から削除され、そして入力446のユーザ選択に基づきダウンロードされる(即ちフィールド438において識別されたURLから)。トレースファイルは例示的にはJSONファイルフォーマットであるが、他の適切なファイルタイプが提供されてもよい。合成テストワークロードにおいて生成されるべき命令の最大数はフィールド448において識別され、合成テストワークロードの繰り返しの最大数はフィールド450において識別される。代替的には、先に生成された合成テストワークロードが、ライブラリ入力432のユーザ選択、フィールド436又は438での合成テストワークロードの記憶ロケーション(ローカルハードドライブ、ウェブサイト等)の識別、及び、テーブル440に表示された所望の先に生成された合成テストワークロードに対応する入力441のユーザ選択に基づき、ワークロードコンフィギュレータ78によってロードされる。先に生成された合成テストワークロードの命令及び繰り返しの最大数は、フィールド448,450で調節可能である。
Referring to FIG. 23, a synthetic test workload is generated by synthesizer 79 based on user input provided via synthetic kernel tab 412. Specifically, the synthesizer 79 (FIG. 3) of the
トレースファイルは、ワークロード特性と、合成テストワークロードを生成するためにシンセサイザ79による入力として用いられるユーザ定義のパラメータと、を識別する修正可能データ構造、例示的には修正可能フィールドを有するテーブル、を含む。このテーブルは、テーブルのフィールドがテーブルへのユーザ入力及びユーザ選択に基づき修正され得るように、ユーザインタフェース200又はユーザコンピュータ20のユーザインタフェースを伴う等してユーザインタフェース上に表示される。例えば、ここに述べられる図32のテーブル150を参照されたい。トレースファイルは、更に、シンセサイザ79による入力として用いられる対象となる命令セットアーキテクチャ(ISA)の少なくとも一部を識別する。トレースファイルは、更に、合成テストワークロードの命令に関連する他の特性を識別し、これら他の特性は、命令間依存関係(例えば第1の命令は第1の命令を実行する前の第2の命令の完了に依存する)、メモリレジスタ割り振り制約(例えば命令が特定のレジスタからの値をとるように制約する)、及び、アーキテクチャ上の実行制約(例えば制限された数の論理ユニットが特定のタイプの命令を実行するために利用可能である)を含む。従って、コンフィギュレータ22は、トレースファイルで指定された実行特性に基づきワークロード命令がどれくらい長く実行されるべきであるかを予測するように動作する。
The trace file is a modifiable data structure that identifies workload characteristics and user-defined parameters used as input by the synthesizer 79 to generate a synthetic test workload, illustratively a table with modifiable fields; including. This table is displayed on the user interface, such as with the
トレースファイル内に記述されたユーザ定義のワークロードパラメータの例としては、生成されるべき命令の総数や、例えば浮動小数点命令、整数命令及び分岐命令を含め生成されるべき命令のタイプや、例えば実行フローの分岐の蓋然性(即ち命令実行に際して分岐が行われやすいかどうか又は実行が当該実行フローパスに沿って進行して分岐へはジャンプしないかどうか)等の命令実行の挙動(例えば実行フロー)や、命令間でのデータ依存性の分布や、実行及び/又は転送される基本ブロックの平均サイズや、命令実行に関連するレイテンシ(即ち特定の命令又は命令タイプの実行にどれくらいのサイクルが必要であるか等、1つの命令又は命令タイプを実行するのに要する時間の長さ)が挙げられる。一実施形態では、ユーザ定義のワークロードパラメータは、整数命令又は浮動小数点命令として特定のどの命令を用いるのかを指定する。一実施形態では、ユーザ定義のワークロードパラメータは、各命令タイプ(例えば整数、浮動小数点、分岐)の平均数及び統計的分布を指定する。一実施形態では、各命令は1つ以上の入力及び出力引数を含む。 Examples of user-defined workload parameters described in a trace file include the total number of instructions to be generated, the type of instruction to be generated including, for example, floating point instructions, integer instructions and branch instructions, and execution, for example Instruction execution behavior (for example, execution flow) such as the probability of branching of a flow (that is, whether a branch is likely to be performed at the time of instruction execution or whether execution proceeds along the execution flow path and jumps to the branch); The distribution of data dependencies among instructions, the average size of the basic blocks executed and / or transferred, and the latency associated with instruction execution (ie how many cycles are required to execute a particular instruction or instruction type) Etc., the length of time required to execute one instruction or instruction type). In one embodiment, the user-defined workload parameter specifies which particular instruction is used as an integer or floating point instruction. In one embodiment, user-defined workload parameters specify the average number and statistical distribution of each instruction type (eg, integer, floating point, branch). In one embodiment, each instruction includes one or more input and output arguments.
図示された実施形態では、トレースファイル内に記述されたワークロードパラメータ及び命令セットアーキテクチャは、テーブル駆動で再対象化可能な方法において(in a table-driven, retargetable manner)提供される。テーブルのコンテンツに対する変更に基づき、コンフィギュレータ22は、種々のマイクロアーキテクチャ及びシステム並びにノード16の種々の命令セットアーキテクチャを対象とするように動作する。例示的なテーブル150が図32に示されており、テーブル150は、コードシンセサイザ79へ入力されるべきユーザ定義のワークロードパラメータのセットを表すデータを含む。図32を参照すると、テーブル15は、生成された合成テストワークロードに対する命令の集まりを記述する命令部152と、合成テストワークロードと共に用いられるべきアドレシングモードを記述するアドレシングモード部154と、を含む。図示されたもの以外の命令及びアドレシングモードがテーブル150内に提供されてもよい。テーブル150の命令部152は、幾つかの修正可能フィールド158,160,162,164を含む。フィールド158は生成されるべき命令を識別するデータを含み、フィールド160は命令に関連する計算タイプを識別するデータを含み、フィールド162はシンセサイザ79によるコード生成を支援するために割り当てられたニーモニック(mnemonic)を識別するデータを含む。フィールド164は、種々のアドレシングモード(即ち命令の引数がメモリから得られるウェイ(way))を識別するデータを含む。
In the illustrated embodiment, the workload parameters and instruction set architecture described in the trace file are provided in a table-driven, retargetable manner. Based on changes to the contents of the table,
図示された実施形態では、入力コマンド156(「gen_ops.initialize()」)は、生成されるべき命令を記述するテーブル150の命令部152が開始していることを示している。行166は、1つ以上の命令を生成するためのユーザ定義のワークロードパラメータの一例を示す。行166を参照すると、フィールド158にエンターされた「D(IntShortLatencyArith)」は、短いレイテンシを有する整数演算命令を指定し、フィールド160,162にエンターされた「op_add」及び「addq」は、その命令が加算、即ち「add」命令であることを示している。一実施形態では、短いレイテンシは、プロセッサ(例えばノードプロセッサ40)が命令を実行するのに1サイクル又は数サイクル要することを示している。フィールド164の「addr_regOrw_reg1r」は、第1のレジスタ0引数が「rw」(リード及びライト)であり第2のレジスタ1引数が「r」(リード)であることを示している。同様に、フィールド164の「addr_reg0rw_imm」は、命令の他の変数を記述し、ここでは、第1の引数(レジスタ0引数)は「rw」(リード及びライト)であり、第2の引数は「imm」(「即時的(immediate)」)値(例えば123のような数字)である。
In the illustrated embodiment, the input command 156 ("gen_ops.initialize ()") indicates that the
テーブル150のアドレシングモード部154を参照すると、例示的な行170は、レジスタ上でのみ動作する命令のクラスを識別するフィールド172の「addr_regOw_reg1r」を含む。第1のレジスタ引数(即ちレジスタ0)は宛先「w」(ライト)であり、第2のレジスタ引数(即ちレジスタ1)は入力「r」(リード)である。フィールド174,176におけるエントリは、引数を識別すると共に、リード引数に対しては「src」を、ライト引数に対しては「dst」を、又は、リード・修正・ライト引数に対しては「rmw」を示している。x86アーキテクチャにおいては、例えば、第1のレジスタ引数は「rmw」であってよく(引数はリードされ、そこで動作し、次いで結果と共にライトされる)、あるいは他の適切な引数であってよい。追加的な又は異なるユーザ定義のワークロードパラメータがテーブル150を介して指定されてよい。
Referring to the addressing
一実施形態では、テーブル150(例えばトレースファイル)は、例えばユーザコンピュータ20による等、オフラインで生成されて、コンフィギュレータ22へとロードされる。一実施形態では、テーブル150は、制御サーバ12に記憶され又は制御サーバ12へとロードされ、そしてユーザインタフェース200によって表示された選択可能且つ修正可能なデータを介してユーザがユーザ定義のワークロードパラメータを修正することができるように、ユーザインタフェース200で表示される。
In one embodiment, the table 150 (eg, trace file) is generated offline and loaded into the
図33を参照すると、合成テストワークロードを生成して実行するための例示的な処理フローが示されている。合成テストワークロードを生成すると共にコンフィギュレーションファイル28及び合成ワークロードイメージ96を各ノード16へと出力するコードシンセサイザ79が示されており、各ノード16の合成ワークロードエンジン58は、ここに述べられるように合成テストワークロードを実行する。図33のブロック60,62,64は、シンセサイザ79へと入力されるトレースファイル内に提供されるコンテンツの抽象的表現を提供する。ブロック60は、命令セットの実行フローを表現する一般的タスクグラフである。ブロック62は実行されるタスク機能を表現しており、これらのタスク機能は、入力命令、出力命令、開始命令及び終了命令を含む。ブロック64はワークロード挙動パラメータを表現しており、これらのパラメータは、データブロックサイズ、実行の継続時間とレイテンシ、メッセージ伝搬、及び、ここに述べられる他のユーザ定義のパラメータを含む。
Referring to FIG. 33, an exemplary process flow for generating and executing a synthetic test workload is shown. A code synthesizer 79 is shown that generates a synthetic test workload and outputs a
シンセサイザ79は、例示的には、コードジェネレータ66及びコードエミッタ68を含み、これらの各々は、ここに述べられる種々の機能を行うために1つ以上のプロセッサ22によってアクセス可能なメモリ(例えばメモリ90)に記憶されたソフトウェアコード又はファームウェアコードを実行する制御サーバ12の1つ以上のプロセッサ22を備える。コードジェネレータ66は、ユーザ定義のワークロードパラメータ及び対象となる命令セットアーキテクチャを記述するトレースファイルのデータ構造(例えばテーブル)上で動作し、指定された実行プロパティを有する抽象化(abstracted)合成コードを生成する。コードエミッタ68は、抽象化合成コード(例えば実行ハーネスにおいてリンクされるべきアセンブリコード、バイナリコード、又は、シミュレーション基盤とリンクされるべき位置無依存(position-independent)コード、等)から、実行環境に適したフォーマットで実行可能合成コード(即ち合成テストワークロード)を作成する。一実施形態では、実行可能コードの所望のフォーマットは、シンセサイザ79においてハードコード化される。他の実施形態では、実行可能コードの所望のフォーマットは、ユーザインタフェース200の選択可能データを介して選択可能である。一実施形態では、フルサイズのワークロードを実行するようには構成されていないサイクル・アキュレート(cycle-accurate)シミュレータを介して実行可能コードが実行され得るように、実行可能コードはコンパクトなサイズである。シンセサイザ79の他の適切なコンフィギュレーションが提供されてもよい。一実施形態では、シンセサイザ79は、ノードクラスタ14のノード16のコンピュータアーキテクチャデータへのアクセスを有する。従って、シンセサイザ79は、ノードクラスタ14の既知のコンピュータアーキテクチャデータに基づき、特定のマイクロアーキテクチャ及び命令セットアーキテクチャを対象とする合成テストワークロードを生成する。従って、合成テストワークロードは、例えば、アーキテクチャ上の特性の所望のセットをエクササイズするために対象とされてよい。
The synthesizer 79 illustratively includes a
シンセサイザ79によって生成された合成テストワークロードは、選択されたワークロードコンテナモジュールと共にノード16上で実行可能なコードモジュールを含む。合成テストワークロードが実行のために生成され選択されると、その合成テストワークロードは、図3のワークロードイメージファイル96として制御サーバ12のメモリ90内に記憶される。コンフィギュレータ22は、次いでそのワークロードイメージファイル96を実行のために各ノード16へとロードし、あるいはノード16がそのワークロードイメージファイル96をリトリーブする。一実施形態では、ハドゥープワークロードコンテナモジュールが選択されると、合成テストワークロードは、マップリデュースの「マップ」段階として実行される。
The synthetic test workload generated by synthesizer 79 includes a code module that can be executed on
図示された実施形態では、合成テストワークロードは、ここに述べられるように、テスト及び性能解析に対してコンピューティングシステム10のハードウェアをエクササイズするために実行される。シンセサイザ79は、トレースファイルを介して所望のワークロード挙動を入力として受信し、この入力に従って挙動する合成テストワークロードを生成する。具体的には、ここに述べられるように、実行されるべき命令の数及び命令のタイプの統計的分布等の、所望のワークロード挙動の統計的プロパティが、シンセサイザ79への入力である。例えば、ロードされたトレースファイルは、1000個の命令を含むプログラムループを要求するユーザ定義のパラメータを含んでいてよく、そのトレースファイルは、命令の30%が整数命令であり、10%が特定の分岐構造を有する分岐命令であり、40%が浮動小数点命令である、等を指定してよい。トレースファイル(又は図23のフィールド450)は、そのループが100回実行されるべきであることを指定してよい。シンセサイザ79は、次いで、要求されたパラメータを含むプログラムループを合成テストワークロードとして生成する。
In the illustrated embodiment, the synthetic test workload is executed to exercise the
一実施形態では、生成された合成テストワークロードは、特定のプロプリエタリ(proprietary)コード又は既知のアプリケーション若しくはプログラムの複合(complex)コード等の実際のワークロードの挙動をエミュレートする役割を果たす。例えば、何らかのプロプリエタリコードは、ユーザにとってアクセス可能でなく利用可能でない命令を含む。同様に、何らかの複合コードは、複雑且つ多数の命令を含む。場合によっては、そのようなプロプリエタリコード又は複合コードに基づきワークロードを作成することは、好ましくはなく又は困難であるかもしれない。従って、プロプリエタリコード又は複合コードの全命令を含むワークロードコードモジュールを作成するのではなく、プロプリエタリコード又は複合コードがプロプリエタリコード又は複合コードの実行に際してどのようにサーバハードウェア(ノード16又は他のサーバハードウェア)をエクササイズするのかをモニタするために、モニタリングツール(例えばコンフィギュレータ22からはオフラインである)が用いられるのである。プロプリエタリコードの実行に際してモニタリングツールによって集められた統計的データは、プロプリエタリコード又は複合コードの所望の実行特性を表すパラメータを識別するために用いられる。パラメータの集まりはトレースファイル内に提供される。トレースファイルは次いでシンセサイザ79への入力としてロードされ、シンセサイザ79は、統計的入力及び他の所望のパラメータに基づき、プロプリエタリコードと同様に挙動する合成コードを生成する。従って、特定のコードの複合命令又はプロプリエタリ命令は、そのコードのクラウドコンピューティングシステム10上での挙動をモデル化する上で必要とされない。
In one embodiment, the generated synthetic test workload serves to emulate the behavior of an actual workload, such as specific proprietary code or known application or program complex code. For example, some proprietary code includes instructions that are not accessible or available to the user. Similarly, some composite code includes complex and numerous instructions. In some cases, creating a workload based on such proprietary or composite code may be undesirable or difficult. Thus, rather than creating a workload code module that contains all the instructions of a proprietary code or composite code, how the proprietary code or composite code is executed on the server hardware ( A monitoring tool (eg, offline from the configurator 22) is used to monitor whether to exercise the
一実施形態では、シンセサイザ79は、バッチプロセッサ80と協働して、種々のトレースファイルからシンセサイザ79によって生成された複数の合成テストワークロードを実行する。一実施形態では、ノード16の異なる対象プロセッサ、即ちCPU及びGPUsの両者、をテストする修正されたユーザ定義のワークロードパラメータのテーブル(例えば図32のテーブル150)に基づき、複数の合成テストワークロードが生成される。
In one embodiment, synthesizer 79 cooperates with
図34は、選択されたワークロードでクラウドコンピューティングシステム10をコンフィギュアするために図1及び図3の制御サーバ12のコンフィギュレータ22によって行われる例示的な動作のフローダイアグラム600を示している。図34の説明全体に対して図1及び図3が参照される。図示された実施形態では、コンフィギュレータ22は、ユーザインタフェース200を介して受信した複数のユーザ選択に基づき、図34のフローダイアグラム600に従って図1のノードクラスタ14をコンフィギュアする。ブロック602では、ユーザインタフェース200を介して受信したユーザ選択(例えば入力418の選択)に基づき、ワークロードコンフィギュレータ78は、クラウドコンピューティングシステム10の複数ノードのクラスタ14上での実行のためのワークロードを選択する。ワークロードは、ブロック602で、実際のワークロード及び合成テストワークロードを含む複数の利用可能ワークロードから選択される。実際のワークロードは、ここに述べられるように、制御サーバ12によってアクセス可能なメモリ(例えばメモリ90又はメモリ34)内に記憶されたコードモジュールを備えている。ブロック604では、ここに述べられるように、選択されたワークロードの処理が複数ノードのクラスタ14に分散されるように、選択されたワークロードを実行するために、コンフィギュレータ22は、クラウドコンピューティングシステム10の複数ノードのクラスタ14をコンフィギュアする。
FIG. 34 shows a flow diagram 600 of exemplary operations performed by the
一実施形態では、コンフィギュレータ22は、選択可能な実際のワークロードデータと選択可能な合成テストワークロードデータとを備えるユーザインタフェース200を提供し、ワークロードの選択は、選択可能な実際のワークロードデータ及び選択可能な合成テストワークロードデータの少なくとも一方に基づく。例示的な選択可能な実際のワークロードデータは、「実際のワークロード」に対応する図22の選択可能入力418と、図22の選択可能入力424,428と、を含み、例示的な選択可能合成テストワークロードデータは、「合成ワークロード」に対応する図22の選択可能入力418と、図23の選択可能入力434,436,441と、を含む。一実施形態では、ワークロードコンフィギュレータ78は、予め生成された合成テストワークロード、及び、選択可能合成テストワークロードデータのユーザ選択に基づくユーザ定義のワークロードパラメータのセット、の少なくとも一方を選択する。予め生成された合成テストワークロードは、制御サーバ12によってアクセス可能なメモリ(例えばメモリ90又はメモリ34)内に記憶されたコードモジュール(例えばライブラリ入力432を介してロードされる)を備える。シンセサイザ79は、例示的にはここに述べられるトレースファイルを介して提供されたユーザ定義のワークロードパラメータのセットの選択に基づき、合成テストワークロードを生成するように動作する。トレースファイルのユーザ定義のワークロードパラメータは、ここに述べられるように、合成テストワークロードの実行特性を識別する。
In one embodiment,
ここに述べられるように、例示的なユーザ定義のワークロードパラメータは、合成テストワークロードの命令の数、合成テストワークロードの命令のタイプ、合成テストワークロードの少なくとも1つの命令の実行に関連するレイテンシ、及び、合成テストワークロードの実行繰り返しの最大数の少なくとも1つを含み、命令のタイプは、整数命令、浮動小数点命令、及び、分岐命令の少なくとも1つを含む。一実施形態では、複数ノードのクラスタ14による合成テストワークロードの実行は、ここに述べられるように、複数ノードのクラスタ14による複合ワークロード又はプロプリエタリワークロード等の実際のワークロードの実行に関連する実行特性をシミュレートするように動作する。
As described herein, exemplary user-defined workload parameters relate to the number of instructions in the synthetic test workload, the type of instruction in the synthetic test workload, and the execution of at least one instruction in the synthetic test workload. It includes at least one of latency and the maximum number of execution iterations of the synthetic test workload, and the instruction type includes at least one of an integer instruction, a floating point instruction, and a branch instruction. In one embodiment, the execution of a synthetic test workload by a
図35は、合成テストワークロードでクラウドコンピューティングシステム10をコンフィギュアするために図1及び図3の制御サーバ12のコンフィギュレータ22によって行われる例示的な動作のフロー図610を示している。図35の説明全体に対して図1及び図3が参照される。図示された実施形態では、コンフィギュレータ22は、ユーザインタフェース200を介して受信した複数のユーザ選択に基づき、図35のフロー図610に従って図1のノードクラスタ14をコンフィギュアする。ブロック612では、ユーザインタフェース200を介して提供されたユーザ定義のワークロードパラメータのセットに基づき、ワークロードコンフィギュレータ78のコードシンセサイザ79は、複数ノードのクラスタ14上での実行のための合成テストワークロードを生成する。ユーザ定義のワークロードパラメータのセット(例えばトレースファイルで提供される)は、ここに述べられるように、合成テストワークロードの実行特性を識別する。ブロック614では、ここに述べられるように、合成テストワークロードの処理が複数ノードのクラスタに分散されるように合成テストワークロードを実行するために、コンフィギュレータ22は、複数ノードのクラスタ14を合成テストワークロードでコンフィギュアする。
FIG. 35 shows a flow diagram 610 of exemplary operations performed by the
一実施形態では、合成テストワークロードの生成は、複数ノードのクラスタ14に関連する命令セットアーキテクチャ及びマイクロアーキテクチャの少なくとも一方を識別するコンピュータアーキテクチャデータに更に基づく。ここに述べられるように、一実施形態では、コンフィギュレータ22は、複数ノードのクラスタ14の各ノード16の命令セットアーキテクチャ及びマイクロアーキテクチャをコンフィギュレータ22が識別することができるように、コンピュータアーキテクチャデータをメモリ(例えばメモリ90)内に記憶している。従って、メモリ内に記憶されたコンピュータアーキテクチャデータに基づき合成テストワークロードがノードクラスタ14のノード16の特定のコンピュータアーキテクチャでの実行のためにコンフィギュアされるように、コンフィギュレータ22は、合成テストワークロードを生成する。一実施形態では、コードシンセサイザ79は、複数ノードのクラスタ14のノード16に関連する異なるコンピュータアーキテクチャに各々が基づく複数の合成テストワークロードを生成し、各コンピュータアーキテクチャは、命令セットアーキテクチャ及びマイクロアーキテクチャの少なくとも一方を含む。一実施形態では、コンフィギュレータ22は、選択可能合成テストワークロードデータを備えるユーザインタフェース200を提供し、ワークロードコンフィギュレータ78は、選択可能合成テストワークロードデータのユーザ選択に基づき、合成テストワークロードの生成のためのユーザ定義のワークロードパラメータのセットを選択する。例示的な選択可能合成テストワークロードデータは、「合成ワークロード」に対応する図22の選択可能入力418と、図23の選択可能入力434,436,441と、を含む。一実施形態では、ユーザ定義のワークロードパラメータのセットは、ユーザインタフェース(例えばユーザインタフェース200又はコンピュータ20のディスプレイ21上に表示されたユーザインタフェース)上に表示されたデータ構造(例えば図32のテーブル150)において識別され、このデータ構造は、図32のテーブル150に関してここに述べられるように、少なくとも1つのユーザ定義のワークロードパラメータを各々が識別する複数の修正可能入力フィールドを含む。一実施形態では、コンフィギュレータ22は、ユーザインタフェース200を介して受信したユーザ選択(例えば入力269〜276でのブート時間パラメータの選択)に基づき、ノードクラスタ14の少なくとも1つのノード16の修正されたハードウェアコンフィギュレーションを選択する。この実施形態では、コンフィギュレータ22は、修正されたハードウェアコンフィギュレーションを有する複数ノードのクラスタ14上で合成テストワークロードを実行するために、複数ノードのクラスタ14を合成テストワークロードでコンフィギュアし、修正されたハードウェアコンフィギュレーションは、ここに述べられるように、当該少なくとも1つのノード16においてコンピューティング能力の低下及びメモリ容量の低減の少なくとも一方を結果としてもたらす。
In one embodiment, the generation of the synthetic test workload is further based on computer architecture data that identifies at least one of an instruction set architecture and a microarchitecture associated with the
再び図23を参照すると、先にセーブされたワークロードが設定ライブラリタブ416を介してローカルメモリ(例えば図3のメモリ90)からロードされてよい。設定ライブラリタブ416を介してロードされたワークロードは、実際のワークロード、合成テストワークロード、カスタムスクリプト、又は、選択されたワークロードコンテナモジュールでの実行に適した任意の他のワークロードを含んでいてよい。ロードされたワークロードコンフィギュレーションは、ユーザインタフェース200のモジュール210へのユーザ入力に基づき修正されてよい。現在のワークロードコンフィギュレーションもまた、設定ライブラリタブ416を介してメモリ90にセーブされてよい。
Referring again to FIG. 23, a previously saved workload may be loaded from local memory (eg,
図示された実施形態では、タブ417を介してクラウドスイートワークロードの集まりがロードされコンフィギュアされてもよい。クラウドスイートは、クラウドシステムを特徴付けるために利用される典型的なクラウドワークロードを備えるワークロードの集まりである。
In the illustrated embodiment, a collection of cloud suite workloads may be loaded and configured via
図25を参照すると、バッチ処理モジュール212が選択されている。モジュール212へのユーザ入力に基づき、バッチプロセッサ80(図3)は、複数のワークロードのバッチ処理を開始するように動作する。また、バッチプロセッサ80は、ここに述べられるように、種々のネットワークコンフィギュレーション、種々のワークロードコンテナコンフィギュレーション、種々の合成ワークロードコンフィギュレーション、及び/又は、種々のノードコンフィギュレーション(例えばブート時間コンフィギュレーションなど)等の複数の異なるコンフィギュレーションを有する1つ以上のワークロードの実行を開始するようにも動作する。ユーザ入力に基づき、バッチプロセッサ80は、全てのワークロードの実行が完了するために手動の介入が必要のないように、各ワークロード及び/又はコンフィギュレーションの実行を順にノードクラスタ14上で開始する。更に、バッチプロセッサ80は、ユーザインタフェース200のモジュール212を介して受信したユーザ設定に基づき、1つ以上のワークロードが複数回実行され得るようにこれらをコンフィギュアしてよい。バッチプロセッサ80は、実際のワークロード及び/又は合成テストワークロードをバッチとして実行するように動作する。図示された実施形態では、例えば図47及び図48に関してここに述べられるように、自動的なシステムチューニングを可能にするために、複数のワークロードのバッチ処理から性能データがモニタされ集約される。
Referring to FIG. 25, the
ワークロード及び/又はコンフィギュレーションのバッチのための実行の回数は、繰り返しカウントフィールド480を介して指定される。フィールド480へのユーザ入力に基づき、バッチプロセッサ80は、1つ以上のワークロードを指定された繰り返し回数だけ実行する。バッチシーケンステーブル482は、ノードクラスタ14によって実行されるべきバッチジョブをリストするディスプレイデータを備える。1つのバッチジョブは、指定された回数(フィールド480への入力に基づき指定される)の実行に適した1つ以上のワークロードを含む。一実施形態では、1つのバッチジョブは、1つ以上のワークロードでの指定された回数の実行に適した1つ以上のクラウドシステムコンフィギュレーションを含む。テーブル482には1つのバッチジョブのみがリストされているが、複数のバッチジョブがテーブル482に加えられてもよい。バッチプロセッサ80は、リストされた1つ以上のバッチジョブに対応する1つ以上の入力483のユーザ選択に基づき、リストされた1つ以上のバッチジョブを実行のために選択する。一実施形態では、選択された複数のバッチジョブは、それらがテーブル482内にリストされている順序で順に実行される。バッチジョブは例示的にはJSONファイルフォーマットの形態にあるが、他の適切なフォーマットが用いられてもよい。テーブル482内にリストされたバッチジョブは、入力484,486,488のユーザ選択に基づきそれぞれ編集され、加えられ、削除される。バッチシーケンスの順序は、選択したバッチジョブをテーブル482内に表示されたシーケンスにおいて異なる位置に移動させるための入力490,492のユーザ選択に基づき調節可能である。バッチシーケンス及びバッチジョブの実行に関連する他の設定は、選択可能入力494を介してメモリ(例えばメモリ34又はメモリ90)からロードされてよく、現在コンフィギュアされているバッチシーケンスは、選択可能入力496を介してメモリ(例えばメモリ34又はメモリ90)にセーブされてよい。入力484〜496は例示的には選択可能ボタンである。
The number of executions for a workload and / or configuration batch is specified via the
図26を参照すると、モニタリングモジュール214が選択されている。モジュール214へのユーザ入力に基づき、データモニタコンフィギュレータ82(図3)は、ノードクラスタ14上でのワークロードの実行に際して性能データをモニタし収集するために用いられる1つ以上のデータモニタリングツールをコンフィギュアするように動作する。データモニタコンフィギュレータ82は、ノード16の性能、ワークロード、ワークロードコンテナ、及び/又は、ネットワーク18に関係するデータをモニタするモニタリングツールをコンフィギュアするように動作する。一実施形態では、データモニタコンフィギュレータ82によってコンフィギュアされるモニタリングツールは、市販のモニタリングツール及びユーザによって提供されるカスタムモニタリングツールの両方を含む。モニタリングツールは、クラウドコンピューティングシステム10内の複数のソース及び他の利用可能ノード16からのデータを収集する。例えば、モニタリングツールは、各ノード16でデータを収集するカーネルモード測定エージェント46及びユーザモード測定エージェント50(図2)を含む。また、制御サーバ12も、ノードクラスタ14上でのネットワーク及びコンピューティング性能をモニタするように動作する1つ以上のモニタリングツールを含む。一実施形態では、ユーザ入力(例えば図27のフィールド530,532への入力)に基づき、データモニタコンフィギュレータ82は、1つ以上のモニタリングツールがノード16からのデータをモニタするサンプリングレートを指定する。データモニタコンフィギュレータ82は、複数のデータモニタリングツールの動作をコンフィギュアし開始するように動作し、これらのモニタリングツールは、各ノード16上で提供されるアパッチハドゥープモニタリングツール(タブ500)、制御サーバ12上で提供されるガングリアツール(タブ502)、各ノード16上で提供されるシステムタップツール(タブ504)、及び、1つ以上のノード16上で提供される仮想メモリ統計やI/O統計のためのモニタリングツール(タブ506)を含む。
Referring to FIG. 26, the
ハドゥープモニタリングツールは、ハドゥープワークロードコンテナモジュールがノード16上での実行のために選択されているときのワークロードコンテナレベルでノード16の性能をモニタする。ハドゥープモニタリングツールは、図26で識別されたモニタリングコンフィギュレーションに基づきハドゥープワークロードコンテナモジュールの性能に関連するデータをモニタするために、コンフィギュレータ22によって、ハドゥープワークロードコンテナモジュールと共に各ノード16へとロードされる。図26に示されるように、ハドゥープモニタリングツールに関連する種々のモニタリングパラメータが、幾つかの修正可能フィールド及びドロップダウンメニューへのユーザ入力に基づき、データモニタコンフィギュレータ82によってコンフィギュアされる。修正可能モニタリングパラメータは、デフォルトログレベル(ドロップダウンメニュー508への入力に基づき選択される)、収集されるデータの最大ファイルサイズ(フィールド510への入力に基づき選択される)、収集されるデータの全ファイルの合計サイズ(フィールド512への入力に基づき選択される)、ハドゥープワークロードコンテナのジョブトラッカ(JobTracker)ツールのログレベル(ドロップダウンメニュー514への入力に基づき選択される)、ハドゥープワークロードコンテナのタスクトラッカ(TaskTracker)ツールのログレベル(ドロップダウンメニュー516への入力に基づき選択される)、及び、ハドゥープワークロードコンテナのエフエスネームシステム(FSNamesystem)ツールのログレベル(ドロップダウンメニュー518への入力に基づき選択される)を含む。ログレベルは、情報(「INFO」)、警告(warning)、エラー等の、ハドゥープモニタリングツールを介して収集するデータのタイプを識別する。ハドゥープワークロードコンテナのジョブトラッカツール、タスクトラッカツール及びエフエスネームシステムツールは、データモニタコンフィギュレータ82によって追跡される種々の処理及びデータを含み、これらは、例えば、マスタノード16でのワークロードの開始と終了、ファイルシステム55(図2)に関連するメタデータ、及び、ワーカノード16でのマップリデュースタスクの開始を含む。他の適切なデータがハドゥープモニタリングツールで収集されてよい。
The hadoop monitoring tool monitors the performance of the
図27を参照すると、ガングリアモニタリングツールはまた、データモニタコンフィギュレータ82によって実装されたモニタリングコンフィギュレーションに基づき、クラウドコンピューティングシステム10の性能データをモニタし収集するように動作する。ガングリアは、システム性能の遠隔ライブヴューイング(例えば制御サーバ12を介して)並びに履歴統計を示すグラフ及びチャートを提供する既知のシステムモニタリングツールである。図示された実施形態では、ガングリアモニタリングツールは、データモニタコンフィギュレータ82で提供されたコンフィギュレーションデータに基づき制御サーバ12上で実行される。ガングリアでモニタされるデータの例としては、ワークロード実行に際してのノードプロセッサ40(CPUs)の処理ロード平均、ワークロード実行に際してのノードプロセッサ40とネットワーク18の利用(例えば停止又は非アクティブな時間(stall or inactive time)、処理に費やした時間のパーセンテージ、待ちに費やした時間のパーセンテージ等)、及び、他の適切なデータが挙げられる。ガングリアモニタリングツールは、選択可能入力520のユーザ選択に基づきデータモニタコンフィギュレータ82によって有効及び無効にされ、ユニキャスト又はマルチキャストの通信モードが、選択可能入力522のユーザ選択に基づきデータモニタコンフィギュレータ82によって選択される。ガングリアに関連する他のコンフィギュア可能モニタリングパラメータは、収集されたデータから生成されたグラフのデータリフレッシュ間隔(フィールド524への入力に基づき選択される)、クリーンナップスレッショルド(cleanup threshold)(フィールド526への入力に基づき選択される)、及び、メタデータを送信するための間隔(フィールド528への入力に基づき選択される)を含む。フィールド524,526,528へ入力されるデータは、例示的には秒の単位である。データモニタコンフィギュレータ82は、ノードプロセッサ40(CPU)に関連するワークロード実行に際してデータを収集するためにそれぞれのフィールド530,532にエンターされる値(例示的には単位は秒)に基づく収集(即ちサンプリング)間隔及び送信間隔と、ノード16上での処理ロード(例えば実行されているワークロードに関連する)と、ノードメモリ42の使用量と、通信ネットワーク18上でのノード16のネットワーク性能と、各ノード16のハードディスク使用量と、を調節するように動作する。
Referring to FIG. 27, the ganglia monitoring tool also operates to monitor and collect performance data of the
システムタップツールは、クラウドコンピューティングシステム10のノード16に関連するデータを抽出し、フィルタし、そしてまとめるように動作するシステムタップモニタリングソフトウェアを含むカーネルモード測定エージェント46(図2)である。一実施形態では、システムタップツールは、各ノード16上で実行される。システムタップは、リナックス(登録商標)(Linux(登録商標))ベースのオペレーティングシステムで実装される。システムタップは、カスタマイズされたモニタリングスクリプトが、例えばサンプリングレート並びにヒストグラムの生成及び表示を含むカスタマイズされたモニタリングコンフィギュレーションで各ノード16へとロードされることを可能にする。図28に示されるように、「スクリプト(Script)」タブが選択されているときに、システムタップは、入力536のユーザ選択に基づきデータモニタコンフィギュレータ82によって有効又は無効にされる。システムタップスクリプトファイルは、それぞれの入力(ボタン)540のユーザ選択に基づき、データモニタコンフィギュレータ82によって、制御サーバ12へダウンロードされ、テーブル538内での表示のために追加され、または、テーブル538内での表示から除去/削除される。テーブル538は、対応する1つ以上の入力539のユーザ選択に基づく選択のために利用可能なスクリプトファイルを表示するディスプレイデータを備えている。データモニタコンフィギュレータ82は、コンフィギュレータ22によるクラウドコンフィギュレーションの展開があった場合に、テーブル538の選択されたスクリプトファイルを各ノード16へとロードする。システムタップモニタリングツールのために、タブ534を介したユーザ入力及びユーザ選択に基づく他の適切なコンフィギュレーションオプション(Options)が利用可能であり、これらは、例えば、ディスクI/O(Disk I/O)、ネットワークI/O(Network I/O)及び診断(Diagnostics)のコンフィギュレーションを含む。
The system tap tool is a kernel mode measurement agent 46 (FIG. 2) that includes system tap monitoring software that operates to extract, filter, and group data associated with the
図29を参照すると、I/O時間タブ506が、追加的なモニタリングツールをコンフィギュアするためのユーザアクセスを提供しており、これらのツールは、1つ以上のノード16へとロードされる仮想メモリ統計(virtual memory statistics (VMStat))及び入力/出力統計(input/output statistics (IOStat))を含む。VMStatは、例えば、オペレーティングシステムで制御されるシステムメモリ及びブロックI/Oの利用可能性並びに利用、処理の性能、割り込み、ページング等に関連するデータを収集する。例えば、VMStatは、システムメモリ及び/又はメモリ制御器がリード/ライト動作を実行するためにビジーである時間又は待機している時間の長さ又はパーセンテージ等のシステムメモリの利用に関連するデータを収集する。IOStatは、例えば、オペレーティングシステムで制御されるストレージI/Oの統計(例えば利用、利用可能性等)に関連するデータを収集する。例えば、IOStatは、対応するノード16のプロセッサ40の処理コアが命令を実行するためにビジーである時間、又は、命令を実行するのに待機している時間のパーセンテージに関連するデータを収集する。VMStat及びIOStatは、それぞれの入力546,548の対応するユーザ選択に基づきデータモニタコンフィギュレータ82によって有効/無効にされ、サンプリングレート(即ちリフレッシュ間隔)は、フィールド550,552へとエンターされた値(例示的には単位は秒)に基づきデータモニタコンフィギュレータ82によって選択される。対応する「有効」にされた入力546,548のユーザ選択及びタブ506のフィールド550,552に入力された値に基づき、データモニタコンフィギュレータ82は、VMStatモニタリングツール及びIOStatモニタリングツールをコンフィギュアし、コンフィギュレータ22は、対応する「有効」にされた入力546,548のユーザ選択があった場合に、各ノード16へとツールをロードする。
Referring to FIG. 29, an I /
データモニタコンフィギュレータ82でコンフィギュアされたこれらのモニタリングツールは、システム性能をモニタするために協働してクラウドコンピューティングシステム10のための動的計装(dynamic instrumentation)を提供する。コンフィギュアされたモニタリングツールを介して収集されたデータに基づき、コンフィギュレータ22は、例えばここに述べられるように、システムボトルネックを診断すると共に最適なシステムコンフィギュレーション(例えばハードウエア及びネットワークのコンフィギュレーション)を決定するように動作する。更に、データモニタコンフィギュレータ82は、各モニタリングツールをコンフィギュアするのに用いられるユーザ入力を受信すること及び各ツールからのモニタされたデータを表示することのために、ユーザインタフェース200上にモニタリングモジュール214を表示することによって、共通ユーザインタフェースを提供する。
These monitoring tools configured with data monitor
図30を参照すると、選択可能データを備える制御及び状態モジュール216が選択されている。モジュール216へのユーザ入力に基づき、コンフィギュレータ22は、各ノード16へとロードされる複数のコンフィギュレーションファイル28を生成することによって、システムコンフィギュレーションをノードクラスタ14へとローンチする(即ち展開する)ように動作する。コンフィギュレータ22は、選択可能入力560のユーザ選択に基づき現在のシステムコンフィギュレーション(即ちモジュール202〜216で現在識別されているシステムコンフィギュレーション)の展開を開始する。コンフィギュレータ22のバッチプロセッサ80は、選択可能入力562のユーザ選択に基づき、1つ以上のワークロード及び/又はコンフィギュレーションのバッチ処理、即ち図25のテーブル482において識別されたバッチシーケンス、を開始する。コンフィギュレータ22のワークロードコンフィギュレータ78は、選択可能入力564のユーザ選択に基づき、図22のフィールド430において識別されたカスタムワークロード等のカスタムワークロードの実行を開始する。入力560,562,564のユーザ選択に基づくシステムコンフィギュレーションの展開があった場合、コンフィギュレータ22は、選択されたノード及びワットワークの設定、ワークロード、ワークロードコンテナモジュール、データモニタリングツール等で各選択されたノード16を自動的にコンフィギュアし、選択されたワークロード及び/又はバッチジョブをシステムコンフィギュレーション情報に基づき実行開始する旨をノードクラスタ14に指示する。コンフィギュレータ22は、それぞれ選択可能入力566,568のユーザ選択に基づき、ワークロード実行をその完了前に終了し又は一時停止する。コンフィギュレータ22は、選択可能入力570のユーザ選択に基づき、ノードクラスタ14上の現在実行途上にあるワークロードを再開する。コンフィギュレータ22は、選択可能入力572のユーザ選択に基づき、例えばノード16がバッチの次のワークロードの実行へと進むように、ノードクラスタ14上の現在実行途上にあるワークロードをスキップする。選択可能入力576の選択に基づき、コンフィギュレータ22のデータモニタコンフィギュレータ82は、モジュール214を介して識別されたデータモニタリングツール、設定及びコンフィギュレーションを実装する。一実施形態では、ノード16上にデータモニタリング設定を実装することは、各ノード16に提供される対応するコンフィギュレーションファイル28(図3)を生成することを含む。1つ以上のワークロード実行の完了に続き、即ちノードクラスタ14からのワークロード実行の結果及び全要求データの集まりの受信に続き、コンフィギュレータ22は、入力574のユーザ選択に基づき、ノードクラスタ14を終了させ又はシャットダウンする。入力560〜572及び入力582〜595は例示的にはボタンである。
Referring to FIG. 30, the control and
ワークロード実行に際してシステム状態がディスプレイ578,580を介して提供される。ディスプレイ578,580は、ノードクラスタ14の各アクティブノード16に関連するワークロード実行の進行及び状態情報を示す。システム状態の表示は、ボタン595のユーザ選択に基づき有効又は無効にされる。
System status is provided via
図示された実施形態では、ノードコンフィギュレータ72、ネットワークコンフィギュレータ74、ワークロードコンテナコンフィギュレータ76、ワークロードコンフィギュレータ78、バッチプロセッサ80、及び、データモニタコンフィギュレータ82(図3)の各々は、それらのそれぞれのコンフィギュレーション機能を実装するための入力560,562,564を介しての展開開始に続き、少なくとも1つの対応するコンフィギュレーションファイル28を自動的に生成する。コンフィギュレーションファイル28は、ここに述べられるように、ノードクラスタ14の各ノード16をコンフィギュアするための対応するコンフィギュレーションデータ及び命令を含む。一実施形態では、コンフィギュレータ22は、コンフィギュレーションファイル28の生成に続き、各ファイル28をノードクラスタ14の各ノード16へと自動的にロードする。代替的には、コンフィギュレータ22の各コンポーネント70〜84からのコンフィギュレーションデータ及び命令を含む単一のコンフィギュレーションファイル28が生成され、コンフィギュレータ22は、そのコンフィギュレーションファイル28の生成に続き、単一のコンフィギュレーションファイル28をノードクラスタ14の各ノード16へと自動的にロードする。入力560,562,564でコンフィギュレーション展開をローンチする際には、オペレーティングシステム、ワークロードコンテナモジュール及びワークロードにそれぞれ対応するイメージファイル92,94,96の各々も、各ノードへとロードされる。代替的には、コンフィギュレータ22による1つ以上のコンフィギュレーションファイル28及びイメージファイル92,94,96の生成に続いて、ノード16は、コンフィギュレーションファイル28及び/又はイメージファイル92,94,96をリトリーブ又は要求してよい。
In the illustrated embodiment, each of the node configurator 72,
ノード16に展開されたコンフィギュレーションファイル28、及び、図7の入力240を介してセーブされたシステムコンフィギュレーションファイルは、モジュール202〜216へのユーザ入力及びモジュール202〜216のデフォルト設定に基づき選択及びロードされた全てのコンフィギュレーションデータ及び情報を含む。例えば、ノードコンフィギュレータ72によって生成されたコンフィギュレーションファイル28は、ここに述べられるように、ノードクラスタ14に対して割り振り及び/又は使用するノード16の数、並びに、各ノード16のハードウェア要求及びブート時間を含む。ハードウェア要求は、例えば、RAMサイズ、CPUコアの数、及び、利用可能なディスクスペースを含む。ネットワークコンフィギュレータ74によって生成されたコンフィギュレーションファイル28は、例えば、全ノード16に適用されるグローバルデフォルト設定や、ノードクラスタ14の所与のグループにどのノード16が属するのかと、ノードグループ内のネットワークトラフィックのための設定と、ノードクラスタ14の他のノードグループに対するネットワークトラフィックのための設定と、を含むグループ設定や、任意のノード16間でのネットワークトラフィックのためのカスタム設定を含むノード固有設定や、図11〜17に関してここに述べられるような、レイテンシ、帯域、破損及び脱落したパケットの比率、破損及び脱落したパケットの相関及び分布、並びに、並び替えられたパケットの比率を含むネットワークパラメータや、他の適切なネットワークパラメータ及びネットワークトポロジコンフィギュレーションデータを含む。ワークロードコンテナコンフィギュレータ76によって生成されたコンフィギュレーションファイル28は、例えば、ワークロードを実行するために用いられる主たるワークロードコンテナソフトウェアのためのコンフィギュレーション設定を含む。ワークロードコンフィギュレータ78によって生成されたコンフィギュレーションファイル28は、例えば、ノード16上で実行されるように選択された、予め定義された即ち合成のワークロードコンテナのためのコンフィギュレーション設定を含む。コンフィギュレーション設定は、例えば、合成テストワークロードイメージファイル、最大命令カウント、最大繰り返しカウント、及び、I/O動作の速度、を含む合成テストワークロードコンフィギュレーションデータを含む。
The
入力560(又は入力562,564)を介した展開の開始に際して、コンフィギュレータ22は自動的に幾つかの動作を行う。一実施形態では、コンフィギュレータ22は、複数ノードのクラスタ14を選択するために所望のノード16を割り振って起動する。コンフィギュレータ22は、次いで、制御サーバ12のアドレス(例えばIPアドレス)を各ノード16に渡し、識別子及び/又はアドレスを各ノード16に割り当てたり渡したりする。一実施形態では、各ノード16は、制御サーバ12アドレスの受信に続き、制御サーバ12と自動的にコンタクトすると共にジョブ及び他のコンフィギュレーション情報を記述している1つ以上のコンフィギュレーションファイル28を要求するようにコンフィギュアされる。各ノード16は、任意の適切なメカニズムを用いて制御サーバ12と通信し、そのようなメカニズムは、例えば、制御サーバ12と直接通信するために指定されたRMIメカニズム(例えばウェブベースのインタフェース)や、アパッチHTTPサーバ又はトムキャットサーバを介して制御サーバ12とやりとりするためのHTTP要求や、遠隔シェルメカニズムを含む。
At the start of deployment via input 560 (or
一実施形態では、コンフィギュレータ22は、ノードクラスタ14の各ノード16からの要求を受信するまで待機する。一実施形態では、あるノード16が起動しない場合、即ちそのノード16からの要求又は受信確認がないことに基づいて、コンフィギュレータ22はそのノード16を再起動するよう試みる。そのノード16が継続して起動しない場合には、コンフィギュレータ22は、その起動しないノード16の代わりに、ノードクラスタ14内に元々は含まれていなかった他の利用可能ノード16を識別し要求する。代替ノード16は、起動しないノード16と同一又は類似のハードウェア仕様及び処理能力を有する。一実施形態では、コンフィギュレータ22は、ワークロード実行の間ずっとノード16をモニタし続け、応答を停止したノード16(及びワークロード)を再起動する。コンフィギュレータ22は、データモニタリングの失敗や他の通信上の失敗に基づき、ワークロード実行に際して非応答のノード16を検出してもよい。
In one embodiment,
コンフィギュレータ22がノードクラスタ14の各ノード16からの要求を受信すると、コンフィギュレータ22は、各ノード16が次へ進む準備ができていると判断する。一実施形態では、コンフィギュレータ22は、次いで要求データを各ノード16に提供し、要求データは、1つ以上のコンフィギュレーションファイル28と、ノードクラスタ14における他のノード16のアドレス及びアイディー(IDs)と、イメージファイル92,94,96と、を含む。要求データを制御サーバ12から受信すると、ノードクラスタ14内の各ノード16の役割が決定される。一実施形態では、役割決定は、制御サーバ12によってなされ(例えば自動的に又はユーザ入力に基づいて)、ノード16へ伝えられる。代替的には、役割決定はノードクラスタ14が分散型アービトレーション(arbitration)メカニズムを用いることによってなされる。一実施形態では、役割決定はワークロードに依存する。例えば、ハドゥープワークロードコンテナで動作するノードクラスタ14に対しては、第1のノード16がマスタノード16(「ネームノード(namenode)」)として指定されてよく、残りのノード16がスレーブ/ワーカノード16(「データノード(datanodes)」)として指定されてよい。一実施形態では、ノード16の役割決定は、そのノード16のハードウェアプロパティに更に依存する。例えば、より低速なノードプロセッサ40を伴うノード16のグループがデータ記憶のためのデータベースサーバとして指定されてよく、より高速なノードプロセッサ40を伴うノード16の他のグループがワークロードを処理するための計算ノードとして指定されてよい。一実施形態では、役割決定は、コンフィギュレーションファイル28を介して提供されたユーザ入力に基づく。例えば、ユーザは、1つ以上の第1のノード16が第1のタスクを行い、1つ以上の第2のノード16が第2のタスクを行い、1つ以上の第3のノード16が第3のタスクを行う等、割り当てしてよい。
When configurator 22 receives a request from each
各ノード16は、1つ以上のコンフィギュレーションファイル28を介して受信したネットワークコンフィギュレーションデータに基づき、その仮想ネットワーク設定をコンフィギュアし始める。このことは、例えばここに述べられるように、ネットワーク遅延及び/又はパケット損失エミュレータを用いることを含む。各ノード16は、更に、ユーザ要求に係るソフトウェアアプリケーションをインストール及び/又はコンフィギュアすることを開始し、これらのアプリケーションは、ワークロードコンテナイメージファイル94を介して受信したワークロードコンテナコードモジュールを含む。一実施形態では、複数のワークロードコンテナモジュール(例えば複数のバージョン/製造業者)が各ノード16でプリインストールされており、選択されたワークロードコンテナモジュールのロケーションへのソフトリンクがコンフィギュレーションファイル28に基づき作成される。合成テストワークロードが制御サーバ12で生成され選択される場合には、各ノード16は、ワークロードイメージファイル96に基づき合成テストワークロードをアクティベートし始める。各ノード16は、更に、コンフィギュレーション情報に基づき診断ツール及びモニタリングツール(例えばガングリア、システムタップ、ヴィエムスタット(VMStat)、アイオースタット(IOStat)等)の実行を開始する。最後に、各ノード16は選択されたワークロードの実行を開始する。
Each
図示された実施形態では、展開ローンチに続きコンフィギュレータ22及びノード16によって行われる各ステップは、ノードクラスタ14のノード16間で同期している。一実施形態では、制御サーバ12のコンフィギュレータ22が複数ノード16を連携させるが、代替的には、ノードクラスタ14の1つ以上のノード16が同期を管理してもよい。一実施形態では、ノード動作を連携させるために用いられる同期メカニズムにより、各ノード16は、制御サーバ12への状態フィードバックを定期的に提供する。従って、指定された時間内に報告のないノード16は、クラッシュしたものとみなされ、コンフィギュレータ22によって再起動される。また、コンフィギュレータ22は、ジョブの進行を示すために、図30のディスプレイ578,580を介する等してユーザに状態を提供してもよい。
In the illustrated embodiment, the steps performed by the
ジョブが完了すると、データアグリゲータ84(図3)が各ノード16からのデータを収集するように動作する。具体的には、各ノード16のモニタリングツールによって収集されたデータ(例えばジョブ出力、性能統計、アプリケーションログ等、モジュール214参照)が、制御サーバ12(例えば図3のメモリ90)によってアクセスされる。一実施形態では、データアグリゲータ84が各ノード16からデータをリトリーブする。他の実施形態では、各ノード16がデータアグリゲータ84にデータを転送する。図示された実施形態では、図31(図3も参照)に示されるように、データは、ログファイル98の形態で各ノード16から制御サーバ12へ通信される。各ログファイル98は、各ノード16の種々のモニタリングツールの1つ以上によって収集されたデータを含む。ここに述べられるように、データアグリゲータ84は、ログファイル98からの収集データを操作し解析すると共に集約されたデータをグラフ、ヒストグラム、チャート等の形態でユーザに対して表示する(例えば図1のディスプレイ21を介して)ように動作する。また、データアグリゲータ84は、図27に記載のガングリアモニタリングツール等の、制御サーバ12上に提供されたモニタリングツールからのデータを集約する。
When the job is complete, the data aggregator 84 (FIG. 3) operates to collect data from each
図30を再び参照すると、データアグリゲータ84は、各ノード16からの性能データを収集及び集約すると共にモジュール216の対応する入力582〜594のユーザ選択に基づきログ、統計、グラフ及びデータの他の表現を生成するように動作する。データアグリゲータ84は、入力586のユーザ選択に基づき、ログファイル98内に提供される統計上の生データ及び他のモニタリングツールで提供される統計上の生データを集める。データアグリゲータ84は、入力588のユーザ選択に基づき、全てのログファイル98をノード16からローカルファイルシステムへとダウンロードし、これらのログファイル98は更にそこで解析されてよく、あるいは履歴トレンド解析のために記憶されてよい。データアグリゲータ84は、入力590のユーザ選択に基づき、システムタップモニタリングツールに関連するログファイルのみをリトリーブする。データアグリゲータ84は、入力582のユーザ選択に基づき、ノード16によって提供されたログファイル98の1つ以上をユーザインタフェース200上に表示する。データアグリゲータ84は、入力584のユーザ選択に基づき、統計的データをグラフ及びチャートの形態でユーザインタフェース200上に表示する。統計的データは、例えば、ネットワーク18の性能、ノード16によるネットワーク通信の性能、ノード16の種々のハードウェアコンポーネントの性能、ワークロード実行、及び、ノードクラスタ14全体の性能に関連する性能データを含む。データアグリゲータ84は、入力592のユーザ選択に基づき、ノード16及び他のモニタリングツールから収集された種々のデータを示す1つ以上のグラフをユーザインタフェース200上での表示のために生成する。
Referring back to FIG. 30, the
一実施形態では、データアグリゲータ84は、モニタリングモジュール214においてコンフィギュアされたモニタリングツールでのモニタリングのために選択されたデータに基づき、表示するデータを選択する。他の実施形態では、データアグリゲータ84は、制御及び状態モジュール216へのユーザ入力に基づき、集約され表示されるデータを選択する。例えば、ユーザは、それぞれ入力582,584,592を選択することで、ログファイル98、統計的データ及びグラフの何れを表示するのかを選択する。一実施形態では、データアグリゲータ84は、ユーザインタフェース200へのユーザ入力に基づき、どのデータをグラフで表示するのかを選択し、またそのデータをどのように表示するのか(例えば線グラフ、棒グラフ、ヒストグラム等)を選択する。入力592の選択に基づき表示されるグラフィカルデータの例としては、プロセッサ速度対ネットワーク遅延追加、ワークロード実行速度対プロセッサコア数、ワークロード実行速度対コア当たり処理スレッド数、特定のノード16によって送信又は受信されたデータパケットの数の時間変化、通信された所定サイズのデータパケットの数の時間変化、ネットワークスタック内でデータパケットによって消費された時間、等が挙げられる。
In one embodiment, the
(クラウドコンピューティングシステムのノードのブート時間パラメータをコンフィギュアすること)
図36は、クラウドコンピューティングシステム10のブート時間コンフィギュレーションをコンフィギュアするために図1及び図3のコンフィギュレータ22によって行われる例示的な動作のフロー図620を示している。図36の説明全体に対して図1及び図3が参照される。図示された実施形態では、コンフィギュレータ22は、ユーザインタフェース200を介して受信した複数のユーザ選択に基づき、図36のフロー図620に従って図1のノードクラスタ14をコンフィギュアする。ブロック622では、コンフィギュレータ22は、選択可能ブート時間コンフィギュレーションデータを備えるユーザインタフェース200を提供する。例示的な選択可能ブート時間コンフィギュレーションデータは、図10の表示画面の選択可能入力269,271及びフィールド268,270,272,274,276を含む。ブロック624では、コンフィギュレータ22のノードコンフィギュレータ72は、選択可能なブート時間コンフィギュレーションデータの少なくとも1つのユーザ選択に基づき、クラウドコンピューティングシステム10の複数ノードのクラスタ14の少なくとも1つのノード16のためのブート時間コンフィギュレーションを選択する。
(Configure the boot time parameter of the node of the cloud computing system)
FIG. 36 shows a flow diagram 620 of exemplary operations performed by the
ブロック626では、コンフィギュレータ22は、選択されたブート時間コンフィギュレーションで複数ノードのクラスタ14の少なくとも1つのノード16をコンフィギュアして、それら少なくとも1つのノード16の少なくとも1つのブート時間パラメータを修正する。例えば、当該少なくとも1つのブート時間パラメータは、ワークロードの実行に際して有効にされている当該少なくとも1つのノード16の処理コアの数(フィールド268への入力に基づく)、及び/又は、当該少なくとも1つのノード16のオペレーティングシステム44(図2)によってアクセス可能なシステムメモリの量(フィールド270,272への入力に基づく)を含む。更に、修正されたブート時間パラメータは、フィールド274へ入力された命令の数及び対応するカスタム入力271の選択に基づき、当該少なくとも1つのノード16によって実行されるべきワークロードの複数の命令のサブセットを識別してよい。従って、ワークロードは、当該少なくとも1つのノード16の当該少なくとも1つのブート時間パラメータの修正に基づき、複数ノードのクラスタ14で実行される。一実施形態では、コンフィギュレータ22がワークロードの実行を開始し、複数ノードのクラスタ14は、当該少なくとも1つのブート時間パラメータの修正に基づき低下したコンピューティング能力及び低減されたメモリ容量の少なくとも一方の下でワークロードを実行する。具体的には、フィールド268及び対応する入力271の選択に伴う処理コア数の修正は、コンピューティング能力を低下させることに役立ち、フィールド270,272及び対応する入力271の選択に伴うシステムメモリ数の修正は、メモリ容量を低減することに役立つ。
At
一実施形態では、ノードコンフィギュレータ72は、選択可能ブート時間コンフィギュレーションデータの少なくとも1つのユーザ選択に基づき、複数ノードのクラスタ14の第1のノード16のための第1のブート時間コンフィギュレーションと、複数ノードのクラスタ14の第2のノード16のための第2のブート時間コンフィギュレーションと、を選択する。この実施形態では、第1のブート時間コンフィギュレーションは、第1のノード16の少なくとも1つのブート時間パラメータの第1の修正を含み、第2のブート時間コンフィギュレーションは、第2のノード16の少なくとも1つのブート時間パラメータの第2の修正を含み、第1の修正は第2の修正とは異なる。一例では、第1のブート時間コンフィギュレーションは、第1のノード16の2つの処理コアを有効にすることを含み、第2のブート時間コンフィギュレーションは、第2のノード16の3つの処理コアを有効にすることを含む。各ノード16のブート時間パラメータの他の適切な修正が、上述したように提供されてよい。
In one embodiment, the node configurator 72 includes a first boot time configuration for the
図37は、ノード16のブート時間コンフィギュレーションをコンフィギュアするために図1の複数ノードのクラスタ14の1つのノード16によって行われる例示的な動作のフロー図630を示している。図37の説明全体に対して図1及び図3が参照される。ブロック632では、複数ノードのクラスタ14の1つのノード16は、クラウドコンフィギュレーションサーバ12によって提供されたブート時間コンフィギュレーション調節要求に基づき、そのノード16の少なくとも1つのブート時間パラメータを修正する。図示された実施形態では、ブート時間コンフィギュレーション調節要求は、コンフィギュレーションファイル28(図3)内に提供され、ここに述べられるように、図10の入力270,271及びフィールド268,270,272,274,276を介してなされたユーザ選択に基づき、ノード16の1つ以上のブート時間パラメータに対して要求された修正を識別する。図示された実施形態では、ノード16は、当該少なくとも1つのブート時間パラメータを修正する前の初期ブート時間コンフィギュレーションと、当該少なくとも1つのブート時間パラメータを修正することに続く修正されたブート時間コンフィギュレーションと、を有する。修正されたブート時間コンフィギュレーションは、ここに述べられるように、ノード16のコンピューティング能力の低下及びメモリ容量の低減の少なくとも一方を提供する。
FIG. 37 shows a flow diagram 630 of exemplary operations performed by one
ブロック634では、ブート時間コンフィギュレーション調節要求に従って少なくとも1つのブート時間パラメータが既に修正されていることを、ノード16のリブートに続いてそのノード16が決定すると、そのノード16は、そのノード16によるそのノード16のリブートに続き、ワークロードの少なくとも一部を実行する。一実施形態では、ノード16は、ワークロードの当該少なくとも一部をクラウドコンフィギュレーションサーバ12から取得し、当該少なくとも1つのブート時間パラメータへの修正に基づきワークロードを実行する。一実施形態では、ノード16による決定は、当該少なくとも1つのブート時間パラメータへの修正の後で且つノード16のリブートより前にセットされたフラグ(例えば1ビット又は2ビット以上)に基づく。セットされたフラグは、当該少なくとも1つのブート時間パラメータが既に修正されていることを、ノード16の再起動に続いてノード16に示すので、ノード16は、当該少なくとも1つのブート時間パラメータを修正し再度リブートすることを試みない。一実施形態では、決定は、ノード16のブート時間コンフィギュレーションと、ブート時間コンフィギュレーション調節要求で識別された要求ブート時間コンフィギュレーションとの比較に基づく。例えば、ノード16は、ノード16の現在のブート時間パラメータをブート時間コンフィギュレーション調節要求で識別された要求ブート時間パラメータと比較し、これらのパラメータが同じである場合には、当該少なくとも1つのブート時間パラメータを修正することと再度リブートすることとを試みない。一実施形態では、新たなブート時間コンフィギュレーション調節要求を含む新たなコンフィギュレーションファイルをノード16が受信すると、ノード16は、新たなブート時間コンフィギュレーション調節要求に従うブート時間パラメータの修正を実装する前に、フラグをクリアする。
At
図38は、ノードクラスタ14の1つ以上のノード16のブート時間コンフィギュレーションをコンフィギュアするためにクラウドコンピューティングシステム10によって行われる例示的な詳細動作のフロー図650を示している。図38の説明全体に対して図1及び図3が参照される。図示された実施形態では、コンフィギュレータ22は図38のブロック652〜656を行い、各コンフィギュアされたノード16は図38のブロック658〜664を行う。ブロック652では、コンフィギュレータ22は、ここに述べられるように、ユーザインタフェース200(図10)を介してエンターされたユーザ定義のブート時間パラメータに基づき、対応するノード16のための1つ以上のブート時間コンフィギュレーションファイル28を作成する。一実施形態では、ブート時間コンフィギュレーションファイル28は、ノード16の1つ以上のコンフィギュレーションファイルのパッチであり、あるいはタスク固有ファイル/データフォーマットの形態にある。ブロック654では、コンフィギュレータ22は、複数ノードのクラスタ14を起動する(例えばここに述べられるように図30の入力560又は入力562,564のユーザ選択があった場合)。ブロック656では、コンフィギュレータ22は、1つ以上のブート時間コンフィギュレーションファイルを複数ノードのクラスタ14の適切なノード16に分散させる。一実施形態では、各ノード16がブート時間コンフィギュレーションファイルを受信し、各ファイルは、それぞれのノード16に対して固有のブート時間パラメータを識別してよい。一実施形態では、コンフィギュレーションファイル28は、セキュアシェル(secure shell)(SSH)ファイル転送を介して、fptクライアントを介して、アマゾンAWSにおけるユーザデータストリングを介して、又は、他の適切なファイル転送メカニズムを介して、ノードへと転送される。他の実施形態では、ブート時間コンフィギュレーション情報に対して、ノード16が各々制御サーバ12又はマスタノード16にクエリする(query)(例えばHTTP要求を介して)。ブロック658では、ノード16は、受信したブート時間コンフィギュレーションファイル28において指定された所望のブート時間パラメータ変更を適用する。一例では、ノード16は、ノード16のブートファイルに対してパッチを適用し、あるいはノード16は、ユーティリティを用いて、受信したブート時間コンフィギュレーションファイル28において指定されたブート時間パラメータに基づきノード16のためのブートファイルの新たなセットを生成する。一実施形態では、ブロック658で所望のブート時間変更を適用する間または適用する場合、ノード16は、ここに述べられるように、ブート時間コンフィギュレーションが既に更新されている旨を示す状態フラグをセットする。ブロック660では、ノード16は、ブート時間コンフィギュレーション変更の適用に続き、リブートを強制する。リブートに際して、ノード16は、受信したブート時間コンフィギュレーションファイル28において指定されたブート時間パラメータ変更でノード16のブート時間コンフィギュレーションが既に更新されていることをブロック662で決定する。一実施形態では、ノード16は、ここに述べられるように、ブロック658でセットされた状態フラグに基づき、又は、ノード16の現在のブート時間コンフィギュレーションとブート時間コンフィギュレーションファイル28との比較に基づき、ブート時間コンフィギュレーションが更新されていることをブロック662で決定する。従って、ノード16は、ブート時間コンフィギュレーション変更を何度も適用する可能性を低減する。ブロック664では、ノード16は、ワークロード又は制御サーバ12から受信したワークロードの一部の実行を含め、他のタスクの実行を開始する。
FIG. 38 shows a flow diagram 650 of exemplary detailed operations performed by the
(ネットワークコンフィギュレーションを修正及び/又はエミュレートすること)
図39は、クラウドコンピューティングシステム10において割り振られた複数ノードのクラスタ14のネットワークコンフィギュレーションを修正するために図1及び図3のコンフィギュレータ22によって行われる例示的な動作のフロー図700を示している。図39の説明全体に対して図1及び図3並びに図11〜17が参照される。ブロック702では、ネットワークコンフィギュレータ74は、ユーザインタフェース200を介して受信したユーザ選択に基づき、クラウドコンピューティングシステム10の複数ノードのクラスタ14の少なくとも1つのノード16のネットワークコンフィギュレーションを修正する。ブロック702で当該少なくとも1つのノード16のネットワークコンフィギュレーションを修正することは、当該少なくとも1つのノード16の通信ネットワーク18(図1)上でのネットワーク性能を修正することを含む。ネットワーク性能は、ここに述べられるように、パケット通信速度、脱落又は破損したパケット、並び替えられたパケット等のネットワークパラメータを修正することによって修正される。図示された実施形態では、ネットワークコンフィギュレータ74は、図11〜17に関してここに述べられるように、ユーザインタフェース200のモジュール280を介して提供されたユーザ選択又はユーザ入力に基づきネットワークコンフィギュレーションファイル28(図3)を生成することによって、及び、ネットワークコンフィギュレーションファイル28をノード16に提供することによって(又はノード16がファイル28をフェッチすることによって)、ノード16のネットワークコンフィギュレーションを修正する。ノード16は、次いで、アクセスされたネットワークコンフィギュレーションファイル28において指定されたノード16のネットワークコンフィギュレーションへの変更を実装する。図示された実施形態では、当該少なくとも1つのノード16は、修正前の初期ネットワークコンフィギュレーションと、修正後の修正されたネットワークコンフィギュレーションと、を有する。一実施形態では、修正されたネットワークコンフィギュレーションは、選択されたワークロードの実行に際して通信ネットワーク18上での当該少なくとも1つのノード16のネットワーク性能を低下させる。代替的には、修正されたネットワークコンフィギュレーションは、例えば図11のフィールド302を介して指定された通信遅延値を減少させること等によって、当該少なくとも1つのノード16のネットワーク性能を高める。
(Modify and / or emulate network configuration)
FIG. 39 illustrates a flow diagram 700 of exemplary operations performed by the
一実施形態では、ネットワークコンフィギュレータ74は、当該少なくとも1つのノード16の少なくとも1つのネットワークパラメータを変更してワークロードの実行に際しての通信ネットワーク18上での当該少なくとも1つのノード16のネットワーク性能を制限することによって、当該少なくとも1つのノード16のネットワークコンフィギュレーションを修正する。一実施形態では、変更される当該少なくとも1つのネットワークパラメータは、パケット通信遅延、パケット損失率、パケット重複率、パケット破損率、パケット並び替え率、及び、パケット通信速度の少なくとも1つを備え、これらはここに述べられるようにタブ282〜294を介してユーザによって選択可能である。従って、ネットワークコンフィギュレータ74は、ネットワークパラメータへの修正(例えば増大されたノード16間の通信遅延、増大されたパケット損失又はパケット破損率等)を識別するコンフィギュレーションファイル28へのノード16アクセスを生成し提供することによって、当該少なくとも1つのノード16のネットワーク性能を制限する。
In one embodiment, the
図示された実施形態では、コンフィギュレータ22は、選択可能ネットワークコンフィギュレーションデータを備えるユーザインタフェース200を提供し、ネットワークコンフィギュレータ74は、ここに述べられるように、選択可能ネットワークコンフィギュレーションデータの少なくとも1つのユーザ選択に基づき、当該少なくとも1つのノード16のネットワークコンフィギュレーションを修正する。選択可能ネットワークコンフィギュレーションデータの例としては、図11の入力298〜301及び対応するフィールド302〜312、図12の入力313,314及び対応するフィールド315,316、図13の入力317,318及び対応するフィールド319,320、図14の入力321及び対応するフィールド322、図15の入力323,324及び対応するするフィールド325,326、図16の入力327〜330,335〜338及び対応するフィールド331〜334、並びに、図17の入力340及び対応するフィールド342が挙げられる。一実施形態では、ネットワークコンフィギュレータ74は、選択可能ネットワークコンフィギュレーションデータの少なくとも1つのユーザ選択に基づき、複数ノードのクラスタ14の第1のノード16の第1のネットワークパラメータを変更して(即ちネットワークコンフィギュレーションファイル28を介して)ワークロードの実行に際しての通信ネットワーク18上での第1のノード16のネットワーク性能を制限することによって、及び、複数ノードのクラスタ14の第2のノード16の第2のネットワークパラメータを変更してワークロードの実行に際しての通信ネットワーク18上での第2のノード16のネットワーク性能を制限することによって、ネットワーク性能を修正する。一実施形態では、第1のネットワークパラメータは第2のネットワークパラメータとは異なる。従って、ネットワークコンフィギュレータ74は、複数ノードのクラスタ14の異なるノード16の異なるネットワークパラメータを修正してワークロード実行に際して複数ノードのクラスタ14の所望のネットワーク特性を達成するように動作する。
In the illustrated embodiment, the
図示された実施形態では、図40〜42に関してここに述べられるように、コンフィギュレータ22は、更に、エミュレートされたノードクラスタのネットワークコンフィギュレーションと実質的に一致するネットワークコンフィギュレーションを有するクラウドコンピューティングシステム10のための複数ノードのクラスタ14を選択するように動作する。ここで参照されるとき、エミュレートされたノードクラスタとは、制御サーバ12によって選択されたノードクラスタ14によりエミュレートされることになる既知のネットワークコンフィギュレーションを有するネットワークノードの任意のグループを含むものである。エミュレートされたノードクラスタの各ノードは、1つ以上の処理デバイスと、これら処理デバイスによってアクセス可能なメモリと、を含む。一実施形態では、エミュレートされたノードクラスタは、コンフィギュレータ22によって選択可能な利用可能ノード16を含まない。例えば、エミュレートされたノードクラスタは、ユーザによって提供されるノード等の、1つ以上のデータセンタ内に収容された利用可能ノード16からは離れており且つコンフィギュレータ22によってアクセス可能なノードを含む。代替的には、エミュレートされたノードクラスタは、利用可能ノード16のグループを含んでいてもよい。エミュレートされたノードクラスタのネットワークトポロジ及びネットワーク性能特性は、以下に述べられるように、1つ以上のネットワーク性能テストを用いて得られる。図40を参照すると、エミュレートされたノードクラスタのネットワーク特性と実質的に一致するネットワーク特性を有する複数ノードのクラスタ14を選択するために図1及び図3のコンフィギュレータ22によって行われる例示的な動作のフロー図710が示されている。図40の説明全体に対して図1及び図3が参照される。図示された実施形態では、コンフィギュレータ22は、ここに述べられるように、ユーザインタフェース200を介して受信したユーザ選択に基づき、図40のフロー図710に従い図1のノードクラスタ14を選択しコンフィギュアする。ブロック712では、ノードコンフィギュレータ72は、エミュレートされたノードクラスタの通信ネットワークコンフィギュレーションと、複数の利用可能ノード16の実際の通信ネットワークコンフィギュレーションと、を比較する。ブロック714では、ノードコンフィギュレータ72は、ブロック712の比較に基づき、通信ネットワーク18に結合された複数の利用可能ノード16からクラウドコンピューティングシステム10のための複数ノードのクラスタ14を選択する。選択された複数ノードのクラスタ14は、複数の利用可能ノード16のサブセットを含む。ブロック716では、ノードコンフィギュレータ72は、ここに述べられるように、複数ノードのクラスタ14の各ノード16が複数ノードのクラスタ14の他のノード16とワークロードの処理を共有するよう動作するようにワークロードを実行するために、選択された複数ノードのクラスタ14をコンフィギュアする。一実施形態では、ここに述べられるように、ブロック712〜716は、図30のモジュール216へのユーザ入力に基づくクラウドコンフィギュレーションの展開があった場合に開始される。
In the illustrated embodiment, as described herein with respect to FIGS. 40-42, the
図示された実施形態では、エミュレートされたノードクラスタの通信ネットワークコンフィギュレーション及び複数の利用可能ノード16の実際の通信ネットワークコンフィギュレーションは、各々、対応するノードに関連する通信ネットワーク特性を含む。ノードコンフィギュレータ72は、エミュレートされたノードクラスタの通信ネットワーク特性と、複数の利用可能ノード16の通信ネットワーク特性と、の間での類似性に基づき、複数ノードのクラスタ14を選択する。例示的な通信ネットワーク特性はネットワークトポロジ及びネットワークパラメータを含む。例示的なネットワークパラメータは、ノード間での通信速度及びレイテンシ、ノード間でのネットワーク帯域、並びに、パケットエラー率を含む。ネットワークトポロジは、ノードの物理的及び論理的な接続性、ノードクラスタのどのノード及びノードのグループが物理的に近くに位置しているのかあるいは互いに離れているのかの識別、ノード間の接続のタイプ(光ファイバリンク、衛星接続等)、並びに、他の適切な特性を含む。パケットエラー率は、脱落又は失われたパケット、破損したパケット、並び替えられたパケット、重複したパケット等を含む。一実施形態では、ノードコンフィギュレータ72は、図41に関してここに述べられるように、エミュレートされたノードクラスタの通信ネットワーク特性を優先させ、優先させた通信ネットワーク特性に基づき複数ノードのクラスタ14を選択する。
In the illustrated embodiment, the communication network configuration of the emulated node cluster and the actual communication network configuration of the plurality of
図示された実施形態では、ノードコンフィギュレータ72は、利用可能ノード16上でのネットワーク性能テストを開始して、利用可能ノード16の実際の通信ネットワークコンフィギュレーションを識別する。任意の適切なネットワーク性能テストが用いられてよい。例えば、ノードコンフィギュレータ72は、利用可能ノード16間でのネットワーク性能に関してテストしデータを収集するために、パケットインターネットグロウパ(Packet Internet Groper)(「ピング(Ping)」)等のコンピュータネットワーク管理(administration)ユーティリティを実行するように要求を各利用可能ノード16へ送ってよい。各ノード16によって提供されたピングテストの結果に基づき、ノードコンフィギュレータ72は、利用可能ノード16の実際の通信ネットワークコンフィギュレーションを決定する。一実施形態では、ピングは、実際の通信ネットワークコンフィギュレーションを得るために他のネットワーク性能テストと共に用いられる。コンフィギュレータ22は、ノード16から受信したネットワーク性能テスト結果を集約して、利用可能ノード16の実際の通信ネットワークコンフィギュレーションを識別するネットワーク記述子(descriptor)データファイル又はオブジェクト(例えば図42のデータファイル750を参照)を作成する。一実施形態では、コンフィギュレータ22は、ユーザインタフェース200へのユーザ入力に基づき、ネットワーク性能テストを開始し結果を集約する。例えば、図30のボタン586のユーザ選択又は他の適切な入力により、コンフィギュレータ22がテストを開始して結果を集約してよい。
In the illustrated embodiment, the node configurator 72 initiates a network performance test on the
図示された実施形態では、ノードコンフィギュレータ72はまた、エミュレートされたノードクラスタの通信ネットワークコンフィギュレーションを識別する1つ以上のデータファイル(例えば図42のデータファイル750)にアクセスする。一実施形態では、これら1つ以上のデータファイルは、エミュレートされた複数ノードのクラスタに1つ以上のネットワーク性能テスト(例えばピングテスト等)を実装することによって、制御サーバ12のオフラインで得られる。一実施形態では、コンフィギュレータ22は、エミュレートされたノードクラスタに関連するデータファイルをアクセス可能メモリ(例えば図3のメモリ90)へとロードする。例えば、コンフィギュレータ22は、図7のテーブル226への入力を介して等のようにユーザインタフェース200を介してユーザがデータファイルのロケーションを識別することに基づきデータファイルをロードしてよい。従って、コンフィギュレータ22は、利用可能ノード16に関連して生成されたデータファイルにおいて識別された通信ネットワーク特性と、エミュレートされたノードクラスタに関連してアクセスされたデータファイルと、を比較することによって、図40のブロック712で比較を行う。
In the illustrated embodiment, the node configurator 72 also accesses one or more data files (eg, the data file 750 of FIG. 42) that identify the communication network configuration of the emulated node cluster. In one embodiment, the one or more data files are obtained off-line of the
図42に例示的なデータファイル750が示されている。データファイル750は、制御サーバ12によってアクセス可能な利用可能ノード16又はエミュレートされたノードクラスタのノード等の任意の適切なネットワークノードのネットワークコンフィギュレーションを識別する。図示されるように、データファイル750は、例示的にはグループA,B,…,Mを含むノードの幾つかのグループ(groups)を識別する。各グループA,B,Mは、データセンタの同じ物理的ラック上のノード等の物理的に互いに近くにある複数のノードを含む。行6〜11はグループAのノードによるネットワーク通信に関連するネットワークパラメータを識別し、行15〜22はグループBのノードによるネットワーク通信に関連するネットワークパラメータを識別し、行27〜34はグループMのノードによるネットワーク通信に関連するネットワークパラメータを識別する。例えば、行6及び行7は、グループAのノード間での通信に関連するレイテンシ(latency)、帯域(bandwidth)及びエラー率(error rate)を識別する。行8及び行9は、グループAノードとグループBノードとの間での通信に関連するレイテンシ、帯域及びエラー率を識別する。同様に、行10及び行11は、グループAノードとグループMノードとの間での通信に関連するレイテンシ、帯域及びエラー率を識別する。グループB及びグループMのノードによる通信に関連するネットワークパラメータも同様にデータファイル750内で識別される。データファイル750は、ここに述べられるように、ネットワークトポロジデータ及び他のネットワークパラメータ等の追加的なネットワークコンフィギュレーションデータを識別してもよい。
An exemplary data file 750 is shown in FIG. Data file 750 identifies the network configuration of any suitable network node, such as
図41を参照すると、エミュレートされたノードクラスタのネットワーク特性と実質的に一致するネットワーク特性を有する複数ノードのクラスタ14を選択するために、図1及び図3のコンフィギュレータ22を含む1つ以上のコンピューティングデバイスによって行われる例示的な詳細動作のフロー図720が示されている。図41の説明全体に対して図1及び図3が参照される。ブロック722では、ネットワークコンフィギュレーションが、エミュレートされたノードクラスタの各ノードから要求される。例えば、ここに述べられるように、ネットワーク性能テストは各ノードで開始され、テスト結果がコンピューティングデバイスによって受信される。ブロック724では、エミュレートされたノードクラスタのノードから受信した、性能テストの結果としてのネットワークコンフィギュレーションデータに基づき、ネットワークコンフィギュレーションデータファイル(例えばデータファイル750)が作成される。ここに述べられるように、ブロック722,724は、例えば図1のコンピュータ20による等して、クラウドコンピューティングシステム10から離れたコンピューティングシステムによってオフラインで実行されてよい。
Referring to FIG. 41, one or more including the
ブロック726では、コンフィギュレータ22は、各利用可能ノード16から又はデータセンタの利用可能ノード16のグループからネットワークコンフィギュレーションを要求する。例えば、コンフィギュレータ22は、ここに述べられるように、利用可能ノード16上でネットワーク性能テストを開始し、コンフィギュレータ22は、ネットワーク性能テストからもたらされるコンフィギュレーションデータを集約する。ブロック728では、コンフィギュレータ22は、利用可能ノード16から受信したネットワークコンフィギュレーションデータに基づき、ネットワークコンフィギュレーションデータファイル(例えばデータファイル750)を作成する。従って、コンフィギュレータ22は、エミュレートされたノードクラスタを記述しているデータファイルと、利用可能ノード16を記述しているデータファイルと、を含む2つのコンフィギュレーションデータファイルへのアクセスを有する。コンフィギュレータ22は、ブロック730に示されるように、2つのデータファイル内で識別されたネットワークプロパティの比較に基づき、エミュレートされたノードクラスタと類似したネットワーク特性を有する適切なノード16を利用可能ノード16から選択する。一実施形態では、コンフィギュレータ22は、ここに述べられるように、エミュレートされたノードクラスタ及び利用可能ノード16のノードハードウェア特性(例えば処理能力、メモリ容量等)の比較に基づき、ブロック730で適切なノードを更に選択する。
At
ブロック732では、コンフィギュレータ22は、エミュレートされたノードクラスタに関連するデータファイル内で識別された所望のネットワークコンフィギュレーションパラメータに基づき、選択されたノード16をチューニングする(tunes)。例えば、選択されたノード16のネットワーク特性は、エミュレートされたノードクラスタのネットワーク特性に厳密には一致していなくてよく、更なるネットワークチューニングが必要になり又は所望されることもある。従って、オペレーティングシステム44、ネットワークトポロジドライバ48及び/又は他のネットワークコンポーネント並びに各ノード16のネットワークパラメータがチューニングされて、エミュレートされたノードクラスタの所望のネットワーク性能が更に達成される。一実施形態では、コンフィギュレータ22は、データファイル内で識別されたネットワーク特性に基づき、選択されたノード16を自動的にチューニングする。一実施形態では、ネットワークパラメータは、例えば図11〜17に関してここに述べられるように、ユーザインタフェース200のモジュール206を介して提供されたユーザ入力に基づき更にチューニングされる。
At
例示的な一実施形態では、コンフィギュレータ22は、ブロック730で以下の「ベストマッチング(best matching)」技術を用いて適切なノード16を選択するが、他の適切な方法又はアルゴリズムが提供されてもよい。コンフィギュレータ22は、データファイルのネットワークコンフィギュレーションデータ(例えばレイテンシ−p0、帯域−p1、エラー率−pZ)を比較するときにZ個のネットワークプロパティ(Z network properties)(即ち特性)を考慮し、ノードX1,X2,…,XQはエミュレートされたノードクラスタのノードである。コンフィギュレータ22は、ネットワークプロパティp1,p2,…,pXに関してノードX1,X2,…,XQに最も類似している利用可能ノード16のサブセット(例えばノードY1,Y2,…,YQ)を選択する。この選択を行うために他のアルゴリズムが用いられてもよいが、利用可能ノード16の適切なサブセットを発見可能なようにコンフィギュレータ22によって実装される例示的アルゴリズムは、ネットワークプロパティに優先順位を付けることを含む。例示的な優先順位付けにおいては、プロパティp0はプロパティp1よりも高い優先順位を有しており、プロパティpkはプロパティpk+1よりも高い優先順位を有する。従って、図示された例では、ノード選択に際してレイテンシは帯域よりも高い優先順位を与えられ、帯域は、ノード選択に際してエラー率よりも高い優先順位を与えられる。ネットワークノードX及びYの間でネットワークプロパティNの値をリターンするために、入力N(ネットワークプロパティ)、X(ノード)及びY(ノード)をパラメータとする関数P(N,X,Y)がコンフィギュアされてよい。そのような関数は、ブロック724,728で作成されたネットワーク記述データファイル/オブジェクト(例えばデータファイル750)を用いて実装されてよい。ノードL={Y1,Y2,Y3,…}の初期リストは、全ての利用可能ノード16を含む。1≦g≦R(RはL内のノードの総数、R≧Q)とするときに、各ノードYgに対して次の等式(1)を適用する。
Sx(g)=Σ1≦N≦Z,1≦h≦R,g≠hP(N,Yg,Yh) …(1)
In one exemplary embodiment, the
Sx (g) = Σ 1 ≦ N ≦ Z, 1 ≦ h ≦ R, g ≠ h P (N, Y g , Y h ) (1)
1≦i≦Q(Qはエミュレートされたノードクラスタ内のノードの数)とするときに、エミュレートされたノードクラスタ内の各ノードXiに対して次の等式(2)を適用する。
Sy(i)=Σ1≦N≦Z,1≦j≦R,i≠jP(N,Yi,Yj) …(2)
When 1 ≦ i ≦ Q (Q is the number of nodes in the emulated node cluster), the following equation (2) is applied to each node X i in the emulated node cluster: .
Sy (i) = Σ 1 ≦ N ≦ Z, 1 ≦ j ≦ R, i ≠ j P (N, Y i , Y j ) (2)
アルゴリズムは、Sy(w)−Sx(i)=minv,f(Sy(v)−Sx(f))となるような、クラウドコンピューティングシステム10のための利用可能ノードYWを探し始める。従って、ノードYWはオリジナルノードXiをシミュレートするために用いられ、ノードYWはリストLから除かれる。アルゴリズムは、利用可能ノード16のフルセットが選択されるまで続く。ブロック730でノード16を選択するための他の適切な方法及びアルゴリズムが提供されてもよい。
Algorithm, Sy (w) -Sx (i ) = min v, such that f (Sy (v) -Sx ( f)), start looking for available nodes Y W for
例示的な一実施形態では、コンフィギュレータ22は、以下の方法を用いて、選択されたノード16をブロック732でチューニングするが、他の方法又はアルゴリズムが提供されてもよい。この方法では、コンフィギュレータは、各ノード16上で適切なネットワークシミュレーションレイヤを自動的に作成するコンフィギュレーションアプリケーションを実行する。ネットエム(Netem)ネットワーク遅延及び損失エミュレータを用いる場合には、以下のアルゴリズムがコンフィギュレータ22によって実装される。エミュレートされたノードクラスタの各ノードに対して、Gsはエミュレートされたそのノードが属するノードグループである(即ち各ノードグループは例えば同じラック内にあるような互いに物理的に近いノードを備える)。各グループGiに対してコンフィギュレータ22によって以下が行われ、ここで、1≦i≦Eであり、Eはエミュレートされたノードクラスタに関連するデータファイルにおいて定義されるグループの総数である。コンフィギュレータ22は、ノードGsからノードGiに出てゆくトラフィックに対して所望のネットワークプロパティp0,…,pNを調べる。コンフィギュレータ22は、例えばコマンド「tc class add dev」を用いる等してサービスの新たなクラスを作成する。コンフィギュレータ22は、例えばコマンド「tc qdisc add dev」を用いる等して新たな待ち行列規律(queuing discipline)を作成する。コンフィギュレータ22は、そのクラス又はその待ち行列規律「qdisc」に対して所望のネットワークプロパティをセットする。そのクラスで帯域及びバーストネットワークプロパティが指定され、その待ち行列規律で他のプロパティ(レイテンシ、エラー率等)が指定される。各ノードYnに対して、GynはそのノードYnが属するグループである。コンフィギュレータ22は、宛先(destination)IPアドレス(ノードYnのアドレス)に基づきフィルタをコンフィギュアし、それをクラスGynに割り当てる。このことは、例えば、コマンド「tc filter add dev」を用いてなされ得る。
In one exemplary embodiment, the configurator 22 tunes the selected
結果として、ネットエムエミュレータが起動されると、選択されたノードクラスタは、少なくとも以下のネットワークプロパティに関して、エミュレートされたノードクラスタと同等のネットワーク性能を有することになり、即ちこれらのネットワークプロパティは、最小レイテンシ、最大帯域、最大バースト率、最小パケット破損率、最小パケット損失率、及び、最小パケット並び替え率である。ブロック732でノード16をチューニングするための他の適切な方法及びアルゴリズムが提供されてもよい。
As a result, when the Net Emulator is launched, the selected node cluster will have network performance equivalent to the emulated node cluster, at least with respect to the following network properties: Minimum latency, maximum bandwidth, maximum burst rate, minimum packet corruption rate, minimum packet loss rate, and minimum packet rearrangement rate. Other suitable methods and algorithms for tuning
一実施形態では、図41のブロック726〜732は、エミュレートされたノードクラスタに対応する複数ノードからなる全クラスタ14が選択されるまで、利用可能ノード16の異なるグループで繰り返される。一実施形態では、エミュレートされたノードクラスタは、物理的なノード16が存在してもしなくてもよいという点で理論上のものであるが、所望のネットワークコンフィギュレーションは既知であり、それがノード選択を行うためのコンフィギュレータ22への入力として提供される。一実施形態では、エミュレートされたノードクラスタに基づき複数ノードのクラスタ14が選択されると、コンフィギュレータ22は、ここに述べられるバッチプロセッサ80を用いる等して、所望のネットワークコンフィギュレーションを有する複数ノードからなる選択されたクラスタ14で種々のワークロードをテストするように動作する。
In one embodiment, blocks 726-732 of FIG. 41 are repeated with different groups of
(ハードウェア特性に基づき複数ノードのクラスタを割り振ること)
図43は、クラウドコンピューティングシステム10に対して複数ノードのクラスタ14を割り振るために図1及び図3のコンフィギュレータ22によって行われる例示的な動作のフロー図760を示している。図43の説明全体に対して図1〜図3が参照される。ブロック762では、コンフィギュレータ22(例えばデータモニタコンフィギュレータ82)は、1つ以上のデータセンタの利用可能ノード16のグループについてハードウェア性能アセスメントテストを開始して、利用可能ノード16のグループの実際のハードウェア性能特性を得る。ブロック764では、ノードコンフィギュレータ72は、利用可能ノード16のグループの実際のハードウェア性能特性と、ユーザインタフェース200を介してのユーザ選択に基づき識別された所望のハードウェア性能特性と、を比較する。ブロック766では、ノードコンフィギュレータ72は、ブロック764での比較に基づき、利用可能ノード16のグループからクラウドコンピューティングシステム10のためのノード16のサブセットを選択する。ノードクラスタ14又はノードクラスタ14のノード16のグループ等のノード16のサブセットは、ここに述べられるように、ワークロードの処理を共有するように動作する。ノード16のサブセット内のノード16の数は、ここに述べられるように、ノードクラスタ14に対してユーザによって要求されたノード16の数に等しいかそれよりも少ない。
(Allocate multi-node clusters based on hardware characteristics)
FIG. 43 shows a flow diagram 760 of exemplary operations performed by the
一実施形態では、ノードコンフィギュレータ72は、所望のハードウェア性能特性を有する、クラウドコンピューティングシステム10のための複数ノードのクラスタを要求するユーザ要求を、ユーザインタフェース200を介して受信する。ユーザ要求は、例えば、図8の選択ボックス259、入力262及びフィールド256並びに図9の選択可能入力265等の選択可能ハードウェアコンフィギュレーションデータの選択に基づき、所望のハードウェア性能特性を識別する。一実施形態では、図9のテーブル264のフィールドは、所望のハードウェア性能特性を更に識別するために選択可能/修正可能である。ノードコンフィギュレータ72は、ユーザインタフェース200の他の適切な選択可能入力及びフィールドに基づき所望のハードウェア性能特性を識別してもよい。ノードコンフィギュレータ72は、複数ノードのクラスタのユーザ要求及びその要求において識別された所望のハードウェア性能特性に基づき(例えば利用可能ノード16と要求された複数ノードのクラスタとの間でのハードウェア類似性に基づき)、ハードウェア性能アセスメントテストでテストするための利用可能ノード16のグループを選択する。図示された実施形態では、利用可能ノード16のグループのノード16の数は、ユーザ要求で要求された複数ノードのクラスタのノード16の数よりも多い。
In one embodiment, the node configurator 72 receives via the user interface 200 a user request for a cluster of multiple nodes for the
例示的なハードウェア性能特性は、ネイティブな32ビット及び/又は64ビット動作を要求するワークロードをサポートするためにノード16が64ビットプロセッサアーキテクチャを有しているのかあるいは32ビットプロセッサアーキテクチャを有しているのか等のノード16のコンピュータアーキテクチャを含む。他の例示的なハードウェア性能特性は、ノード16の1つ以上のプロセッサ40の製造業者(エーエムディー(AMD)、インテル(Intel)、エヌビディア(Nvidia)等)、ノード16の1つ以上のプロセッサ40の動作周波数、及び、ノード16のリード/ライト性能を含む。更に他の例示的なハードウェア性能特性は、システムメモリ容量及びディスクスペース(記憶容量)、ノード16のプロセッサ40の数及びサイズ、ノード16のキャッシュサイズ、ノード16の利用可能命令セット、ノード16のディスクI/O性能及びハードドライブ速度、エミュレーティングソフトウェアをサポートするノード16の能力、チップセット、ノード16のメモリのタイプ、ノード16間でのネットワーク通信レイテンシ/帯域、並びに、他の適切なハードウェア性能特性を含む。図示された実施形態では、これらのハードウェア性能特性の各々は、ユーザインタフェース200を介して提供されたユーザ要求に基づきユーザによって所望に応じて指定されてよい。更に、1つ以上のハードウェア性能アセスメントテストが、各選択された利用可能ノード16のこれら実際のハードウェア性能特性を決定するように動作する。
Exemplary hardware performance characteristics include whether
一実施形態では、ノードコンフィギュレータ72は、ブロック762で、ノード16のハードウェア性能特性を識別し又は決定すると共にこれらの特性を表すハードウェアコンフィギュレーションデータを生成するように動作する1つ以上のハードウェア性能アセスメントツールを各ノード16に展開することによって、ハードウェア性能アセスメントテストを開始する。次いでデータアグリゲータ84は、集約されたデータに基づきノードコンフィギュレータ72が各ノード16の実際のハードウェア性能特性を決定することができるように、ハードウェア性能アセスメントツールによって提供されたハードウェア性能データを集約するように動作する。例示的なアセスメントツールは、ノード16の1つ以上のプロセッサのタイプと、プロセッサの種々の特性/特徴(例えば製造業者、プロセッサの速度及び能力、利用可能なメモリ及びディスクスペース等)とを識別するための実行可能動作コードを含むCPU識別ツール(「CPUID」)を含み、このようなツールは当該技術分野で既知である。他の例示的なモニタリングツールは、ノード16によって実行されるときに、ノード16に適合し且つ/又は1つ以上のプロセッサの製造業者に適合する命令セットを決定するために命令セット拡張又は命令種類をテストするように動作するソフトウェアコードモジュールを含む。他の例示的なモニタリングツールは、ノード16によって実行されるときに、ノード16が64ビットアーキテクチャを有しているのかあるいは32ビットアーキテクチャを有しているのかをテストするように動作するソフトウェアコードモジュールを含む。例えば、そのようなテストは、コマンド又は処理要求を発行することと、プロセッサが要求を完了するのにどれくらいの時間かかるのかを測定することと、を伴う。他の適切なアセスメントツールが提供されてもよい。
In one embodiment, the node configurator 72 identifies, at
一実施形態では、ブロック766で選択されるノード16のサブセットのノード16の数は、ユーザ要求において識別されるノード16の数より少ない。従って、コンフィギュレータ22は、選択されたノード16の数がユーザ要求で要求されたノード16の数に等しくなるまでステップ762〜766を繰り返して、ノード16の追加的なサブセットを得る。一実施形態では、ブロック766でノード16の第1のサブセットを選択した後、ノードコンフィギュレータ72は、ブロック762で最初にテストされた利用可能ノード16の第1のグループとは異なる利用可能ノード16の第2のグループを選択する。データモニタコンフィギュレータ82は、利用可能ノード16の第2のグループの実際のハードウェア性能特性を得るために利用可能ノード16の第2のグループについてハードウェア性能アセスメントテストを開始し、ノードコンフィギュレータ72は、利用可能ノードの第2のグループの実際のハードウェア性能特性と所望のハードウェア性能特性とのノードコンフィギュレータ72による比較に基づき、利用可能ノード16の第2のグループからクラウドコンピューティングシステム10のためのノード16の第2のサブセットを選択する。一実施形態では、ノード16の選択された複数のサブセットのノードの合計数がユーザ要求で要求されたノード16の数に等しくなると、ノードコンフィギュレータ72は、ノード16の当該選択された複数のサブセットをクラウドコンピューティングシステム10の複数ノードのクラスタ14としてコンフィギュアする(即ち、ノードクラスタ14をユーザ指定のコンフィギュレーションパラメータでコンフィギュアし、ノードクラスタ14上でワークロードを実行する等)。
In one embodiment, the number of
図44を参照すると、ユーザによって指定された所望のハードウェア性能特性に実質的に一致するハードウェア特性を有する複数ノードのクラスタ14を選択するために、図1及び3のコンフィギュレータ22を含む1つ以上のコンピューティングデバイスによって行われる例示的な詳細動作のフロー図770が示されている。図44の説明全体に対して図1〜3が参照される。ブロック772では、ノードコンフィギュレータ72は、所望のハードウェア性能特性を有するN個のノード16に対するユーザ要求を受信し、ここでNは所望のノード16の任意の適切な数である。一実施形態では、ユーザ要求は、図43に関してここに述べられるように、選択可能ハードウェアコンフィギュレーションデータ(例えば図8及び図9)のユーザ選択に基づく。ブロック774では、ノードコンフィギュレータ72は、アクセスした1つ以上のデータセンタ又はクラウドの利用可能ノード16からN+Mのノード16を要求し又は予約する。Mは予約した利用可能ノード16の数(N+M)が要求したノード16の数Nを超えるような任意の適切な数である。例えば、MはNに等しくてよく、あるいはNの倍に等しくてよい。代替的には、ノードコンフィギュレータ72は、ブロック774でN個の利用可能ノード16を要求してよい。一実施形態では、(N+M)個のノード16は、アプリケーション特有API(例えばアマゾンAWS API、オープンスタックAPI、カスタムAPI等)を用いて割り振られ又は予約される。ノードコンフィギュレータ72は、所望の複数ノードのクラスタと類似したハードウェア特性を有する利用可能ノード16に基づき、ブロック774(及びブロック788)で利用可能ノード16を要求する。例えば、ノードコンフィギュレータ72は、同じノードタイプ(例えばここに述べられるように、小型、中型、大型、x−大型)の利用可能ノード16を予約してよい。
Referring to FIG. 44, one including the
ブロック776では、図43に関してここに述べられるように、データモニタコンフィギュレータ82は、1つ以上のハードウェア性能アセスメントツールを展開することによって、各予約されたノード16についてハードウェア性能アセスメントテストを開始し、データアグリゲータ84は、各ノード16で開始されたハードウェア性能アセスメントテストからもたらされるハードウェア性能データを集約する(例えば収集し記憶する)。一実施形態では、ハードウェア性能アセスメントツールは、ノード16に予めインストールされているソフトウェアコードモジュールであり、あるいはSSH、HTTP又は何らかの他の適切なプロトコル/メカニズムを用いてノード16にインストールされるソフトウェアコードモジュールである。
At
ブロック780では、ノードコンフィギュレータ72は、ユーザ要求の所望のハードウェア性能特性(ブロック772)をハードウェア性能アセスメントテストからもたらされた実際のハードウェア性能特性と比較する。実際の及び所望のハードウェア性能特性における類似性に基づき、ノードコンフィギュレータ72は、ブロック782で、所望のハードウェア特性にベストマッチのX個のノード16を(N+M)個の予約されたノード16から選択し、ここでXは要求されたノード16の数Nに等しいかそれよりも少ない任意の数である。ハードウェア特性を比較しベストマッチングノード16を選択するために、図41に関してここに述べられているハードウェア特性に基づく「ベストマッチング」技術等の任意の適切なアルゴリズムが用いられてよい。ブロック784では、ノードコンフィギュレータ72は、選択されなかった残りの利用可能ノード16(例えば(N+M)−X)を、それらが他のクラウドコンピューティングシステムでの使用のために利用可能になるように、例えばアプリケーション特有APIを用いる等によって、1つ以上のデータセンタ又はクラウドへと解放する。ブロック786で、選択されたノード16の数Xが要求されたノード16の数Nよりも少ない場合には、ノードコンフィギュレータ72は、ブロック788で、1つ以上のデータセンタ/クラウドから追加のノード16を要求し又は予約する。次いでコンフィギュレータ22は、選択されたノード16の総数(即ち選択方法の全繰り返しからもたらされるノード16の合計数)が要求されたノード16の数Nに等しくなるまで、ステップ776〜786を繰り返す。選択されたノード16は次いで、ユーザによって割り当てられたクラウドコンピューティングタスクを実行するための複数ノードのクラスタ14としてコンフィギュアされる。
At
一実施形態では、図44の方法は、所望のハードウェア特性及びネットワーク特性を有する複数ノードのクラスタ14を選択するために、図41の方法と共に動作する。一実施形態では、図44の方法は、ネットワーク特性上の近接性に更に基づきノード16を選択する。一実施形態では、ブロック772でユーザ要求で識別されたハードウェア特性が、ノードクラスタ14のためのノード16を選択するのに先立ち優先付けられる。一実施形態では、図44(及び図43)の方法は、実際の選択された複数ノードのクラスタ14とユーザによって指定された所望の複数ノードのクラスタとの適切な一致性を見出すために、コンフィギュレータ22によって自動的に実行される。代替的には、例えばユーザインタフェース200の選択可能入力に基づき図43及び図44の動作を開始するためのオプションがコンフィギュレータ22によってユーザに与えられてもよい。
In one embodiment, the method of FIG. 44 operates in conjunction with the method of FIG. 41 to select a
(クラウドコンピューティングシステムのハードウェアコンフィギュレーションを選択及び/又は修正すること)
図45は、クラウドコンピューティングシステム10の複数ノードのクラスタ14のハードウェアコンフィギュレーションを選択するために図1及び図3のコンフィギュレータ22によって行われる例示的な動作のフロー図800を示している。図45の説明全体に対して図1及び図3が参照される。ブロック802では、ノードコンフィギュレータ72は、クラウドコンピューティングシステム10の複数ノードのクラスタ14によって共有されたワークロードの実行に基づき、複数ノードのクラスタ14の少なくとも1つのノード16が、ワークロードの共有された実行に際してスレッショルド動作能力未満で動作したことを決定する。スレッショルド動作能力は、例示的には、当該少なくとも1つのノード16によるハードウェア利用、例えばワークロード実行に際してのプロセッサ40及び/又はメモリ42の利用、に基づく。スレッショルド動作能力は、例えば最大動作能力(100%)又は90%動作能力等の任意の適切なスレッショルドであってよい。ブロック804では、ノードコンフィギュレータ72は、修正されたハードウェアコンフィギュレーションを伴う複数ノードのクラスタ14が低下したコンピューティング能力及び低減された記憶容量の少なくとも一方を有するように、ブロック802での決定に基づき複数ノードのクラスタ14の修正されたハードウェアコンフィギュレーションを選択する。
(Selecting and / or modifying the hardware configuration of the cloud computing system)
FIG. 45 illustrates a flow diagram 800 of exemplary operations performed by the
一実施形態では、ノードコンフィギュレータ72は、データセンタの複数の利用可能ノード16から少なくとも1つの異なるノード16を選択すると共に複数ノードのクラスタ14の当該少なくとも1つのノード16を当該少なくとも1つの異なるノード16と交換することによって、修正されたハードウェアコンフィギュレーションを選択する。その異なるノード16は、複数ノードのクラスタ14の交換対象となったノード16と比べて低下したコンピューティング能力及び低減された記憶容量の少なくとも一方を有する。例えば、ノードコンフィギュレータ72は、交換対象となったノード16と比べてより低速なプロセッサ40を有し、より少ない処理コアを有し、より少ないメモリ容量を有し、又は、任意の他の適切な低下したハードウェア特性を有する異なるノード16を利用可能ノード16から選択する。例えば、交換対象となったノード16は、交換対象となったノード16のハードウェアの一部がワークロード実行に際して利用されないような、ワークロードを処理するのに必要とされるよりも高いコンピューティング能力又はメモリ容量を有する。図示された実施形態では、その異なるノード16は、1つ以上の交換対象となったノード16と同等の性能(例えば同等の実行速度等)で、しかしその異なるノード16の低下したコンピューティング能力及び/又は記憶容量に起因してより効率的にワークロードを処理するよう動作するように選択される。従って、その異なるノード16で修正された複数ノードのクラスタ14は、全体的な性能損失を全く呈することなくあるいは殆ど呈することなく、その異なるノード16の低下したコンピューティング能力及び/又は記憶容量に起因してより効率的にワークロードを実行する。例えば、ノードクラスタ14は、交換対象となったノード16を伴う場合と実質的に同等の速度で、その異なるノード16を伴ってワークロードを実行する。
In one embodiment, the node configurator 72 selects at least one
一実施形態では、ノードコンフィギュレータ72は、交換対象となったノード16を異なるノード16と交換することなしに、1つ以上のノード16を選択し複数ノードのクラスタ14から除くことによって、ブロック804の修正されたハードウェアコンフィギュレーションを選択し実装する。例えば、ノードコンフィギュレータ72は、ノードクラスタ14の1つ以上のノード16がノードクラスタ14の残りのノード16にとって同様の実行性能でワークロードを実行するのに必要のないことを決定する。従ってノードコンフィギュレータ72は、これら1つ以上のノード16をノードクラスタ14から除き、これら1つ以上のノード16をデータセンタへと解放する。一実施形態では、ノードコンフィギュレータ72は、ノードクラスタ14の1つ以上のノード16のコンピューティング能力及びメモリ容量の少なくとも一方を低下させることによって、ブロック804の修正されたハードウェアコンフィギュレーションを選択し実装する。
In one embodiment, the node configurator 72 selects one or
図示された実施形態では、コンフィギュレータ22は、種々のハードウエアリソース(例えばノード16)をノードクラスタ14のために使用することに関連するハードウェア使用コストを識別するハードウェア使用コストデータへのアクセスを有する。例えば、クラウドコンピューティングサービス(例えばアマゾン、オープンスタック等)は、ノードクラスタ14の各選択された16のコンピューティング能力及びメモリ容量等のハードウェアに基づき使用コストをチャージする。そこで、一実施形態では、ノードコンフィギュレータ72は、複数ノードのクラスタ14における当該少なくとも1つの異なるノード16を使用することに関連する使用コストデータと、複数ノードのクラスタ14における当該少なくとも1つの交換対象となったノード16を使用することに関連する使用コストデータと、のノードコンフィギュレータ72による比較に更に基づき、ノードクラスタ14の1つ以上のノード16と交換する当該少なくとも1つの異なるノード16を選択する。一実施形態では、ノードコンフィギュレータ72は、当該少なくとも1つの異なるノード16の使用コストが、交換対象となったノード16の使用コストよりも低いことを条件として、当該少なくとも1つの異なるノード16を選択する。例えば、ノードコンフィギュレータ72は、複数ノードのクラスタ14において使用されたハードウェアリソース(例えばノード16)のコストを計算し、複数ノードのクラスタ14の可能なハードウェアコンフィギュレーション変更に関連するコスト便益を決定する。例えば、ノードコンフィギュレータ72は、ノードクラスタ14に割り振られたハードウェアリソースの、より低い使用コスト及び最小の性能損失でのより効率的な使用をもたらすであろう1つ以上の異なるノード16を選択する。一実施形態では、コンフィギュレータ22は、同様のコスト分析に基づきネットワークコンフィギュレーション又は他のコンフィギュレーションをコンフィギュアする。
In the illustrated embodiment, the
図示された実施形態では、コンフィギュレータ22は、1つ以上のハードウェア利用モニタリングツールを複数ノードのクラスタ14の各ノード16に展開することによって、各ノード16のハードウェア利用をモニタする。各ノード16によるハードウェア利用モニタリングツールの実行によって、各ノード16の少なくとも1つのプロセッサ40は、ワークロードの実行に際してコンピュータハードウェア(例えばプロセッサ40、メモリ42、メモリ制御器等)の利用又は使用量をモニタする。次いでモニタリングツールにより、ノード16は、ワークロードの実行に際しての各ノード16のハードウェア利用に関連する、コンフィギュレータ22によってアクセス可能なハードウェア利用データを提供する。コンフィギュレータ22のデータアグリゲータ84は、集約されたハードウェア利用データに基づきコンフィギュレータ22が各ノード16のハードウェア利用を決定し得るように、各ノード16によって提供されたハードウェア利用データを集約するように動作する。例示的なハードウェアモニタリングツールは、図26〜29のモニタリングモジュール214に関してここに述べられている。例えば、IOStatツール及びVMStatツールは、ワークロード実行に際してプロセッサ40、仮想メモリ及び/又はメモリ制御器が命令を実行し又はI/O動作を行うのにビジーである時間のパーセンテージ、ワークロード実行に際してこれらのコンポーネントが待機/停止している時間のパーセンテージ、並びに、他の適切な利用パラメータをモニタするために、ノードプロセッサ40によって実行可能なコードモジュールを含む。ノード16の決定されたハードウェア利用に基づき、ノードコンフィギュレータ72は、そのノード16にとって、最初に要求され割り振られたよりも少ないメモリ又は低いコンピューティング能力が必要とされていることを決定してよく、また、ここに述べられるように、そのノード16を交換し又はクラスタ14から除いてよい。
In the illustrated embodiment, the
一実施形態では、ノードコンフィギュレータ72は、ブロック804で選択された修正されたハードウェアコンフィギュレーションを表す選択可能ハードウェアコンフィギュレーションデータをユーザインタフェース200上に表示する。選択可能ハードウェアコンフィギュレーションデータのユーザ選択に基づき、ノードコンフィギュレータ72は、複数ノードのクラスタ14のハードウェアコンフィギュレーションを修正し、例えばノードクラスタ14のノード16を交換し又は除く。例示的な選択可能ハードウェアコンフィギュレーションデータは、図8のテーブル258内に、選択可能入力259,262と共に示されている。例えば、ノードコンフィギュレータ72は、1つ以上の異なるノード16又は除かれたノード16を含むノードクラスタ14の推奨ノード16をリストすることによって、ノードクラスタ14の推奨される修正されたハードウェアコンフィギュレーションをテーブル258内に表示してよい。ユーザは、リストされたノード16に対応する入力259を選択してハードウェア変更を承認し、ノードコンフィギュレータ72は、ここに述べられるように、ワークロード展開の開始の場合に、承認された変更に基づき、修正されたノードクラスタ14をコンフィギュアする。一実施形態では、ハードウェア使用コストもユーザインタフェース200で表示されて、ノードクラスタ14の1つ以上の推奨ハードウェアコンフィギュレーションにより、関連する使用コストに基づきユーザが実装のためのコンフィギュレーションを選択することを可能にしている。複数ノードのクラスタ14の修正されたハードウェアコンフィギュレーションを表示するために、他の適切なインタフェースが提供されてよい。一実施形態では、ノードコンフィギュレータ72は、ユーザによる入力又は確認なしに、ブロック804で選択された修正されたハードウェアコンフィギュレーションで複数ノードのクラスタ14を自動的にコンフィギュアし、更に、修正されたノードクラスタ14でワークロードの実行を開始する。
In one embodiment, node configurator 72 displays selectable hardware configuration data on
図46を参照すると、クラウドコンピューティングシステム10の複数ノードのクラスタ14のハードウェアコンフィギュレーションを選択するために、図1及び図3のコンフィギュレータ22を含む1つ以上のコンピューティングデバイスによって行われる例示的な詳細動作のフロー図810が示されている。図46の説明全体に対して図1〜3が参照される。ブロック812では、コンフィギュレータ22は、ここに述べられるように、所望のハードウェアコンフィギュレーションを伴う所望の複数ノードのクラスタ14のブロック814でのユーザ選択を可能にするために、選択可能ノードデータを含むユーザインタフェース200を提供する。ブロック816では、コンフィギュレータ22は、ここに述べられるように、複数ノードのクラスタ14を選択しコンフィギュアし、ワークロードを複数ノードのクラスタ14に展開する。ブロック818では、コンフィギュレータ22は、ノードクラスタ14の各ノード16上でハードウェア利用モニタリングツールをインストール及び/又はコンフィギュアする。一実施形態では、モニタリングツールは、図26〜29のモニタリングモジュール214を介してユーザによって選択される。代替的には、コンフィギュレータ22は、図46の方法の開始に基づき、IOStatツール及びVMStatツール等の1つ以上のモニタリングツールを自動的に展開してよい。ブロック820では、ワークロードコンフィギュレータ78は、複数ノードのクラスタ14上でのワークロードの実行を開始し、ブロック822では、その実行に続いて又はその実行の間、データアグリゲータ84は、各ノード16のモニタリングツールによって提供されるハードウェア利用データを収集し記憶する。
Referring to FIG. 46, an example performed by one or more computing devices including the
ノードクラスタ14によるワークロード実行が完了すると、ノードコンフィギュレータ72は、ブロック824で表されるように、ハードウェア利用データに基づき各ノード16のハードウェア利用を決定する。ブロック826では、ノードコンフィギュレータ72は、各ノード16のハードウェア利用が利用スレッショルド(例えば100%利用、90%利用又は任意の他の適切な利用スレッショルド)以上になったかどうかを判定する。一実施形態では、ノードコンフィギュレータ72は、ブロック826で、プロセッサ利用、メモリ利用、メモリ制御器利用等の複数の利用測定値を1つ以上の利用スレッショルドと比較する。ブロック826で肯定(yes)の場合には、ノードクラスタ14は更なるワークロード実行に適しているものと決定され、即ちコンフィギュレータ22によって何らノードクラスタ14のハードウェアコンフィギュレーションに対する調節はなされない。ブロック826で利用スレッショルド未満の各ノード16に対しては、ノードコンフィギュレータ72は、図45に関してここに述べられるように、交換用の異なるノード16であって、ワークロードの実行に適したハードウェアを有する(即ち交換対象となった1つ以上のノード16と同等の性能を有する)一方で交換対象となったノード16より低いコンピューティング能力又は記憶容量を有する交換用の異なるノード16を、データセンタの利用可能ノード16から識別する。ブロック830では、ノードコンフィギュレータ72は、図45に関してここに述べられるように、複数ノードのクラスタ14の推奨ハードウェアコンフィギュレーションをユーザインタフェース200上に表示することによって、ブロック828で識別された任意の推奨ハードウェアコンフィギュレーション変更のユーザへのフィードバックを提供する。ブロック832では、ノードコンフィギュレータ72は、オリジナルノードクラスタ14のノード16を除くこと及び/又は当該ノード16をブロック828で識別された異なるノード16と交換することによって、ワークロードの将来の実行のために推奨ハードウェアコンフィギュレーション変更を適用する。
When the workload execution by the
一実施形態では、ユーザインタフェース200の選択可能入力でのユーザによる選択によって、ノードコンフィギュレータ72は、図45及び図46で述べたハードウェアコンフィギュレーション方法を実施して、ワークロードを実行するのに適したノードクラスタ14のコンフィギュレーションを見出す。代替的には、コンフィギュレータ22は、例えばバッチ処理ジョブの開始に際して等、図45及び図46の方法を自動的に実装して、ワークロード性能を著しくは制限しない、複数ノードのクラスタ14の適切な代替的コンフィギュレーションを見出す。
In one embodiment, selection by the user at the selectable input of the
(クラウドコンピューティングシステムをチューニングすること)
図47は、複数の利用可能なコンフィギュレーションからクラウドコンピューティングシステム10の複数ノードのクラスタ14の適切なコンフィギュレーションを選択するために図1及び図3のコンフィギュレータ22によって行われる例示的な動作のフロー図850を示している。図47の説明全体に対して図1及び図3が参照される。ブロック852では、コンフィギュレータ22(バッチプロセッサ80)は、複数ノードのクラスタ14のためのコンフィギュレーションパラメータの複数の異なるセットに基づき、複数ノードのクラスタ14上でのワークロードの複数の実行を開始する。コンフィギュレータ22によってノード16への入力として提供(例えばここに述べられるように1つ以上のコンフィギュレーションファイル28を介して)されたコンフィギュレーションパラメータは、コンフィギュレーションパラメータの当該異なるセットを提供するために、コンフィギュレータ22によって調節可能であり、ワークロードは、コンフィギュレーションパラメータの各異なるセットで、複数ノードのクラスタ14によって実行される。一実施形態では、コンフィギュレータ22は、ここに述べられるように、ユーザインタフェース200を介して提供されたユーザ入力に基づき、各ワークロード実行のためのコンフィギュレーションパラメータを調節する。一実施形態では、これらコンフィギュレーションパラメータは、少なくとも1つのノード16のワークロードコンテナの動作パラメータ、少なくとも1つのノード16のブート時間パラメータ、及び、少なくとも1つのノード16のハードウェアコンフィギュレーションパラメータの少なくとも1つを含む。
(Tuning cloud computing system)
FIG. 47 illustrates an exemplary flow of operations performed by the
ブロック854では、ノードコンフィギュレータ72は、コンフィギュレーションパラメータの当該複数の異なるセットから、複数ノードのクラスタ14のためのコンフィギュレーションパラメータのセットを選択する。ブロック856では、ワークロードコンフィギュレータ78は、その選択されたコンフィギュレーションパラメータのセットでコンフィギュアされた複数ノードのクラスタ14による実行のために、ワークロードを複数ノードのクラスタ14に提供する(展開する)。従って、ワークロードの将来の実行は、その選択されたコンフィギュレーションパラメータのセットに基づくコンフィギュレーションを有する複数ノードのクラスタ14によって行われる。
At
ブロック854でのコンフィギュレーションパラメータのセットの選択は、ワークロードの各実行に際してモニタされた(例えばモニタリングツールで)複数ノードのクラスタ14の少なくとも1つの性能特性と、複数ノードのクラスタ14の少なくとも1つの所望の性能特性と、のノードコンフィギュレータ72による比較に基づく。例えば一実施形態では、ノードコンフィギュレータ72は、ワークロード実行に際して、ユーザによって指定された所望の性能特性にベストマッチのノードクラスタ14の性能特性をもたらすコンフィギュレーションパラメータのセットを選択する。図示された実施形態では、所望の性能特性は、ユーザインタフェース200を介して提供されたユーザ入力に基づき、ノードコンフィギュレータ72によって識別される。例えば、ユーザインタフェース200は、選択されたワークロードを実行するときにユーザが複数ノードのクラスタ14の所望の性能特性を選択することを可能にする選択可能入力又は空きを埋めることが可能な(fillable)フィールド等の選択可能性能データを含む。例えば、図10の埋めることが可能なフィールド276又は所望の性能特性を識別するためのユーザ入力を受け取るように構成されたユーザインタフェース200の任意の他の適切な選択可能入力若しくはフィールドを参照されたい。他の例では、ノードコンフィギュレータ72は、例えば図7の入力238,228,230,232のユーザ選択及び/又は図25のバッチ処理モジュール212のボタン494に基づく等して、所望の性能特性を識別するデータを含むユーザ提供のファイルをロードしてもよい。
The selection of a set of configuration parameters at
ワークロード実行に際してユーザによって指定されると共にモニタされる例示的な性能特性は、ワークロード実行時間、ノード16によるプロセッサ利用、ノード16によるメモリ利用、ノード16による電力消費、ノード16によるハードディスク入力/出力(I/O)利用、及び、ノード16によるネットワーク利用を含む。図26〜29に関してここに述べられるモニタリングツールでモニタされた性能特性等の他の適切な性能特性がモニタされ且つ/又はユーザによって指定されてよい。
Exemplary performance characteristics specified and monitored by the user during workload execution are: workload execution time, processor utilization by
一実施形態では、ブロック854でのコンフィギュレーションパラメータのセットの選択は、ワークロードの実行に際してモニタされた1つ以上の性能特性に関連する値が、1つ以上の対応する所望の性能特性に関連する許容値の範囲に含まれる旨のノードコンフィギュレータ72による決定に更に基づく。例えば、対応する所望の性能特性に関連する許容値の範囲(例えばユーザによって入力され又はノードコンフィギュレータ72によってセットされる)は、プロセッサ利用についての85%〜100%及びメモリ利用についての85%〜100%を含んでいてよい。これに伴い、ノードコンフィギュレータ72は、95%のプロセッサ利用及び90%のメモリ利用をもたらすコンフィギュレーションパラメータのセットを選択するが、80%のプロセッサ利用及び75%のメモリ利用をもたらすコンフィギュレーションパラメータのセットを拒絶する。値の許容範囲を満足する性能特性をコンフィギュレーションパラメータの複数のセットがもたらす場合には、ノードコンフィギュレータ72は、最高性能値、最低使用コスト、性能特性の優先順位、又は、他の適切なファクタ等の追加的ファクタに基づき、コンフィギュレーションパラメータのセットを選択する。許容範囲に含まれる性能特性をもたらすコンフィギュレーションパラメータのセットが無い場合には、ノードコンフィギュレータ72は、ベストマッチの性能特性をもたらすセットを選択し、適切なセットが見つかるまでコンフィギュレーションパラメータを自動的に更に調節し、及び/又は、許容範囲内のコンフィギュレーションパラメータのセットが見つからなかった旨をユーザに通知する。
In one embodiment, the selection of the set of configuration parameters at
一実施形態では、ノードコンフィギュレータ72は、所望の性能特性に対するモニタされた性能特性の類似性に基づき、コンフィギュレーションパラメータの各異なるセットにスコア値を割り当てる。従って、ブロック854でのコンフィギュレーションパラメータのセットの選択は、選択されたコンフィギュレーションパラメータのセットに割り当てられたスコア値に更に基づく。例えば、ノードコンフィギュレータ72は、最も高いスコア値をもたらすコンフィギュレーションパラメータのセットを選択する。スコア値は、ノードクラスタ14の性能特性が所望の性能特性にどれほどマッチしているのかに基づき、コンフィギュレーションパラメータのセットをランク付けする。
In one embodiment, the node configurator 72 assigns a score value to each different set of configuration parameters based on the similarity of the monitored performance characteristic to the desired performance characteristic. Accordingly, the selection of the set of configuration parameters at
一実施形態では、ブロック854でのコンフィギュレーションパラメータのセットの選択は、異なる利用可能ノード16を使用すること又は複数ノードのクラスタ14での異なるネットワークコンフィギュレーションを使用することに関連する使用コストデータの比較に更に基づく。例えば、ノードコンフィギュレータ72は、スレッショルド利用レベルよりも多いプロセッサ利用及びメモリ利用、並びに、スレッショルドコストレベルよりも低い使用コストをもたらすコンフィギュレーションパラメータのセットを選択してよい。使用コストに関する任意の他の適切な考慮がブロック854での選択に適用されてもよい。
In one embodiment, the selection of a set of configuration parameters at
一実施形態では、コンフィギュレータ22は、ユーザによって提供された(例えばユーザインタフェース200を介して)コンフィギュレーションパラメータの初期セットに基づき、ノードクラスタ14上でのワークロードの第1の実行を開始する。この実施形態では、所望の性能特性をもたらすコンフィギュレーションパラメータのセットを見出すために、ノードコンフィギュレータ72は、自動的に初期セットの少なくとも1つのコンフィギュレーションパラメータを調節すると共にこの修正された初期セットに基づきワークロードの追加的な実行を開始することによって、コンフィギュレーションパラメータの種々のセットを網羅する。このようなコンフィギュレーションパラメータの種々のセットを探索するために、任意の適切な設計スペース探索方法又はアルゴリズムが用いられてよい。
In one embodiment,
一実施形態では、データモニタコンフィギュレータ82は、1つ以上のノード及びネットワーク性能モニタリングツール(例えば図26〜29で述べられている)を複数ノードのクラスタ14の各ノード16に展開する。モニタリングツールは、各ノード16によって(又は制御サーバ12によって)実行されるときに、ここに述べられるように、ワークロードの各実行に際して各ノード16の性能特性をモニタするように動作する。実行されたモニタリングツールは、コンフィギュレータ22によってアクセス可能な、対応するノード16の性能特性を表す性能データを生成する。データアグリゲータ84は、各ノード16の性能モニタリングツールによって提供された性能データを集約し、ノードコンフィギュレータ72は、集約された性能データに基づきブロック854でコンフィギュレーションパラメータのセットを選択する。
In one embodiment, the data monitor
ここに述べられるように、複数ノードのクラスタ14のコンフィギュレーションパラメータの種々のセットは、ワークロードコンテナの動作パラメータ、ブート時間パラメータ、及び、ハードウェアコンフィギュレーションパラメータの少なくとも1つを含む。ワークロードコンテナの例示的な動作パラメータは、図4〜6,19及び図20に関してここに述べられており、例えば、リード/ライト動作、ファイルシステム動作、ネットワークソケット動作及びソーティング動作の少なくとも1つに関連する動作パラメータを含む。動作パラメータは、図19及び図20に示されここに述べられている選択可能データ(例えば入力及びフィールド)のユーザ選択に基づき、ワークロードコンテナコンフィギュレータ76によって修正される。リード/ライト動作に関連する例示的な動作パラメータは、リード/ライト動作のためのメモリバッファサイズ及びリード/ライト動作に際して転送されるデータブロックのサイズを含む。ファイルシステム動作に関連する例示的な動作パラメータは、各ノード16のメモリ内に記憶されるファイルシステム記録の数、及び、ファイルシステムのための要求を処理するために割り振られる各ノード16の処理スレッドの数の少なくとも一方を備える。ソーティング動作に関連する例示的な動作パラメータは、ソーティング動作を行うときにマージするデータストリームの数を含む。ワークロードコンテナの他の適切な動作パラメータが提供されてもよい。
As described herein, the various sets of configuration parameters of the
例示的なブート時間パラメータは、図10及び図36〜38に関してここに述べられており、例えば、ワークロードの実行に際して有効にされるノード16の処理コアの数、及び、ノード16のオペレーティングシステム44によってアクセス可能なノード16のシステムメモリの量を含む。ブート時間パラメータは、図10に示されここに述べられている選択可能データ(例えば入力及びフィールド)のユーザ選択に基づき、ノードコンフィギュレータ72によって選択され修正される。他の適切なブート時間パラメータが提供されてもよい。例示的なハードウェアコンフィギュレーションパラメータは、図8,9及び図43〜46に関してここに述べられており、例えば、ノード16のプロセッサ40の数、ノード16のシステムメモリの量、及び、ノード16のハードディスクスペースの量の少なくとも1つを含む。ハードウェアコンフィギュレーションパラメータは、図8及び図9に示されここに述べられている選択可能データ(例えば入力及びフィールド)のユーザ選択に基づき、ノードコンフィギュレータ72によって選択され修正される。他の適切なハードウェアコンフィギュレーションパラメータが提供されてもよい。
Exemplary boot time parameters are described herein with respect to FIG. 10 and FIGS. 36-38, for example, the number of processing cores of
図48を参照すると、複数の利用可能なコンフィギュレーションからクラウドコンピューティングシステム10の複数ノードのクラスタ14の適切なコンフィギュレーションを選択するために、図1及び図3のコンフィギュレータ22を含む1つ以上のコンピューティングデバイスによって行われる例示的な詳細動作のフロー図860が示されている。図48の説明全体に対して図1〜3が参照される。図48に図示された実施形態では、コンフィギュレータ22は、ノードクラスタ14の実際の性能が所望の性能以上の場合に、コンフィギュレーションパラメータの適切なセットのサーチを中止する。他の実施形態では、コンフィギュレータ22は、所望の性能特性及び/又は他の適切なファクタ(例えば使用コスト)に基づきベストマッチであるコンフィギュレーションパラメータのセットを選択する前に、識別されたコンフィギュレーションパラメータの各セットを試行する。
Referring to FIG. 48, one or more including the
ブロック862では、コンフィギュレータ22は、ここに述べられるように、ユーザインタフェース200を介して受信したユーザ入力に基づくワークロード実行に関連するコンフィギュレーションパラメータの1つ以上のセット及び所望の性能特性を受信する。ブロック864では、コンフィギュレータ22は、複数ノードのクラスタ14を割り振り、ブロック862で受信したコンフィギュレーションパラメータのセットで複数ノードのクラスタ14をコンフィギュアする。一実施形態では、コンフィギュレータ22は、ここに述べられるように、ブロック864でコンフィギュレーションパラメータを識別する1つ以上のネットワークコンフィギュレーションファイル28をノード16に展開する。コンフィギュレータ22は、ブロック866で1つ以上のモニタリングツール(例えばモジュール214を介してユーザによって選択される)を各ノード16上でインストール及び/又はコンフィギュアし、ブロック868で複数ノードのクラスタ14によるワークロードの実行を開始する。ワークロードの実行の場合又はワークロードの実行の間、コンフィギュレータ22は、ブロック870で、各ノード16の1つ以上のモニタリングツールによって生成された性能データを集約する。ここに述べられるように、ブロック872では、集約された性能データに基づき、コンフィギュレータ22は、ブロック862で識別された所望の性能特性を、集約された性能データで識別されたクラスタ14の実際の性能特性と比較する。ブロック874では、コンフィギュレータ22は、ここに述べられるように、性能特性が所望の性能特性と比べて適切なものであるかどうか(例えば許容範囲内にあるかどうか、適切なスコア値を有しているかどうか等)を判定する。ブロック874で肯定(yes)である場合には、コンフィギュレータは、ブロック864で最後に実装された現在のコンフィギュレーションパラメータをワークロードの将来の実行のために保存する。ブロック874で性能特性が所望のものでなく且つブロック876でコンフィギュレーションパラメータの利用可能な種々のセットが使い尽くされていない場合には、コンフィギュレータ22は、ブロック878でコンフィギュレーションパラメータの異なるセットを選択し、ブロック864〜876の機能を繰り返す。例えば、コンフィギュレータ22は、ここに述べられるように、ブロック862で識別されたコンフィギュレーションパラメータの異なるセットを実装してよく、あるいはコンフィギュレータ22によって提供されるパラメータの増加的に調節されたセットを実装してよい。プロセスは、コンフィギュレータ22がブロック874でコンフィギュレーションパラメータの適切なセットを見出すまで又はコンフィギュレーションパラメータオプションがブロック876で使い尽くされるまで繰り返される。コンフィギュレーションオプションがブロック876で使い尽くされた場合には、コンフィギュレータ22は、最良の性能特性及び他の識別された特性(例えば使用コスト)を提供したコンフィギュレーションパラメータのセットをブロック880で選択する。
At
数ある利益のなかでも、この方法及びシステムは、ユーザインタフェースを介しての、複数ノードのクラスタ、ワークロード、ワークロードコンテナ及びネットワークコンフィギュレーションの選択、コンフィギュレーション及び展開を可能にし得る。加えて、この方法及びシステムは、クラウドコンフィギュレーションパラメータの制御及び調節を可能にするので、これにより、ノードハードウェア、ネットワーク、ワークロードコンテナ及び/又はワークロードの変化しつつある特性下での性能解析が可能になり、また性能解析に基づく自動化されたシステムチューニングが可能になる。他の利益は当業者によって認識されるはずである。 Among other benefits, the method and system may allow selection, configuration and deployment of multi-node clusters, workloads, workload containers and network configurations via a user interface. In addition, the method and system allows for control and adjustment of cloud configuration parameters, thereby allowing performance under changing characteristics of node hardware, networks, workload containers and / or workloads. Analysis, and automated system tuning based on performance analysis. Other benefits should be recognized by those skilled in the art.
好ましい設計を有しているものとして本発明が述べられてきたが、本発明は、本開示の精神及び範囲内で更に修正され得る。従って、本出願は、本発明の一般的原理を用いる本発明の任意の改変、使用又は適応を網羅することを意図されている。更に、本出願は、本開示が属する技術の分野において既知の又は慣習となっている慣例に含まれるような本開示からの逸脱であって添付の特許請求の範囲の限定に包含される本開示からの逸脱を網羅することが意図されている。 While this invention has been described as having a preferred design, the present invention can be further modified within the spirit and scope of this disclosure. This application is therefore intended to cover any variations, uses, or adaptations of the invention using its general principles. Further, this application is intended to be a departure from this disclosure, as contained in any practice known or customary in the art to which this disclosure belongs, and which is encompassed by the limitations of the appended claims. It is intended to cover deviations from.
Claims (42)
前記コンピューティングシステムの複数ノードのクラスタのためのコンフィギュレーションパラメータのセットを、コンフィギュレーションパラメータの複数の異なるセットから、前記複数ノードのクラスタによるワークロードの先の実行に際してモニタされた前記複数ノードのクラスタの少なくとも1つの性能特性と、前記複数ノードのクラスタの少なくとも1つの所望の性能特性と、の前記1つ以上のコンピューティングデバイスによる比較に基づき選択することと、
前記選択されたコンフィギュレーションパラメータのセットでコンフィギュアされた前記複数ノードのクラスタによる共有実行のために、前記ワークロードを前記複数ノードのクラスタに提供することと、を備える方法。 A method of configuring a computing system implemented by one or more computing devices comprising:
A set of configuration parameters for a multi-node cluster of the computing system from the different sets of configuration parameters, the multi-node cluster monitored upon prior execution of the workload by the multi-node cluster; Selecting based on a comparison by the one or more computing devices of at least one performance characteristic of and a at least one desired performance characteristic of the cluster of nodes.
Providing the workload to the cluster of nodes for shared execution by the cluster of nodes configured with the selected set of configuration parameters.
各ノードの前記少なくとも1つのノード性能モニタリングツールによって提供された前記性能データを集約することと、を更に備え、前記選択することは前記集約された性能データに基づく請求項2の方法。 At least one node performance monitoring tool operable to monitor the at least one performance characteristic of each node and provide performance data representative of the at least one performance characteristic upon each execution of the workload by the cluster of nodes Deploying to each node of the multi-node cluster;
3. The method of claim 2, further comprising aggregating the performance data provided by the at least one node performance monitoring tool for each node, wherein the selecting is based on the aggregated performance data.
前記ノードコンフィギュレータは、コンピューティングシステムの複数ノードのクラスタのためのコンフィギュレーションパラメータのセットを、コンフィギュレーションパラメータの複数の異なるセットから、前記複数ノードのクラスタによるワークロードの先の実行に際してモニタされた前記複数ノードのクラスタの少なくとも1つの性能特性と、前記複数ノードのクラスタの少なくとも1つの所望の性能特性と、の前記ノードコンフィギュレータによる比較に基づき選択するように動作し、
前記ワークロードコンフィギュレータは、前記選択されたコンフィギュレーションパラメータのセットでコンフィギュアされた前記複数ノードのクラスタによる共有実行のために、前記ワークロードを前記複数ノードのクラスタに提供するように動作するコンピューティングコンフィギュレーションシステム。 A computing configuration system comprising a node configurator and a workload configurator comprising:
The node configurator monitors a set of configuration parameters for a multi-node cluster of a computing system from a plurality of different sets of configuration parameters upon prior execution of a workload by the multi-node cluster. Operative to select based on a comparison by the node configurator of at least one performance characteristic of a multi-node cluster and at least one desired performance characteristic of the multi-node cluster;
Computing the workload configurator to provide the workload to the cluster of nodes for shared execution by the cluster of nodes configured with the selected set of configuration parameters; Configuration system.
前記データモニタコンフィギュレータは、少なくとも1つのノード性能モニタリングツールを前記複数ノードのクラスタの各ノードに展開するように動作し、前記少なくとも1つのノード性能モニタリングツールは、ノードによって実行されるときに、前記複数ノードのクラスタによる前記ワークロードの各実行に際して前記ノードの前記少なくとも1つの性能特性をモニタすると共に前記少なくとも1つの性能特性を表す性能データを提供するように動作し、
前記データアグリゲータは、各ノードの前記少なくとも1つのノード性能モニタリングツールによって提供された前記性能データを集約するように動作し、前記ノードコンフィギュレータは前記集約された性能データに基づき前記コンフィギュレーションパラメータのセットを選択するように動作する請求項16のシステム。 A data monitor configurator and a data aggregator;
The data monitor configurator is operable to deploy at least one node performance monitoring tool to each node of the multiple node cluster, wherein the at least one node performance monitoring tool is executed by a node when the plurality of node performance monitoring tools are executed by the node. Operative to monitor the at least one performance characteristic of the node and provide performance data representative of the at least one performance characteristic upon each execution of the workload by a cluster of nodes;
The data aggregator is operative to aggregate the performance data provided by the at least one node performance monitoring tool of each node, and the node configurator sets the configuration parameter set based on the aggregated performance data. The system of claim 16, which is operative to select.
コンピューティングシステムの複数ノードのクラスタのためのコンフィギュレーションパラメータのセットを、コンフィギュレーションパラメータの複数の異なるセットから、前記複数ノードのクラスタによるワークロードの先の実行に際してモニタされた前記複数ノードのクラスタの少なくとも1つの性能特性と、前記複数ノードのクラスタの少なくとも1つの所望の性能特性と、の前記少なくとも1つのプロセッサによる比較に基づき選択することと、
前記選択されたコンフィギュレーションパラメータのセットでコンフィギュアされた前記複数ノードのクラスタによる共有実行のために、前記ワークロードを前記複数ノードのクラスタに提供することと、を前記少なくとも1つのプロセッサに実行させるような実行可能命令を備える非一時的コンピュータ可読媒体。 When executed by at least one processor,
A set of configuration parameters for a multi-node cluster of a computing system is obtained from a plurality of different sets of configuration parameters of the multi-node cluster monitored during a prior execution of a workload by the multi-node cluster. Selecting based on a comparison by the at least one processor of at least one performance characteristic and at least one desired performance characteristic of the cluster of nodes.
Providing the workload to the cluster of nodes for execution by the at least one processor for shared execution by the cluster of nodes configured with the selected set of configuration parameters. A non-transitory computer readable medium comprising such executable instructions.
ノードによって実行されるときに前記複数ノードのクラスタによる前記ワークロードの各実行に際して前記ノードの前記少なくとも1つの性能特性をモニタすると共に前記少なくとも1つの性能特性を表す性能データを提供するように動作する少なくとも1つのノード性能モニタリングツールを、前記複数ノードのクラスタの各ノードに展開することと、
各ノードの前記少なくとも1つのノード性能モニタリングツールによって提供された前記性能データを集約することと、を前記少なくとも1つのプロセッサにさせ、
前記実行可能命令は、前記集約された性能データに基づき前記コンフィギュレーションパラメータのセットを選択することを前記少なくとも1つのプロセッサに実行させる請求項30の非一時的コンピュータ可読媒体。 The executable instruction further includes:
Operates to monitor the at least one performance characteristic of the node and provide performance data representative of the at least one performance characteristic upon each execution of the workload by the cluster of nodes when executed by the node Deploying at least one node performance monitoring tool on each node of the multi-node cluster;
Aggregating the performance data provided by the at least one node performance monitoring tool of each node to the at least one processor;
32. The non-transitory computer-readable medium of claim 30, wherein the executable instructions cause the at least one processor to select the set of configuration parameters based on the aggregated performance data.
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/568,463 | 2012-08-07 | ||
US13/568,432 | 2012-08-07 | ||
US13/568,432 US20140047095A1 (en) | 2012-08-07 | 2012-08-07 | System and method for tuning a cloud computing system |
US13/568,463 US9658895B2 (en) | 2012-08-07 | 2012-08-07 | System and method for configuring boot-time parameters of nodes of a cloud computing system |
US13/568,459 | 2012-08-07 | ||
US13/568,459 US9152532B2 (en) | 2012-08-07 | 2012-08-07 | System and method for configuring a cloud computing system with a synthetic test workload |
PCT/US2013/052994 WO2014025584A1 (en) | 2012-08-07 | 2013-07-31 | System and method for tuning a cloud computing system |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2015530647A true JP2015530647A (en) | 2015-10-15 |
JP6373840B2 JP6373840B2 (en) | 2018-08-15 |
Family
ID=49029172
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015526575A Active JP6373840B2 (en) | 2012-08-07 | 2013-07-31 | System and method for tuning a cloud computing system |
Country Status (5)
Country | Link |
---|---|
EP (1) | EP2883140A1 (en) |
JP (1) | JP6373840B2 (en) |
KR (1) | KR20150043377A (en) |
CN (1) | CN104541247B (en) |
WO (1) | WO2014025584A1 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018142592A1 (en) * | 2017-02-03 | 2018-08-09 | 株式会社日立製作所 | Information processing system and information processing method |
US10901804B2 (en) | 2017-12-15 | 2021-01-26 | Fujitsu Limited | Apparatus and method to select services for executing a user program based on a code pattern included therein |
JP7477254B2 (en) | 2019-10-30 | 2024-05-01 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Secure workload configuration method, system, and program |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10432734B2 (en) | 2014-12-12 | 2019-10-01 | Hewlett Packard Enterprise Development Lp | Cloud service tuning |
US9652612B2 (en) | 2015-03-25 | 2017-05-16 | International Business Machines Corporation | Security within a software-defined infrastructure |
CN106155811B (en) * | 2015-04-28 | 2020-01-07 | 阿里巴巴集团控股有限公司 | Resource service device, resource scheduling method and device |
FR3037165B1 (en) * | 2015-06-03 | 2022-07-29 | Bull Sas | PROGRAMMING INTERFACE DEVICE FOR GENERATING DEDICATED COMPUTER PROGRAMS FOR USE OF SHARED COMPUTER RESOURCES |
CN105677382A (en) * | 2015-12-28 | 2016-06-15 | 深圳市华讯方舟软件技术有限公司 | Installation tool of big database system |
CN106936766A (en) * | 2015-12-29 | 2017-07-07 | 大唐高鸿信安(浙江)信息科技有限公司 | Credible cloud automatic deployment system and method based on credible chip |
CN109643350A (en) * | 2016-01-15 | 2019-04-16 | E·马伊姆 | The method and system implemented in the network architecture for thering is node to be able to carry out message based transaction |
KR102145795B1 (en) * | 2016-09-07 | 2020-08-19 | 한국전자통신연구원 | Method and apparatus for analyzing and processing data stream in environment where worker nodes are distributed, and method and apparatus for managing task |
US10719354B2 (en) * | 2017-06-20 | 2020-07-21 | Samsung Electronics Co., Ltd. | Container workload scheduler and methods of scheduling container workloads |
CN107590001B (en) * | 2017-09-08 | 2020-12-22 | 北京京东尚科信息技术有限公司 | Load balancing method and device, storage medium and electronic equipment |
CA2990205A1 (en) * | 2017-12-28 | 2019-06-28 | Techinsights Inc. | Reverse engineering data analysis system, and integrated circuit component data processing tool and method thereof |
CN110161431B (en) | 2018-02-12 | 2023-02-17 | 西门子公司 | Processing method and device for monitoring data of frequency converter and storage medium |
US10977083B2 (en) * | 2018-08-30 | 2021-04-13 | Intuit Inc. | Cost optimized dynamic resource allocation in a cloud infrastructure |
CN109471574B (en) * | 2018-11-21 | 2020-04-10 | 北京百度网讯科技有限公司 | Method and device for configuring resources |
US11140036B2 (en) | 2019-01-16 | 2021-10-05 | International Business Machines Corporation | Identifying groups of related nodes in an integration flow |
KR102426132B1 (en) * | 2019-11-14 | 2022-07-26 | 대구대학교 산학협력단 | Apparatus and method for containers arrangement in cloud computing |
WO2021095943A1 (en) * | 2019-11-15 | 2021-05-20 | 대구대학교 산학협력단 | Method for placing container in consideration of service profile |
CN110941461B (en) * | 2019-11-26 | 2023-08-04 | 杭州皓智天诚信息科技有限公司 | Parameter configuration terminal of business processing software |
KR102178121B1 (en) * | 2019-12-03 | 2020-11-12 | 아이씨티웨이주식회사 | A method for providing a web-based spatial big data management service and a computer readable storage medium storing instructions for performing the same |
CN111754191A (en) * | 2020-06-08 | 2020-10-09 | 中国建设银行股份有限公司 | Automatic change method based on cloud platform and related equipment |
CN112286671B (en) * | 2020-12-29 | 2021-03-12 | 湖南星河云程信息科技有限公司 | Containerization batch processing job scheduling method and device and computer equipment |
EP4134817A1 (en) * | 2021-08-14 | 2023-02-15 | Tata Consultancy Services Limited | Method and system for performance management of distributed software applications |
US11900078B2 (en) | 2021-10-15 | 2024-02-13 | International Business Machines Corporation | Tuning a container orchestrator |
DE102022202944A1 (en) * | 2022-03-25 | 2023-09-28 | Robert Bosch Gesellschaft mit beschränkter Haftung | Device system, method for configuring the device system, computer program and storage medium |
TWI835113B (en) * | 2022-04-08 | 2024-03-11 | 彰化商業銀行股份有限公司 | System for executing task based on an analysis result of records for achieving device joint defense and method thereof |
US11909621B2 (en) * | 2022-06-03 | 2024-02-20 | Linquest Corporation | Systems and methods for implementing a network resiliency testbed emulator |
CN117978681B (en) * | 2024-04-02 | 2024-06-04 | 四川知行志成科技有限公司 | Information collection and management method and system based on cloud monitoring platform |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050060391A1 (en) * | 2003-09-16 | 2005-03-17 | International Business Machines Corporation | Autonomic cluster-based optimization |
JP2006520027A (en) * | 2003-03-10 | 2006-08-31 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Method and apparatus for managing computing deployment when workload changes |
JP2006338653A (en) * | 2005-05-06 | 2006-12-14 | Hitachi Ltd | Computer system and computer control method |
WO2008001678A2 (en) * | 2006-06-26 | 2008-01-03 | International Business Machines Corporation | System configuration parameter set optimizing method, program, and device |
JP2008234651A (en) * | 2004-07-30 | 2008-10-02 | Hewlett-Packard Development Co Lp | System and method for operating load balancers for multiple instance applications |
US20100262974A1 (en) * | 2009-04-08 | 2010-10-14 | Microsoft Corporation | Optimized Virtual Machine Migration Mechanism |
JP2011018198A (en) * | 2009-07-09 | 2011-01-27 | Hitachi Ltd | Management device and management method |
JP2011512579A (en) * | 2008-01-30 | 2011-04-21 | マイクロソフト コーポレーション | Managing component programs in service applications |
US20110271283A1 (en) * | 2010-04-28 | 2011-11-03 | International Business Machines Corporation | Energy-aware job scheduling for cluster environments |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7496667B2 (en) * | 2006-01-31 | 2009-02-24 | International Business Machines Corporation | Decentralized application placement for web application middleware |
US9501329B2 (en) * | 2009-05-08 | 2016-11-22 | Rackspace Us, Inc. | Methods and systems for cloud computing management |
CN101710866B (en) * | 2009-12-01 | 2011-11-02 | 北京邮电大学 | Method for selecting and setting super node of network |
US8341462B2 (en) * | 2010-07-19 | 2012-12-25 | Soasta, Inc. | System and method for provisioning and running a cross-cloud test grid |
CN102236582B (en) * | 2011-07-15 | 2013-06-05 | 浙江大学 | Method for balanced distribution of virtualized cluster load in a plurality of physical machines |
CN102546256B (en) * | 2012-01-12 | 2015-05-06 | 易云捷讯科技(北京)有限公司 | System and method used for monitoring cloud computation service |
-
2013
- 2013-07-31 CN CN201380042348.0A patent/CN104541247B/en active Active
- 2013-07-31 KR KR20157005995A patent/KR20150043377A/en not_active Application Discontinuation
- 2013-07-31 JP JP2015526575A patent/JP6373840B2/en active Active
- 2013-07-31 WO PCT/US2013/052994 patent/WO2014025584A1/en active Application Filing
- 2013-07-31 EP EP13752711.5A patent/EP2883140A1/en not_active Withdrawn
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006520027A (en) * | 2003-03-10 | 2006-08-31 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Method and apparatus for managing computing deployment when workload changes |
US20050060391A1 (en) * | 2003-09-16 | 2005-03-17 | International Business Machines Corporation | Autonomic cluster-based optimization |
JP2008234651A (en) * | 2004-07-30 | 2008-10-02 | Hewlett-Packard Development Co Lp | System and method for operating load balancers for multiple instance applications |
JP2006338653A (en) * | 2005-05-06 | 2006-12-14 | Hitachi Ltd | Computer system and computer control method |
WO2008001678A2 (en) * | 2006-06-26 | 2008-01-03 | International Business Machines Corporation | System configuration parameter set optimizing method, program, and device |
JP2011512579A (en) * | 2008-01-30 | 2011-04-21 | マイクロソフト コーポレーション | Managing component programs in service applications |
US20100262974A1 (en) * | 2009-04-08 | 2010-10-14 | Microsoft Corporation | Optimized Virtual Machine Migration Mechanism |
JP2011018198A (en) * | 2009-07-09 | 2011-01-27 | Hitachi Ltd | Management device and management method |
US20110271283A1 (en) * | 2010-04-28 | 2011-11-03 | International Business Machines Corporation | Energy-aware job scheduling for cluster environments |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018142592A1 (en) * | 2017-02-03 | 2018-08-09 | 株式会社日立製作所 | Information processing system and information processing method |
US10901804B2 (en) | 2017-12-15 | 2021-01-26 | Fujitsu Limited | Apparatus and method to select services for executing a user program based on a code pattern included therein |
JP7477254B2 (en) | 2019-10-30 | 2024-05-01 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Secure workload configuration method, system, and program |
Also Published As
Publication number | Publication date |
---|---|
EP2883140A1 (en) | 2015-06-17 |
JP6373840B2 (en) | 2018-08-15 |
KR20150043377A (en) | 2015-04-22 |
WO2014025584A1 (en) | 2014-02-13 |
CN104541247B (en) | 2018-12-11 |
CN104541247A (en) | 2015-04-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5926864B2 (en) | System and method for configuring a cloud computing system | |
JP6373840B2 (en) | System and method for tuning a cloud computing system | |
US9152532B2 (en) | System and method for configuring a cloud computing system with a synthetic test workload | |
US9262231B2 (en) | System and method for modifying a hardware configuration of a cloud computing system | |
US9658895B2 (en) | System and method for configuring boot-time parameters of nodes of a cloud computing system | |
US20140047095A1 (en) | System and method for tuning a cloud computing system | |
US20140047342A1 (en) | System and method for allocating a cluster of nodes for a cloud computing system based on hardware characteristics | |
US20140047079A1 (en) | System and method for emulating a desired network configuration in a cloud computing system | |
Scolati et al. | A Containerized Big Data Streaming Architecture for Edge Cloud Computing on Clustered Single-board Devices. | |
Kjorveziroski et al. | Kubernetes distributions for the edge: serverless performance evaluation | |
EP3149603B1 (en) | Customized configuration of cloud-based applications prior to deployment | |
US11055568B2 (en) | Method and system that measure application response time | |
Koziolek et al. | Lightweight kubernetes distributions: A performance comparison of microk8s, k3s, k0s, and microshift | |
Papapanagiotou et al. | Ndbench: Benchmarking microservices at scale | |
KR20170088277A (en) | Electronic system with data exchange mechanism and method of operation thereof | |
US11921604B2 (en) | Evaluating system recovery using emulated production systems | |
Bian et al. | Simulating big data clusters for system planning, evaluation, and optimization | |
CN114579250B (en) | Method, device and storage medium for constructing virtual cluster | |
US20220129786A1 (en) | Framework for rapidly prototyping federated learning algorithms | |
Calcaterra et al. | MaxHadoop: An efficient scalable emulation tool to test SDN protocols in emulated Hadoop environments | |
Maenhaut et al. | Efficient resource management in the cloud: From simulation to experimental validation using a low‐cost Raspberry Pi testbed | |
US20220237036A1 (en) | System and method for operation analysis | |
US9772877B2 (en) | Managing I/O operations in a shared file system | |
Penchalaiah et al. | Clustered Single-Board Devices with Docker Container Big Stream Processing Architecture. | |
Quintero et al. | IBM High-Performance Computing Insights with IBM Power System AC922 Clustered Solution |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20160721 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20170616 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20170627 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170926 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180220 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180515 |
|
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: 20180703 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180718 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6373840 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |