JP2015530647A - System and method for tuning a cloud computing system - Google Patents

System and method for tuning a cloud computing system Download PDF

Info

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
Application number
JP2015526575A
Other languages
Japanese (ja)
Other versions
JP6373840B2 (en
Inventor
ブレーターニッツ マウリシオ
ブレーターニッツ マウリシオ
エイ. ロウリー キース
エイ. ロウリー キース
カミンスキー パトリック
カミンスキー パトリック
チェルノフ アントン
チェルノフ アントン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US13/568,432 external-priority patent/US20140047095A1/en
Priority claimed from US13/568,463 external-priority patent/US9658895B2/en
Priority claimed from US13/568,459 external-priority patent/US9152532B2/en
Application filed by Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of JP2015530647A publication Critical patent/JP2015530647A/en
Application granted granted Critical
Publication of JP6373840B2 publication Critical patent/JP6373840B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording 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/3409Recording 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/3428Benchmarking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording 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/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording 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/3466Performance evaluation by tracing or monitoring
    • G06F11/3495Performance evaluation by tracing or monitoring for systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/508Monitor

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.

図1は、通信ネットワーク上で動作する複数ノードのクラスタと、複数ノードのクラスタと通信する制御サーバと、制御サーバのコンフィギュレータと、を含む実施形態によるクラウドコンピューティングシステムのブロック図である。FIG. 1 is a block diagram of a cloud computing system according to an embodiment including a cluster of multiple nodes operating on a communication network, a control server communicating with the cluster of multiple nodes, and a configurator of the control server.

図2は、少なくとも1つのプロセッサ及びメモリを含む図1の複数ノードのクラスタの例示的なノードのブロック図である。FIG. 2 is a block diagram of an exemplary node of the multi-node cluster of FIG. 1 that includes at least one processor and memory.

図3は、図1のクラウドコンピューティングシステムをコンフィギュアするように動作するコンフィギュレータを含む図1のクラウドコンピューティングシステムの例示的な制御サーバのブロック図である。3 is a block diagram of an exemplary control server of the cloud computing system of FIG. 1 including a configurator that operates to configure the cloud computing system of FIG.

図4は、クラウドコンピューティングシステムをコンフィギュアするための図3のコンフィギュレータの動作の例示的な方法のフローチャートである。FIG. 4 is a flowchart of an exemplary method of operation of the configurator of FIG. 3 for configuring a cloud computing system.

図5は、クラウドコンピューティングシステムをコンフィギュアするための図3のコンフィギュレータの動作の他の例示的な方法のフローチャートである。FIG. 5 is a flowchart of another exemplary method of operation of the configurator of FIG. 3 for configuring a cloud computing system.

図6は、クラウドコンピューティングシステムをコンフィギュアするための図3のコンフィギュレータの動作の他の例示的な方法のフローチャートである。FIG. 6 is a flowchart of another exemplary method of operation of the configurator of FIG. 3 for configuring a cloud computing system.

図7は、ユーザアクセス認証を容易にするための認証及び設定ライブラリモジュールを含む、図3のコンフィギュレータによって提供される例示的なユーザインタフェースを示す図である。FIG. 7 is a diagram illustrating an exemplary user interface provided by the configurator of FIG. 3 that includes an authentication and configuration library module to facilitate user access authentication.

図8は、図1の複数ノードのクラスタの選択を容易にするためのインスタンスタブを含む図7の例示的なユーザインタフェースのインスタンスモジュールを示す図である。FIG. 8 is a diagram illustrating the instance module of the example user interface of FIG. 7 including an instance tab for facilitating the selection of the multi-node cluster of FIG.

図9は、図1の複数ノードのクラスタのノードのためのノードタイプの選択を容易にするための図8のインスタンスモジュールのインスタンスタイプタブを示す図である。FIG. 9 is a diagram illustrating an instance type tab of the instance module of FIG. 8 for facilitating selection of node types for nodes of the multi-node cluster of FIG.

図10は、図1の複数ノードのクラスタの1つ以上のノードのブート時間パラメータのコンフィギュレーションを容易にするための図8のインスタンスモジュールの他のインスタンス設定タブを示す図である。FIG. 10 is a diagram illustrating another instance configuration tab of the instance module of FIG. 8 for facilitating configuration of boot time parameters for one or more nodes of the multi-node cluster of FIG.

図11は、図1の通信ネットワーク上でのネットワーク遅延の実装を容易にするための遅延タブを含む図7の例示的なユーザインタフェースのネットワークコンフィギュレーションモジュールのネットワーク設定ウィザードを示す図である。FIG. 11 is a diagram illustrating a network configuration wizard of the network configuration module of the example user interface of FIG. 7 including a delay tab to facilitate implementation of network delays on the communication network of FIG.

図12は、図1の通信ネットワーク上でのパケット損失率の調節を容易にするための図11のネットワークコンフィギュレーションモジュールのパケット損失タブを示す図である。12 is a diagram illustrating a packet loss tab of the network configuration module of FIG. 11 for facilitating adjustment of the packet loss rate on the communication network of FIG.

図13は、図1の通信ネットワーク上でのパケット重複率の調節を容易にするための図11のネットワークコンフィギュレーションモジュールのパケット重複タブを示す図である。FIG. 13 is a diagram illustrating a packet duplication tab of the network configuration module of FIG. 11 for facilitating adjustment of the packet duplication rate on the communication network of FIG.

図14は、図1の通信ネットワーク上でのパケット破損率の調節を容易にするための図11のネットワークコンフィギュレーションモジュールのパケット破損タブを示す図である。14 is a diagram illustrating a packet corruption tab of the network configuration module of FIG. 11 for facilitating adjustment of the packet corruption rate on the communication network of FIG.

図15は、図1の通信ネットワーク上でのパケット並べ替え率の調節を容易にするための図11のネットワークコンフィギュレーションモジュールのパケット並び替えタブを示す図である。FIG. 15 is a diagram illustrating a packet reordering tab of the network configuration module of FIG. 11 for facilitating adjustment of the packet reordering rate on the communication network of FIG.

図16は、図1の通信ネットワーク上での通信速度の調節を容易にするための図11のネットワークコンフィギュレーションモジュールの速度制御タブを示す図である。FIG. 16 is a diagram illustrating a speed control tab of the network configuration module of FIG. 11 for facilitating the adjustment of the communication speed on the communication network of FIG.

図17は、カスタムコマンドストリングに基づく図1の通信ネットワーク上でのネットワークパラメータの調節を容易にするための図11のネットワークコンフィギュレーションモジュールのカスタムコマンドタブを示す図である。17 is a diagram illustrating a custom command tab of the network configuration module of FIG. 11 for facilitating adjustment of network parameters on the communication network of FIG. 1 based on a custom command string.

図18は、ハドゥープワークロードコンテナの選択を容易にするためのハドゥープタブを含む図7の例示的なユーザインタフェースのワークロードコンテナコンフィギュレーションモジュールを示す図である。FIG. 18 is a diagram illustrating the example user interface workload container configuration module of FIG.

図19は、ハドゥープワークロードコンテナの動作パラメータのコンフィギュレーションを容易にするための拡張タブを含む図18のワークロードコンテナコンフィギュレーションモジュールのハドゥープタブを示す図である。FIG. 19 is a diagram illustrating the hadop tab of the workload container configuration module of FIG.

図20は、カスタムコマンドストリングに基づくハドゥープワークロードコンテナの動作パラメータのコンフィギュレーションを容易にするためのカスタムタブを含む図18のワークロードコンテナコンフィギュレーションモジュールのハドゥープタブを示す図である。FIG. 20 is a diagram illustrating a hadop tab of the workload container configuration module of FIG. 18 including a custom tab for facilitating configuration of operating parameters of a hadoop workload container based on a custom command string.

図21は、カスタムワークロードコンテナの選択を容易にするための図18のワークロードコンテナコンフィギュレーションモジュールのカスタムタブを示す図である。FIG. 21 is a diagram illustrating a custom tab of the workload container configuration module of FIG. 18 for facilitating selection of a custom workload container.

図22は、図1の複数ノードのクラスタ上での実行のためのワークロードの選択を容易にするためのワークロードタブを含む図7の例示的なユーザインタフェースのワークロードコンフィギュレーションモジュールを示す図である。22 illustrates the example user interface workload configuration module of FIG. 7 including a workload tab for facilitating selection of a workload for execution on the multi-node cluster of FIG. It is.

図23は、合成テストワークロードのコンフィギュレーションを容易にするための図22のワークロードコンフィギュレーションモジュールの合成カーネルタブを示す図である。FIG. 23 is a diagram illustrating a synthesis kernel tab of the workload configuration module of FIG. 22 for facilitating configuration of a synthetic test workload.

図24は、メムキャッシュディーワークロードのコンフィギュレーションを容易にするための図22のワークロードコンフィギュレーションモジュールのMCブラスタタブを示す図である。FIG. 24 is a diagram illustrating the MC blaster tab of the workload configuration module of FIG. 22 for facilitating memcached workload configuration.

図25は、図1の複数ノードのクラスタ上での実行のためのバッチシーケンスの選択及びコンフィギュレーションを容易にするための図7の例示的なユーザインタフェースのバッチ処理モジュールを示す図である。FIG. 25 is a diagram illustrating the exemplary user interface batch processing module of FIG. 7 for facilitating selection and configuration of a batch sequence for execution on the multiple node cluster of FIG.

図26は、ハドゥープデータモニタリングツールのコンフィギュレーションを容易にするためのハドゥープタブを含む図7の例示的なユーザインタフェースのモニタリングモジュールを示す図である。FIG. 26 is a diagram illustrating the example user interface monitoring module of FIG. 7 including a hadoop tab for facilitating the configuration of a hadoop data monitoring tool.

図27は、ガングリアデータモニタリングツールのコンフィギュレーションを容易にするための図26のモニタリングモジュールのガングリアタブを示す図である。FIG. 27 is a diagram illustrating a ganglia tab of the monitoring module of FIG. 26 for facilitating configuration of the ganglia data monitoring tool.

図28は、システムタップデータモニタリングツールのコンフィギュレーションを容易にするための図26のモニタリングモジュールのシステムタップタブを示す図である。FIG. 28 illustrates a system tap tab of the monitoring module of FIG. 26 for facilitating configuration of the system tap data monitoring tool.

図29は、仮想メモリ統計(VMStat)及び入力/出力統計(IOStat)のコンフィギュレーションを容易にするための図26のモニタリングモジュールのI/O時間タブを示す図である。FIG. 29 is a diagram illustrating an I / O time tab of the monitoring module of FIG. 26 for facilitating configuration of virtual memory statistics (VMStat) and input / output statistics (IOStat).

図30は、図1の複数ノードのクラスタのシステムコンフィギュレーションの展開を容易にし図26〜29のモニタリングツールによってモニタされたデータの集約を容易にするための図7の例示的なユーザインタフェースの制御及び状態モジュールを示す図である。30 controls the example user interface of FIG. 7 to facilitate deployment of the system configuration of the multiple node cluster of FIG. 1 and to facilitate the aggregation of data monitored by the monitoring tools of FIGS. FIG.

図31は、図1のコンフィギュレータのウェブベースのデータアグリゲータを示す図1のクラウドコンピューティングシステムの他のブロック図である。FIG. 31 is another block diagram of the cloud computing system of FIG. 1 showing the web-based data aggregator of the configurator of FIG.

図32は、合成テストワークロードを生成するための複数のユーザ定義のワークロードパラメータを示す例示的なテーブルを示す図である。FIG. 32 is a diagram illustrating an exemplary table showing a plurality of user-defined workload parameters for generating a synthetic test workload.

図33は、合成テストワークロードを生成するように動作するシンセサイザと、合成テストワークロードの少なくとも一部をアクティベートして実行するように動作するノードの合成ワークロードエンジンと、を含む例示的な合成テストワークロードシステムのブロック図である。FIG. 33 illustrates an exemplary synthesis that includes a synthesizer that operates to generate a synthetic test workload and a synthetic workload engine of nodes that operate to activate and execute at least a portion of the synthetic test workload. 1 is a block diagram of a test workload system.

図34は、実際のワークロード及び合成テストワークロードの少なくとも一方でクラウドコンピューティングシステムをコンフィギュアするための図3のコンフィギュレータの動作の例示的な方法のフローチャートである。FIG. 34 is a flowchart of an exemplary method of operation of the configurator of FIG. 3 for configuring a cloud computing system at least one of an actual workload and a synthetic test workload.

図35は、合成テストワークロードでクラウドコンピューティングシステムをコンフィギュアするための図3のコンフィギュレータの動作の例示的な方法のフローチャートである。FIG. 35 is a flowchart of an exemplary method of operation of the configurator of FIG. 3 for configuring a cloud computing system with a synthetic test workload.

図36は、図1の複数ノードのクラスタの少なくとも1つのノードのブート時間コンフィギュレーションを選択するための図3のコンフィギュレータの動作の例示的な方法のフローチャートである。36 is a flowchart of an exemplary method of operation of the configurator of FIG. 3 for selecting a boot time configuration of at least one node of the multi-node cluster of FIG.

図37は、ノードの少なくとも1つのブート時間パラメータを修正するための図1の複数ノードのクラスタのノードの動作の例示的な方法のフローチャートである。FIG. 37 is a flowchart of an exemplary method of operation of a node of the multi-node cluster of FIG. 1 to modify at least one boot time parameter of the node.

図38は、図1の複数ノードのクラスタの1つ以上のノードのブート時間コンフィギュレーションを修正するための図1のクラウドコンピューティングシステムの動作の例示的な方法のフローチャートである。38 is a flowchart of an exemplary method of operation of the cloud computing system of FIG. 1 to modify the boot time configuration of one or more nodes of the multiple node cluster of FIG.

図39は、図1の複数ノードのクラスタの少なくとも1つのノードの通信ネットワークコンフィギュレーションを修正するための図3のコンフィギュレータの動作の例示的な方法のフローチャートである。39 is a flowchart of an exemplary method of operation of the configurator of FIG. 3 to modify the communication network configuration of at least one node of the multiple node cluster of FIG.

図40は、エミュレートされたノードクラスタのネットワークコンフィギュレーションに基づきクラウドコンピューティングシステムに対して複数ノードのクラスタを選択するための図3のコンフィギュレータの動作の例示的な方法のフローチャートである。FIG. 40 is a flowchart of an exemplary method of operation of the configurator of FIG. 3 for selecting a multi-node cluster for a cloud computing system based on a network configuration of emulated node clusters.

図41は、エミュレートされたノードクラスタのネットワークコンフィギュレーションに基づきクラウドコンピューティングシステムに対して複数ノードのクラスタを選択しコンフィギュアするための図3のコンフィギュレータの動作の他の例示的な方法のフローチャートである。41 is a flowchart of another exemplary method of operation of the configurator of FIG. 3 to select and configure a multi-node cluster for a cloud computing system based on the network configuration of the emulated node cluster. It is.

図42は、ノードクラスタの複数の通信ネットワーク特性を識別する例示的なデータファイルを示す図である。FIG. 42 is a diagram illustrating an example data file that identifies multiple communication network characteristics of a node cluster.

図43は、図1の複数ノードのクラスタを選択するための図3のコンフィギュレータの動作の例示的な方法のフローチャートである。43 is a flowchart of an exemplary method of operation of the configurator of FIG. 3 for selecting a multi-node cluster of FIG.

図44は、図1の複数ノードのクラスタを選択するための図3のコンフィギュレータの動作の他の例示的な方法のフローチャートである。FIG. 44 is a flowchart of another exemplary method of operation of the configurator of FIG. 3 for selecting a cluster of multiple nodes of FIG.

図45は、図1の複数ノードのクラスタのハードウェアコンフィギュレーションを選択するための図3のコンフィギュレータの動作の例示的な方法のフローチャートである。45 is a flowchart of an exemplary method of operation of the configurator of FIG. 3 for selecting a hardware configuration for the cluster of multiple nodes of FIG.

図46は、図1の複数ノードのクラスタのハードウェアコンフィギュレーションを選択するための図3のコンフィギュレータの動作の他の例示的な方法のフローチャートである。FIG. 46 is a flowchart of another exemplary method of operation of the configurator of FIG. 3 for selecting a hardware configuration for the multi-node cluster of FIG.

図47は、複数ノードのクラスタのモニタされた性能特性に基づき図1の複数ノードのクラスタに対してコンフィギュレーションパラメータを選択するための図3のコンフィギュレータの動作の例示的な方法のフローチャートである。47 is a flowchart of an exemplary method of operation of the configurator of FIG. 3 for selecting configuration parameters for the multi-node cluster of FIG. 1 based on the monitored performance characteristics of the multi-node cluster.

図48は、複数ノードのクラスタのモニタされた性能特性に基づき図1の複数ノードのクラスタに対してコンフィギュレーションパラメータを選択するための図3のコンフィギュレータの動作の他の例示的な方法のフローチャートである。48 is a flowchart of another exemplary method of operation of the configurator of FIG. 3 to select configuration parameters for the multi-node cluster of FIG. 1 based on the monitored performance characteristics of the multi-node cluster. is there.

ここに開示される実施形態は、クラウドコンピューティングシステムに関して説明されるが、本開示の方法及びシステムは、ワークロードを協働して実行する複数のノードを含む任意の適切なコンピューティングシステムに実装されてよい。   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 cloud computing system 10 according to various embodiments that is configured to deliver computing power and storage capacity as a service to an end user. The cloud computing system 10 includes a control server 12 operably coupled to a cluster 14 of multiple nodes. A multi-node cluster 14 is connected to a distributed communication network 18 and each node 16 includes local processing capabilities and memory. Specifically, each node 16 includes at least one processor 40 (FIG. 2) and at least one memory 42 (FIG. 2) accessible by the processor 40. The communication network 18 is, for example, an Internet protocol (IP) format including a Transmission Control Protocol / Internet Protocol (TCP / IP) or a User Datagram Protocol (UDP), Ethernet ( Any suitable computer network protocol such as an Ethernet network, a serial network, or other local or wide area network (LAN or WAN).

ここに述べられるように、ノード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 node 16 is selected by the control server 12 to designate a cluster 14 of nodes from a cloud of available nodes 16 connected to the communication network 18. The available nodes 16 are provided, for example, on one or more server storage racks in the data center and include various hardware configurations. In one embodiment, an available node 16 from multiple data centers and / or other hardware providers is selected as a control server for selection and configuration as a multi-node cluster 14 for the cloud computing system 10. 12 is accessible. For example, one or more third party data centers (eg, Amazon Web Services, etc.) and / or user-provided hardware may be configured for cloud computing by the control server 12. In one example, thousands of nodes 16 may be available for selection and configuration by the control server 12, but any number of nodes 16 may be available. Although five nodes 16 are shown in FIG. 1, any suitable number of nodes 16 may be selected for the cloud computing system 10. The control server 12 includes one or more computing devices (exemplarily server computers) each including one or more processors. In the illustrated embodiment, the control server 12 is a dedicated control server 12 that is physically separated from the node cluster 14. In one embodiment, the control server 12 may be physically remote from the data center that houses the available nodes 16. Alternatively, the control server 12 may be one or more nodes 16 of a selected cluster 14 consisting of multiple nodes. The control server 12 is a cloud that operates to allocate and configure multiple nodes 16, initiate workloads on the nodes 16, collect and report performance data, etc., as described herein. Functions as a computing configuration system.

制御サーバ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 control server 12 illustratively includes a configurator 22, a load generator 24, and a load balancer 26. The configurator 22, load generator 24, and load balancer 26, as referred to herein, execute the one or more software or firmware codes stored in internal or external memory accessible by one or more processors. The processor is provided. The software / firmware code includes instructions corresponding to the configurator 22, load generator 24, and load balancer 26, which, when executed by the one or more processors, perform the various functions described herein. One or more processors are executed. Configurator 22, load generator 24 and / or load balancer 26 may alternatively be application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), digital signal processors (DSPs), hardware logic elements or the like. Combinations may be included. The configurator 22 selects and configures one or more nodes 16 to be included in the multi-node cluster 14, configures the parameters of the communication network 18, as described herein, on the multi-node cluster 14. Operate for selecting, configuring and deploying workload container modules and workloads for execution on and collecting and analyzing performance data associated with the execution of the workload . The configurator 22 is provided to the node 16 for configuring software on the node 16 and processed at the node 16, and to the load generator 24 for providing workload request parameters to the load generator 24. It operates to generate at least one configuration file 30 that is provided.

ロードジェネレータ24は、ワークロード実行のためにノードクラスタ14によって使用される入力としての役割を果たす要求を生成するように動作する。つまり、ノードクラスタ14は、要求、並びに、要求に付随して提供された入力パラメータ及びデータに基づき、ワークロードを実行する。一実施形態では、ロードジェネレータ24からの要求はユーザによって開始される。例えば、ユーザ又は顧客は、指定された検索ターム又はデータセットに対する検索動作又はソート動作をそれぞれ要求してよく(例えばユーザインタフェース200を介して)、ロードジェネレータ24は、対応する検索要求又はソート要求を生成する。一実施形態では、コンフィギュレータ22は、ユーザインタフェース200を介して受信したユーザ要求を記述するコンフィギュレーションファイル30を生成する。ノード16は、検索されるべき識別されたターム又はソートされるべきデータセットを用いてワークロードを実行する。ロードジェネレータ24は、実行されるべきワークロードのタイプに応じて他の適切な要求を生成してよい。ロードバランサ26は、ロードジェネレータ24によって提供された要求を複数ノード16間で分散させて、どのノード16がどの要求を実行するのかを指示するように動作する。また、ロードバランサ26は、ロードジェネレータ24からの要求を複数部分に分割すると共に複数のノード16がその要求を並列動作で実行するよう動作するように、それら複数部分を複数ノード16に分散させるようにも動作する。   The load generator 24 operates to generate requests that serve as inputs used by the node cluster 14 for workload execution. That is, the node cluster 14 executes the workload based on the request and the input parameters and data provided accompanying the request. In one embodiment, the request from the load generator 24 is initiated by the user. For example, a user or customer may request a search or sort operation for a specified search term or data set, respectively (eg, via user interface 200), and load generator 24 may send a corresponding search or sort request. Generate. In one embodiment, configurator 22 generates a configuration file 30 that describes a user request received via user interface 200. Node 16 executes the workload with the identified terms to be searched or the data set to be sorted. The load generator 24 may generate other suitable requests depending on the type of workload to be executed. The load balancer 26 operates to distribute which requests provided by the load generator 24 among the plurality of nodes 16 and indicate which nodes 16 execute which requests. Further, the load balancer 26 divides the request from the load generator 24 into a plurality of parts and distributes the plurality of parts to the plurality of nodes 16 so that the plurality of nodes 16 operate to execute the request in parallel operation. Also works.

コンフィギュレータ22は、例示的には、ユーザがインターネットを介してコンフィギュレータ22にアクセスすることのできるようなウェブベースのものであるが、コンフィギュレータ22は、任意の適切なネットワーク又は通信リンクを介してアクセスされてよい。図1に示される例示的なユーザコンピュータ20は、ディスプレイ21と、プロセッサ32(例えば中央処理ユニット(CPU))と、プロセッサ32によってアクセス可能なメモリ34と、を含む。コンピュータ20は、デスクトップコンピュータ、ラップトップ、モバイルデバイス、スマートフォン等の任意の適切なコンピューティングデバイスを含み得る。ユーザコンピュータ20上では、ソフトウェアコード又はファームウェアコードを含むウェブブラウザ36が実行されており、ウェブブラウザ36は、コンフィギュレータ22によって提供されたグラフィカルユーザインタフェースにアクセスするために用いられ、またグラフィカルユーザインタフェースをディスプレイ21上に表示するためにも用いられる。例えば図7〜30に図示されるグラフィカルユーザインタフェース200を参照されたい。   The configurator 22 is illustratively web-based such that a user can access the configurator 22 via the Internet, but the configurator 22 is accessed via any suitable network or communication link. It's okay. The exemplary user computer 20 shown in FIG. 1 includes a display 21, a processor 32 (eg, a central processing unit (CPU)), and a memory 34 accessible by the processor 32. The computer 20 may include any suitable computing device such as a desktop computer, laptop, mobile device, smart phone or the like. Running on the user computer 20 is a web browser 36 containing software or firmware code, which is used to access the graphical user interface provided by the configurator 22 and displays the graphical user interface. 21 is also used for displaying on the screen. See, for example, the graphical user interface 200 illustrated in FIGS.

図示されるものに代替可能な、コンポーネントの種々の他の配置及びそれに対応するクラウドコンピューティングシステム10の接続性が利用可能であり、そのようなコンポーネントの配置及び対応する接続性は、ここに開示される実施形態に従うものとする。   Various other arrangements of components and corresponding connectivity of the cloud computing system 10 that can be substituted for those shown are available, and the arrangement of such components and the corresponding connectivity are disclosed herein. According to the preferred embodiment.

図2を参照すると、コンフィギュレータ22によってコンフィギュアされる図1のノードクラスタ14の例示的なノード16が、一実施形態に従って図示されている。ノード16は、メモリ42内に記憶されたソフトウェア又はファームウェアを実行するように動作する少なくとも1つのプロセッサ40を含む。メモリ42は、1つ以上の物理的メモリロケーションを含み、プロセッサ40の内部にあってもよいし、外部にあってもよい。   Referring to FIG. 2, an exemplary node 16 of the node cluster 14 of FIG. 1 that is configured by the configurator 22 is illustrated according to one embodiment. Node 16 includes at least one processor 40 that operates to execute software or firmware stored in memory 42. Memory 42 includes one or more physical memory locations and may be internal to processor 40 or external.

図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 node 16, which includes operating system 44, kernel mode measurement agent 46, network topology driver 48, and user mode measurement agent. 50, web application server 52, workload container module 54, service-oriented architecture runtime agent 56, and composite workload engine 58. In the illustrated embodiment, the kernel mode measurement agent 46 and network topology driver 48 from the operating system 44 to access specific data such as, for example, data from an input / output (I / O) device of the node 16. Requests the privilege of On the other hand, the user mode measurement agent 50, the web application server 52, the workload container module 54, the service-oriented architecture runtime agent 56, and the composite workload engine 58 illustratively have access to data or their respective functions. In order to do so, no privileges from the operating system 44 are required.

オペレーティングシステム44は、例えば、アプリケーション、特権及びハードウェアリソースを管理すること、並びに、プロセッサ時間及びメモリ使用量を割り振ることを含む、ノード16の全体動作を管理する。ネットワークトポロジドライバ48は、通信ネットワーク18(図1)上でのノード16のネットワーク特性及びネットワークパラメータを制御するように動作する。一実施形態では、ネットワークトポロジドライバ48は、コンフィギュレータ22(図1)から受信したコンフィギュレーションファイル28(図1)に基づき、ノード16に関連付けられたネットワーク特性を変更するように動作する。   The operating system 44 manages the overall operation of the node 16 including, for example, managing applications, privileges and hardware resources, and allocating processor time and memory usage. The network topology driver 48 operates to control the network characteristics and network parameters of the node 16 on the communication network 18 (FIG. 1). In one embodiment, network topology driver 48 operates to change the network characteristics associated with node 16 based on configuration file 28 (FIG. 1) received from configurator 22 (FIG. 1).

また、ネットワークソフトウェアスタック(図示せず)が各ノード16で記憶され実行される。ネットワークソフトウェアスタックは、図1のネットワーク18上での通信を容易にするためのネットワークソケットを含む。ここに述べられる実施形態においては、ネットワークソケットは、ネットワーク通信のためのアドレスと、1つ以上のポート番号と、が割り当てれらたTCPソケットを含む。一実施形態では、ネットワークソフトウェアスタックは、オペレーティングシステム44のネットワークドライバを利用する。   A network software stack (not shown) is stored and executed at each node 16. The network software stack includes a network socket to facilitate communication over the network 18 of FIG. In the embodiments described herein, network sockets include TCP sockets that are assigned an address for network communication and one or more port numbers. In one embodiment, the network software stack utilizes a network driver of the operating system 44.

カーネルモード測定エージェント46及びユーザモード測定エージェント50の各々は、ノード16での動作及びワークロード性能をモニタするためのデータを収集し解析するように動作する。カーネルモード測定エージェント46は、例えば、プロセッサ命令の数、プロセッサ利用、各I/O動作のために送信され及び受信されたバイト数、並びに他の適切なデータ、又は、これらの組み合わせをモニタする。例示的なカーネルモード測定エージェント46は、システムタップ(SystemTap)ソフトウェアを含む。ユーザモード測定エージェント50は、データへのアクセスのためにオペレーティングシステム44からシステム特権を要求する必要のない性能データを収集する。この性能データの例としては、個々のサブタスクの開始時間と完了時間とを表示するアプリケーション特有ログ、そのようなタスクが実行される速度、システムによって利用された仮想メモリの量、あるタスクのために処理された入力記録の量、等が挙げられる。一実施形態では、エージェント46,50及び/又は他のモニタリングツールは、各ノード16に予めインストールされており、コンフィギュレーションファイル28(図1)に基づき各ノード16でコンフィギュレータ22によってコンフィギュアされる。代替的には、コンフィギュアされたエージェント46,50及び/又は他のモニタリングツールを、コンフィギュレータ22が、ワークロード展開に際してノード16へとロードする。   Each of kernel mode measurement agent 46 and user mode measurement agent 50 operates to collect and analyze data for monitoring operation and workload performance at node 16. The kernel mode measurement agent 46 monitors, for example, the number of processor instructions, processor utilization, the number of bytes transmitted and received for each I / O operation, and other suitable data, or combinations thereof. An exemplary kernel mode measurement agent 46 includes SystemTap software. User mode measurement agent 50 collects performance data that does not require system privileges from operating system 44 to access the data. Examples of this performance data include application-specific logs that show the start and completion times of individual subtasks, the speed at which such tasks are executed, the amount of virtual memory utilized by the system, and for certain tasks The amount of input records processed, etc. In one embodiment, agents 46, 50 and / or other monitoring tools are pre-installed on each node 16 and configured by the configurator 22 at each node 16 based on the configuration file 28 (FIG. 1). Alternatively, the configured agent 46, 50 and / or other monitoring tools are loaded by the configurator 22 onto the node 16 during workload deployment.

ウェブアプリケーションサーバ52は、ノード16と、図1の制御サーバ12及びノードクラスタ14の他のノード16の両者と、の間での通信を制御するアプリケーションである。ウェブアプリケーションサーバ52は、ノード16間でのファイル転送、及び、制御サーバ12とノードとの間でのファイル転送をもたらす。例示的なウェブアプリケーションサーバ52は、アパッチトムキャット(Apache Tomcat)である。   The web application server 52 is an application that controls communication between the node 16 and both the control server 12 and the other nodes 16 of the node cluster 14 of FIG. The web application server 52 provides file transfer between the nodes 16 and file transfer between the control server 12 and the nodes. An exemplary web application server 52 is Apache Tomcat.

また、ワークロードコンテナモジュール54も、各ノード16のメモリ42内に記憶されている。ここに述べられるように、制御サーバ12は、ユーザ選択と、ワークロードコンテナモジュール54のコンフィギュレーションとに基づき、ワークロードコンテナモジュール54をノード16に提供する。ワークロードコンテナモジュール54の例としては、アパッチハドゥープ(Apache Hadoop)、メムキャッシュディー(Memcached)、アパッチカサンドラ(Apache Cassandra)、又は、市販されていないユーザによって提供されたカスタムワークロードコンテナモジュールが挙げられる。一実施形態では、ワークロードコンテナモジュール54は、プロセッサによって実行されるときにメモリ42内でのデータ記憶とノード16間データ通信とを管理するコードモジュールを備えるファイルシステム55を含む。例示的なファイルシステム55は、アパッチハドゥープワークロードコンテナの分散型ファイルシステム(HDFS)である。ファイルシステム55は、データ及びファイルのコピーをノードメモリ42内に複数記憶することによって、データ複製をサポートする。   The workload container module 54 is also stored in the memory 42 of each node 16. As described herein, the control server 12 provides the workload container module 54 to the node 16 based on the user selection and the configuration of the workload container module 54. Examples of the workload container module 54 include Apache Hadoop, Memcached, Apache Cassandra, or a custom workload container module provided by a non-commercial user. It is done. In one embodiment, workload container module 54 includes a file system 55 that includes a code module that manages data storage in memory 42 and data communication between nodes 16 when executed by a processor. The exemplary file system 55 is an Apache hadoop workload container distributed file system (HDFS). File system 55 supports data replication by storing multiple copies of data and files in node memory 42.

随意的なサービス志向アーキテクチャ(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) runtime agent 56 and an optional composite workload engine 58. The SOA runtime agent 56 is another type of workload container module that operates to coordinate workload execution when executed by a processor. The SOA runtime agent 56 performs a service function for caching or serving a frequently used file (for example, an image or the like), for example, in order to speed up a workload operation. An example of the SOA runtime agent 56 is Google Protocol Buffers. Synthetic workload engine 58, as described herein, is a workload container that operates to activate and execute a synthetic test workload received via configurator 22 (FIG. 1) when executed by a processor. Includes modules. In the illustrated embodiment, the synthetic workload engine 58 is tailored to run on a synthetic test workload rather than an actual non-test workload.

図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 configurator 22 of the control server 12 according to one embodiment is shown. The configurator 22 illustratively includes an authenticator 70, a node configurator 72, a network configurator 74, a workload container configurator 76, a workload configurator 78, a batch processor 80, and a data monitor configurator 82. And a data aggregator 84, each of which is stored in memory (eg, memory 90) accessible by one or more processors 22 of control server 12 to perform the various functions described herein. One or more processors 22 of the control server 12 executing respective software code modules or firmware code modules. Authenticator 70 includes one or more processors 22 that execute an authentication code module and operates to authenticate user access to configurator 22 as described herein with respect to FIG. Node configurator 72 includes one or more processors 22 that execute a node configuration code module and, as described herein with respect to FIGS. 8-10, a multi-node cluster having specified hardware and operational configurations. In order to identify 14, it operates to select and configure node 16. The network configurator 74 includes one or more processors 22 that execute a network configuration code module, such as testing and performance analysis and / or adjusting system power consumption, as described herein with respect to FIGS. Therefore, it operates to adjust the network parameters of the communication network 18 of FIG. Workload container configurator 76 includes one or more processors 22 that execute a workload container configuration code module, and as described herein with respect to FIGS. 18-21, a workload container for operation on node 16. Operates to select and configure a module. Workload configurator 78 includes one or more processors 22 that execute the workload configuration code module to select and configure the workload for execution in the workload container selected by node 16. Operate. Workload configurator 78 illustratively includes a code synthesizer 79 that includes one or more processors 22 that execute a synthetic test workload generation code module, which is now described with respect to FIGS. 23 and 32-35. As stated, it operates to generate a synthetic test workload based on user-defined workload parameters. The batch processor 80 includes one or more processors 22 that execute batch processor code modules and operate to initiate batch processing of multiple workloads as described herein with respect to FIG. Are executed in a sequence on the node cluster 14. The data monitor configurator 82 includes one or more processors 22 that execute a data monitoring configuration code module, as described herein with respect to FIGS. Operate to configure a monitoring tool to collect. Data aggregator 84 includes one or more processors 22 that execute data aggregation code modules and collect and aggregate performance data from each node 16 as described herein with respect to FIGS. 30 and 31. And operate to generate logs, statistics, graphs, and other representations of data.

コンフィギュレータ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 configurator 22 is illustratively stored in the memory 90 of the control server 12. Memory 90 may be internal or external to one or more processors of control server 12, and may include one or more physical memory locations. The memory 90 illustratively stores the configuration files 28 and 30 of FIG. 1 generated by the configurator 22. The memory 90 stores a log file 98 generated by the node 16 and transmitted to the control server 12 following execution of the workload. As shown, an operating system image file 92, a workload container image file 94 selected by the workload container configurator 76, and a workload image file 96 selected or generated by the workload configurator 78. , Stored in the memory 90. In one embodiment, a plurality of operating system image files 92 are stored in the memory 90 and the user can select an operating system to be installed on each node 16 via the configurator 22. In one embodiment, a user can upload an operating system image file 92 to be installed on node 16 from a remote memory (eg, memory 34 of computer 20 of FIG. 1) to control server 12. The workload container image file 94 is generated by the workload container configurator 76 based on the user's selection and configuration of the workload container module from a plurality of available workload container modules. In the embodiment described herein, the workload container configurator 76 configures a corresponding workload container image file 94 based on user input received via the user interface 200 of FIGS. Similarly, the workload configurator 78 generates a workload image file 96 based on a user selection of a workload from one or more available workloads via the user interface 200 of the control server 12 to configure. To do. The workload image file 96 includes a pre-defined actual workload selected by the workload configurator 78 based on user input or a synthetic test workload generated by the workload configurator 78 based on user input.

一実施形態では、メモリ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 memory 90 is accessible by each node 16 of the node cluster 14 and the control server 12 provides a pointer or other identifier that identifies the location within the memory 90 of each image file 92, 94, 96. The data is sent to each node 16 of the node cluster 14. The node 16 retrieves each image file 92, 94, 96 from the memory 90 based on the pointer. Alternatively, the control server 12 loads the image file 92, 94, 96 and the appropriate configuration file 28 into each node 16, or by any other suitable mechanism. A configuration file 28 is provided to the node 16.

ここに述べられるように、コンフィギュレータ22は、ユーザ選択及びユーザ入力に基づき自動的に以下の作用をするように動作する。即ち、所望のリソース(例えばノード16)を割り振り、ノード16を予めコンフィギュアし(例えばネットワークトポロジ、メモリ特性)、ワークロードコンテナソフトウェアを各ノード16にインストールし、ユーザ提供のワークロードソフトウェア及びデータをノード16に展開し、モニタリングツール(例えばガングリア(Ganglia)、システムタップ(SystemTap))を起動して各ノード16から性能データを収集し始め、ワークロード実行に際してライブ状態更新をユーザに提供し、ワークロードの結果及びモニタリングツールによって集められた情報を含めユーザによって要求された全データを収集し、ユーザによって要求された性能データを処理し、まとめ、表示し、そして他の適切な機能を行う。更に、ユーザは、ここに述べられるように、コンフィギュレータ22を用いて、順次又は並列で実行されるワークロードのシーケンスを作成して展開してよい。ユーザは、実行に際して又は実行の合間にコンフィギュレーション又は入力パラメータの随意的な調節をしながら、任意のワークロード又は全てのワークロードを繰り返し実行してもよい。また、コンフィギュレータ22は、ユーザによる要求に基づき、ノードクラスタ14の指定されたデータベースノード16上でデータを記憶するようにも動作する。   As described herein, the configurator 22 operates to automatically perform the following actions based on user selection and user input. That is, a desired resource (for example, node 16) is allocated, node 16 is configured in advance (for example, network topology, memory characteristics), workload container software is installed in each node 16, and user-provided workload software and data are installed. Deploy to nodes 16, start monitoring tools (eg Ganglia, SystemTap) and start collecting performance data from each node 16, provide live status updates to users when running workloads, Collect all data requested by the user, including loading results and information gathered by monitoring tools, process, summarize, display and perform other appropriate functions requested by the user. Further, the user may create and deploy a sequence of workloads that are executed sequentially or in parallel using the configurator 22 as described herein. The user may repeatedly execute any or all workloads during or between executions, with optional adjustment of configuration or input parameters. The configurator 22 also operates to store data on the designated database node 16 of the node cluster 14 based on a user request.

図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 configurator 22 of FIGS. 1 and 3 to configure a cloud computing system. 1 and 3 are referred to throughout the description of FIG. In the illustrated embodiment, the configurator 22 is based on a plurality of user selections received via a user interface, such as the user interface 200 shown in FIGS. 7-30, according to the flow diagram 100 of FIG. To configure. In block 102, the node configurator 72 of the configurator 22 selects the multi-node cluster 14 from the plurality of available nodes 16. Each node 16 of the multi-node cluster 14 includes at least one processing device 40 and memory 42 (FIG. 2) to share the workload processing with other nodes 16 of the cluster 14 as described herein. To work. In the illustrated embodiment, multiple nodes 16 are available for selection by configurator 22, and configurator 22 selects a subset of available nodes 16 as node cluster 14. In one embodiment, the configurator 22 selects at least one type of data to be collected from each node 16 of the multi-node cluster 14 based on the user selection received via the user interface and the data aggregator 84 of the configurator 22. Collects and aggregates the at least one type of data from each node 16 of the multi-node cluster 14 as described herein with respect to FIGS.

ブロック104では、コンフィギュレータ22のワークロードコンテナコンフィギュレータ76は、複数ノードからなる選択されたクラスタ14の各ノード16上での動作のためのワークロードコンテナモジュールを選択する。ワークロードコンテナモジュールは、ノード16によって実行されるときにワークロードの実行を開始し連携させるように動作する選択可能コードモジュールを含む。一実施形態では、ワークロードコンテナモジュールは、図18に関してここに述べられるように、複数の利用可能ワークロードコンテナモジュールから選択される。一実施形態では、コンフィギュレータ22は、ユーザインタフェースを介して受信したユーザ入力に基づき、各ノード16上のワークロードコンテナモジュールの少なくとも1つの動作パラメータを修正する。この少なくとも1つの動作パラメータは、ここに述べられるように、リード/ライト動作、ファイルシステム動作、ネットワークソケット動作及びソーティング動作の少なくとも1つに関連付けられている。   At block 104, the workload container configurator 76 of the configurator 22 selects a workload container module for operation on each node 16 of the selected cluster 14 comprising multiple nodes. The workload container module includes a selectable code module that, when executed by the node 16, operates to initiate and coordinate the execution of the workload. In one embodiment, the workload container module is selected from a plurality of available workload container modules, as described herein with respect to FIG. In one embodiment, configurator 22 modifies at least one operational parameter of the workload container module on each node 16 based on user input received via the user interface. The at least one operational parameter is associated with at least one of a read / write operation, a file system operation, a network socket operation, and a sorting operation, as described herein.

一実施形態では、選択されたワークロードコンテナモジュールは、クラウドコンピューティングシステム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, memory 34 of FIG. 1), and the configurator 22 is remote The custom workload container module stored in the memory is loaded into each node 16 of the multi-node cluster 14. For example, custom workload container modules include non-commercial workload container modules provided by users. In one embodiment, the custom workload container module includes a configuration file that includes user-defined instructions and parameters for executing the workload. Examples of instructions include instructions for testing workload parameters that are not often found in typical workloads and / or are specific to a particular workload. Other examples of custom workload container module instructions include instructions for redirecting execution output or log files to a different location for further analysis. Alternatively, the workload container module is stored in a computing system 10 such as Apache Hadoop, Memchashed, Apache Cassandra, etc. (eg, memory 90 of FIG. 3). And a commercially available third party workload container module available for selection and deployment by the configurator 22.

ブロック106では、コンフィギュレータ22のワークロードコンフィギュレータ78は、複数ノードのクラスタ14上でのワークロードコンテナモジュールでの実行のためのワークロードを選択する。選択されたワークロードの処理は、ここに述べられるように、複数ノードのクラスタ14に分散される。一実施形態では、ワークロードは、実際のワークロード及び合成テストワークロードの少なくとも一方から選択される。1つ以上の実際の予めコンパイルされたワークロードが、制御サーバ12のプロセッサによってアクセス可能なメモリ(例えば図1のメモリ34)内に記憶され、コンフィギュレータ22は、選択された実際のワークロードをノード16へとロードする。合成テストワークロードは、図23及び図32〜35に関してここに述べられるように、ユーザインタフェース200を介して受信したユーザ定義のワークロードパラメータに基づきコンフィギュレータ22によって生成され、各ノード16へとロードされる。一実施形態では、コンフィギュレータ22は、図11〜17に関してここに述べられるように、ユーザインタフェース200を介して受信したユーザ入力に基づき、少なくとも1つの通信ネットワークパラメータを調節して、選択されたワークロードの実行に際しての通信ネットワーク18の性能を修正し又は制限する。   At block 106, the workload configurator 78 of the configurator 22 selects a workload for execution in the workload container module on the multi-node cluster 14. The processing of the selected workload is distributed across a multi-node cluster 14 as described herein. In one embodiment, the workload is selected from at least one of an actual workload and a synthetic test workload. One or more actual pre-compiled workloads are stored in a memory accessible by the processor of the control server 12 (eg, memory 34 of FIG. 1), and the configurator 22 Load to 16. The synthetic test workload is generated by the configurator 22 based on user-defined workload parameters received via the user interface 200 and loaded into each node 16 as described herein with respect to FIGS. 23 and 32-35. The In one embodiment, configurator 22 adjusts at least one communication network parameter based on user input received via user interface 200 as described herein with respect to FIGS. 11-17 to select a selected workload. Modify or limit the performance of the communication network 18 during execution.

図示された実施形態では、コンフィギュレータ22は、選択可能ノードデータ(例えば図8のテーブル258)と、選択可能ワークロードコンテナデータ(例えば図18の選択可能入力352)と、選択可能ワークロードデータ(例えば図22の選択可能入力418)と、を含むユーザインタフェース200(図7〜30)を提供する。複数ノードのクラスタ14は、選択可能ノードデータのユーザ選択に基づき選択され、ワークロードコンテナモジュールは、選択可能ワークロードコンテナデータのユーザ選択に基づき選択され、ワークロードは、選択可能ワークロードデータのユーザ選択に基づき選択される。   In the illustrated embodiment, the configurator 22 selects selectable node data (eg, table 258 of FIG. 8), selectable workload container data (eg, selectable input 352 of FIG. 18), and selectable workload data (eg, A user interface 200 (FIGS. 7-30) is provided including selectable inputs 418) of FIG. A multi-node cluster 14 is selected based on a user selection of selectable node data, a workload container module is selected based on a user selection of selectable workload container data, and a workload is a user of selectable workload data. Selected based on selection.

図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 configurator 22 of FIGS. 1 and 3 to configure the cloud computing system 10. 1 and 3 are referred to throughout the description of FIG. At block 122, the workload container configurator 76 is for operation on each node 16 of the cluster 14 of multiple nodes of the cloud computing system 10 based on a user selection received via a user interface (eg, the user interface 200). The workload container module is selected from a plurality of available workload container modules. In the illustrated embodiment, the workload container module is selected based on selectable workload container data such as, for example, inputs 352, 360, 362 in FIG. 18 and inputs 353, 401 in FIG. The selected workload container module includes selectable code modules (eg, selectable with inputs 360, 362 in FIG. 18 and input 401 in FIG. 21) that operate to coordinate the execution of the workload. In one embodiment, the plurality of available workload container modules includes custom workload container modules, as described herein. In block 124, the node configurator 72 selects each node 16 of the multi-node cluster 14 with the selected workload container module to execute the workload so that the processing of the workload is distributed to the multi-node cluster. Configure. As described herein, each node 16 includes a processing device 40 and memory 42 and operates to share workload operations with other nodes 16 of the multi-node cluster 14. The configurator 22 installs the selected workload container module on each node 16 of the multi-node cluster 14 and starts executing the workload on the selected workload container module on the multi-node cluster 14.

図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 configurator 22 of FIGS. 1 and 3 to configure the cloud computing system 10. 1 and 3 are referred to throughout the description of FIG. At block 142, the node configurator 72 of the configurator 22 selects from the multiple available nodes 16 for the cloud computing system 10 the multi-node cluster 14 that operates to share the processing of the workload. In the illustrated embodiment, a multi-node cluster 14 is selected based on selectable node data, as described herein.

ブロック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 block 144, the workload container configurator 76 uses the same work for each node 16 based on user input received via the user interface (eg, selectable input 367 and fields 374, 378, 380 of the user interface 200 of FIG. 19). Correct the operating parameters of the load container module. This same workload container module includes a selectable code module that operates to coordinate the execution of the workload based on operational parameters when executed by the node 16. The operational parameter is associated with at least one of a read / write operation, a file system operation, a network socket operation, and a sorting operation, as described herein with respect to FIGS. The configurator 22 may include one or more operational parameters prior to deploying the workload container module to each node 16 or after deploying the workload container module to each node 16 when updating the configuration. To correct. The workload container module, when executed by each node 16, operates to coordinate the execution of the workload on the multi-node cluster 14 based on the modified operating parameters. In one embodiment, the operation parameters include the memory buffer size for read / write operations, the size of data blocks transferred during read / write operations, the number of data blocks stored in the memory 42 of each node 16, files It includes the number of processing threads of each node 16 allocated to process requests to the system 55 and / or the number of data streams that merge when sorting the data. Other suitable operating parameters may be modified as described with respect to FIGS.

図3の制御サーバ12へのユーザアクセスを提供する例示的なユーザインタフェース200が図7〜30に示されている。ユーザインタフェース200は、例示的には、コンピュータ20(図1)のディスプレイ21等のディスプレイ上への表示のためにコンフィギュアされた複数の選択可能画面を含むウェブベースのグラフィカルユーザインタフェース200である。ネイティブユーザインタフェースアプリケーション、コマンドライン駆動インタフェース、プログラム可能API、他の種類のもの、又は、複数のインタフェースの組み合わせ等の他の適切なインタフェースが提供されてもよい。ユーザインタフェース200は、選択可能な入力、フィールド、モジュール、タブ、ドロップ・ダウンメニュー、ボックス及び他の適切な選択可能データ等の、コンフィギュレータ22のコンポーネント70〜84にリンクされると共にそれらへの入力を提供する選択可能データを含む。一実施形態では、ユーザインタフェース200の選択可能データは、それが個別に選択可能になるような方法で描画される。例えば、選択可能データは、マウスポインタによって、ユーザインタフェース200のタッチ画面に触れることによって、キーボードのキーを押下することによって、又は、任意の他の適切な選択メカニズムによって、ユーザにより選択される。データが選択された結果、そのデータが例えばハイライトされ又はチェックされてよく、何らかの選択可能データ(例えばモジュール、ドロップ・ダウンメニュー等)の選択に基づき、新たな画面、メニュー又はポップ・アップウィンドウが現れてよい。   An exemplary user interface 200 that provides user access to the control server 12 of FIG. 3 is shown in FIGS. The user interface 200 is illustratively a web-based graphical user interface 200 that includes a plurality of selectable screens configured for display on a display, such as the display 21 of the computer 20 (FIG. 1). Other suitable interfaces such as native user interface applications, command line driven interfaces, programmable APIs, other types, or combinations of multiple interfaces may be provided. The user interface 200 is linked to and inputs to the components 70-84 of the configurator 22, such as selectable inputs, fields, modules, tabs, drop down menus, boxes and other suitable selectable data. Contains selectable data to provide. In one embodiment, the selectable data of the user interface 200 is rendered in such a way that it can be individually selected. For example, the selectable data is selected by the user by a mouse pointer, by touching the touch screen of the user interface 200, by pressing a key on the keyboard, or by any other suitable selection mechanism. As a result of the selection of the data, the data may be highlighted or checked, for example, and a new screen, menu or pop-up window will appear based on the selection of some selectable data (eg, module, drop down menu, etc.). May appear.

ユーザインタフェース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 user interface 200. As shown in FIG. 7, the user interface 200 allows for user selection by providing access to the configurator 22 when selected, as well as several other user inputs to the configurator 22. Contains selectable modules. Specifically, the authentication and configuration library module 202 includes data representing and linked to the authenticator 70 of the configurator 22. The instance module 204 represents the node configurator 72 of the configurator 22 and comprises data linked thereto. The network configuration module 206 represents the network configurator 74 of the configurator 22 and comprises data linked thereto. The workload container configuration module 208 represents the workload container configurator 76 of the configurator 22 and comprises data linked thereto. The workload configuration module 210 represents the workload configurator 78 of the configurator 22 and comprises data linked thereto. The batch processing module 212 represents the batch processor 80 of the configurator 22 and comprises data linked thereto. The monitoring module 214 represents the data monitor configurator 82 of the configurator 22 and comprises data linked thereto. The control and status module 216 represents the data aggregator 84 of the configurator 22 and comprises data linked thereto. The components 70-84 of the configurator 22 implement their respective functions based on user selections, data and other user inputs provided via modules 202-216 of the user interface 200.

図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 configuration library module 202 has been selected. Based on user input to module 202, authenticator 70 authenticates user access to configurator 22 and loads the previously saved system configuration. Authenticator 70 grants user access to configurator 22 by verifying the credential data in the form of an access key, secret key, and / or EC2 key pair in each field 220, 222, 224. . In the illustrated embodiment, the EC2 key pair in field 224 provides root or initial access to the newly selected node 16 when using module 202 to access the Amazon web services cloud platform. Authenticator 70 loads the previously saved system configuration from a system configuration file (eg, stored in user computer 20 or control server 12 of FIG. 1) based on the user selection of input 238. The system configuration file includes the configuration of the workload and workload container, node 16 and network configuration information, data monitoring / collection settings for the cloud computing system 10, and the system previously saved by the configurator 22. Contains all other configuration information associated with the configuration. By loading the previously saved system configuration file, the configurator 22 is updated with the configuration information from the system configuration file. The system configuration file illustratively includes a JSON file format, but other suitable formats may be provided. After loading the system configuration file, the loaded system configuration may be modified via a module of the user interface 200. When input 240 is selected, authenticator 70 saves the current system configuration of configurator 22 to a file. The authentication data may be included in a saved system configuration file based on selection of selection box 242.

システムコンフィギュレーションファイルは、ウェブベースのユーザインタフェース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 control server 12 via the web-based user interface 200, but other suitable remote method invocation (RMI) may be used to obtain the system configuration file. ) Mechanisms may be used. For example, Apache Hypertext Transfer Protocol (HTTP) server, Apache Tomcat server, Tomcat survlet that passes system configuration file using RMI mechanism, or RMI mechanism Is a custom application (for example, a command line utility) that passes the system configuration file directly to the control server 12.

設定ライブラリ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 configuration library 226 provides a table or list of previously created system configuration files that are available for selection and execution via the selection input 227. Upon selection of input 228, authenticator 70 updates modules 202-216 with configuration information from the system configuration file selected in library 226. The current system configuration (eg, configured via modules 202-216) is saved to a file based on the selection of input 230 and added to library 226, and the system configuration file is selected on input 234. Is deleted from the library 226. With the input 232, the authenticator 70 uploads the system configuration file from the local computer (eg, computer 20 of FIG. 1) to the library 226, or with the input 236, the authenticator 70 receives the system configuration file. Download the file from the remote computer to the library 226 (eg, via the Internet). Library 226 allows one or more previously used system configurations to be quickly loaded and executed. The system configuration files of the library 226 may be selected and executed separately, in parallel, or sequentially on the cloud computing system 10. For example, a plurality of system configuration files may be provided in the library 226 for execution in a batch sequence, in which case the configurator 22 automatically expands each selected system configuration sequentially and each system Run one or more workloads in the configuration. In the illustrated embodiment, as described herein, the system configuration is deployed to the node 16 via the control and status module 216 of FIG. The deployment of the system configuration indicates that the configurator 22 configures the cloud computing system 10 with settings, software and workload information associated with the system configuration file, as described herein with reference to FIG. Accompany. As described herein, the configurator 22 illustratively generates one or more configuration files 28 that are routed to each node 16 to configure each node 16. The configuration file 28 expanded in the node 16 includes all the configuration information included in the system configuration file loaded via the module 202, and after the system configuration file is loaded, via the modules 202 to 216. Including any additional configuration changes made.

図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 instance module 204 for configuring the number and characteristics of the nodes 16 has been selected. Based on user input to the module 204, the node configurator 72 identifies and selects a multi-node cluster 14 having a specified hardware and operational configuration. The instance module 204 includes an instance tab 250, an instance type tab 252, and another instance setting tab 254. With the instance tab 250 selected in FIG. 8, the number of desired nodes 16 to be included in the node cluster 14 is entered into the field 256. The node configurator 72 generates in the table 258 a default list of the number of nodes 16 each having a particular hardware configuration under the desired number of nodes 16 selected by the user in field 256. Table 258 provides a list and configuration description of the multi-node cluster 14 of FIG. Table 258 includes a number of descriptive fields for each node 16, including the node number and name, instance (node) type, memory capacity, number of core processors (eg, CPU), storage capacity. , Quota (quota), reception / transmission quota, and reception / transmission upper limit (cap). The instance type generally describes the relative size and computing power of the nodes, illustratively micro, small, medium, large, x-large (x- large), 2x-large (2x-large), 4x-large (4x-large), etc. (FIG. 9). In the exemplary table 258 of FIG. 8, each node 16 is a large type with 7680 megabytes (MB) of memory capacity, 850 gigabytes (GB) of storage capacity, and a 4-core processor. Node configurator 72 selects node 16 based on user selection of selectable node data, illustratively selection box 259 and selectable input 262. The type of each node 16 can be changed based on the selection of the node 16 in the table 258 (eg, selection using the input 262 or selection by checking the corresponding selection box 259) and selecting the instance type edit input 260. Yes, the edit instance type input 260 displays an instance type tab 252 for the selected node 16. Referring to FIG. 9, the table 264 comprises a list of node 16 types (ie, available server hardware) that are available for selection for use in the node cluster 14. One or more nodes 16 of table 264 are selected at selectable input 265 to replace nodes 16 selected in table 258 of FIG. In one embodiment, the fields of table 264 (eg, memory, VCPUs, storage capacity, etc.) can be modified by the user to further identify the desired hardware performance characteristics of the selected node 16. Depending on available server hardware, fewer or additional node 16 types may be available for selection in table 264. In the illustrated embodiment, multiple nodes 16 are available for each node type listed in table 264 for addition to node cluster 14.

図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 node 16 based on the user input provided in the instance settings tab 254 of the user interface 200. The boot time configuration includes one or more boot time parameters that apply to individual nodes 16, groups of nodes 16, or the entire node cluster 14. Boot time parameters such as computing capacity, system memory capacity and / or storage capacity of each node 16 are based on user input to fields 268, 270, 272, 274 such that each node 16 operates at less than maximum capacity. Limited or restricted. The default boot time parameter is selected based on the user selection at input 269 and the customized boot time parameter is selected based on the user selection at input 271. In the illustrated embodiment, the maximum setting for each adjustable parameter is the default, but the user selects the “custom” option at input 271 to enter the configuration settings in their respective fields 268, 270, 272, 274. Then, each parameter can be adjusted.

図示された実施形態では、ノード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 node 16 is adjustable in field 268. For example, if the node 16 selected in the table 258 of the instance tab 250 (FIG. 8) has four processing cores, the number of processing cores that are enabled for workload execution is 0 via field 268. , 1, 2 or 3 so that one or more processing cores of the selected node 16 can be “hiding” from the operating system 44 (FIG. 2) during workload execution. The visible system memory size, that is, the size of system memory accessible by the operating system 44 (FIG. 2), can be adjusted based on inputs to fields 270 and 272. For example, if the node 16 selected in the table 258 of the instance tab 250 (FIG. 8) has a memory capacity of 2048 MB, the “visible” memory (eg, random access memory) that is enabled during workload execution is It may be reduced to less than 2048 MB so that a portion of its memory can be “hidden” from the operating system 44 (FIG. 2) during workload execution. Additional workload arguments or instructions are applied in field 274 to adjust additional boot time parameters. The number of workload arguments may be increased or decreased based on the number entered in field 274. For example, a subset of the instructions of the workload can be selected for execution in field 274, thereby hiding the remaining instructions from the operating system 44 (FIG. 2). In addition, node 16 having a 64-bit architecture can be configured based on input to field 274 so that it operates in 32-bit mode when only 32 bits are visible to operating system 44. Additional boot time parameters may be entered in field 276. In one embodiment, instructions or code may be manually entered into field 276 by the user to provide additional cloud configuration settings. For example, the master node 16 for the map reduce workload may be designated via field 276 such that a particular node 16 acts as the master at boot time. In one embodiment, limiting the operation of one or more nodes 16 with the node configurator 72, as described herein, is used to test the performance of the cloud computing system 10. In the illustrated embodiment, the boot time configuration settings specified in FIG. 10 are from the node configurator 72 to adjust the boot time configuration of each node 16, as described herein with respect to FIGS. Provided in the boot time configuration file 28 (FIG. 3) provided to each node 16.

コンフィギュレータ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 configurator 22 generates the exemplary network configuration wizard window 280 shown in FIGS. 11-17 based on the user selection of the network configuration module 206 of FIG. Referring to FIG. 11, the network configuration wizard 280 provides a plurality of global network settings each including selectable data for adjusting network parameters of one or more nodes 16. Adjustable network parameters are: network delay via tab 282, packet loss via tab 284, packet duplication via tab 286, packet corruption via tab 288, packet via tab 290 Includes reordering, packet rate control via tab 292, and other custom commands via tab 294. Based on user selection and user input via the network configuration wizard 280 of the user interface 200, the network configurator 74 of FIG. 3 adjusts network parameters of the node 16 of the communication network 18 of FIG. 1, as described herein. To work. In one embodiment, network parameter modifications are used for network testing and performance analysis and / or to adjust system power consumption. In the illustrated embodiment, the network configurator 74 artificially forms network traffic and behavior based on user input to the network configuration wizard 280, thereby modeling various types of network topologies. For example, different communication networks have different latencies, bandwidths, performance, etc. depending on the network configuration. Thus, the network configurator 74 allows networks having different configurations to be implemented with workload execution to test and analyze the performance of those different networks with selected workloads. In one embodiment, testing and analysis is performed in conjunction with the batch processor 80 initiating a workload execution with a different network configuration. For example, an optimal network topology may be determined for execution of a particular workload with a selected hardware (node 16) configuration. In one embodiment, network configurator 74 operates to apply network settings to a particular group or subset of nodes 16 of node cluster 14.

引き続き図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 tab 282. The network configurator 74 selects and corrects the network delay based on the user selection of the inputs (exemplarily boxes) 298-301 and the fields 302, 304, 306, 308, 310, 312. The communication delay for each packet communication (ie, the packet carries data or information between nodes 16 or between a node 16 and the control server 12) over the communication network 18 (FIG. 1) is selected by the input 298. And the delay value entered via field 302. The specified communication delay variation is implemented based on the selection of input 299 and the variation value entered via field 304 (eg, illustratively plus or minus 10 milliseconds variation). Fields 310 and 312 include drop-down menus for selecting units of time (eg, milliseconds, microseconds, etc.) associated with the respective values of fields 302 and 304. Correlation between specified communication delays is implemented based on the selection of input 300 and the correlation value entered via field 306, illustratively a percentage correlation value. The specified communication delay distribution is implemented based on the selection of the drop-down menu 301. The distribution includes a normal distribution or other suitable distribution type.

図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 tab 284. The network configurator 74 selects and corrects the packet loss rate (i.e., the rate at which packets are artificially lost) based on user selections in the inputs (e.g., boxes) 313, 314 and fields 315, 316. The packet loss rate is implemented for packet communication over the network 18 based on the selection of the input 313 and the ratio value entered via the field 315. The packet loss rate is illustratively entered as a percentage, for example 0.1% results in a loss of one packet for every 1000 packets sent by the node 16. Correlation for packet loss rate is implemented based on the selection of input 314 and the correlation value (eg, a percentage value) entered via field 316.

図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 tab 286. The network configurator 74 selects and corrects the packet duplication rate (ie, the rate at which packets are artificially duplicated) based on user selections in the inputs (exemplarily boxes) 317, 318 and fields 319, 320. The packet duplication rate is implemented for packet communication over the network 18 based on the selection of the input 317 and the value of the ratio entered via the field 319. The packet overlap rate is illustratively entered as a percentage, for example 0.1% results in 1 packet overlap for every 1000 packets sent by the node 16. Correlation for the packet overlap rate is implemented based on the selection of input 318 and the correlation value (eg, a percentage value) entered via field 320.

図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 tab 288. The network configurator 74 selects and corrects the packet corruption rate (i.e., the rate at which packets are artificially corrupted) based on user selections in the input (e.g., box) 321 and field 322. The packet corruption rate is implemented for packet communication over the network 18 based on the selection of the input 321 and the ratio value entered via the field 322. The packet corruption rate is illustratively entered as a percentage, for example 0.1% results in 1 packet corruption for every 1000 packets sent by the node 16. In one embodiment, a correlation for packet corruption rate may be selected and implemented.

図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 tab 290. The network configurator 74 selects and modifies the packet reordering rate (ie, the rate at which packets are reordered during packet communication) based on user selections in the inputs (eg boxes) 323, 324 and fields 325, 326. To do. The packet reordering rate is implemented for packet communication via the network 18 based on the selection of the input 323 and the value of the ratio entered via the field 325. The packet reordering rate is illustratively entered as a percentage, for example 0.1% results in a reordering of 1 packet for every 1000 packets sent by the node 16. Correlation for packet reordering rate is implemented based on the selection of input 324 and the correlation value (exemplarily a percentage value) entered via field 326.

図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 tab 292. The network configurator 74 selects and modifies the packet communication rate (i.e., the rate at which packets are communicated between the nodes 16) based on user selections in the inputs (e.g., boxes) 327-330 and fields 331-338. The packet transmission rate is implemented for the communication network 18 based on the selection of the input 327 and the rate value entered via the field 331, and the ceiling (maximum value) for the packet transmission rate is selected on the input 328. And implemented based on the tolerance limit entered via field 332. Packet bursts are implemented based on the selection of input 329 and the packet burst value entered via field 333, and the tolerance limit (maximum value) for the packet burst is the tolerance entered via selection of input 330 and field 334. Implemented based on limit values. Fields 335 and 336 provide a drop-down menu for selecting a speed unit (eg, kilobytes per second), and fields 337 and 338 are a drop-down for selecting a burst unit (eg, bytes). Provide a menu.

図17を参照すると、ネットワークパラメータの調節を実装することに関連する選択可能データがタブ294内に示されている。ネットワークコンフィギュレータ74は、入力(例示的にはボックス)340のユーザ選択及びフィールド342を介してエンターされたカスタムコマンドに基づき、通信ネットワーク18上の1つ以上のノード16に関連するネットワークパラメータを修正するためのカスタムコマンドを提供する。   Referring to FIG. 17, selectable data associated with implementing network parameter adjustment is shown in tab 294. The network configurator 74 modifies network parameters associated with one or more nodes 16 on the communication network 18 based on user selection of the input (eg, box) 340 and custom commands entered via the field 342. Provide custom commands for

図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 container configuration module 208 has been selected. Based on user input to the module 208 (eg, user selection of selectable workload container data such as inputs 352, 360, 362, etc.), the workload container configurator 76 is a workload container for operation on the node cluster 14. Operates to select and configure a module. Module 208 includes a plurality of selectable tabs 350 that correspond to various available workload container modules. Each available workload container module includes a selectable code module that, when executed, operates to initiate and control the execution of the workload on the node cluster 14. There are several workload container modules available via module 208 in the illustrated embodiment, such as Apache Hadoop, Memchashed, Cassandra, and Darwin Streaming. Includes commercially available workload container modules for third parties. Cassandra is an open source distributed data management system that provides a key-value store to provide basic database operations. Darwin Streaming is an open source implementation of a media streaming application that is used to stream a variety of video media, such as QuickTime provided by Apple, Inc. While open source workload container software is illustratively provided via module 208, a closed source workload container may be provided for selection. For example, license information related to closed source workload container software may be entered or purchased via the user interface 200. One or more custom workload container modules may also be loaded and selected via the “custom” tab of module 208. Other workload container modules may be provided. A “Library” tab is also provided that provides access to a library of additional workload container modules that are available for selection, such as a custom workload container module previously used.

図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 workload container configurator 76 selects an Apache hadoop workload container module based on the user selection of input 352. The Apache Hadoop version and build variant can be selected under the general tab 354 via drop-down menus 360 and 362, respectively. The operating parameters of the selected workload container module can be adjusted by the workload container configurator 76 based on user input provided via the expansion tab 356 and the custom tab 358. The operating parameters available for adjustment are illustratively dependent on the selected workload container module. For example, if Apache Hadoop is selected as the workload container module, the expanded tab 356 shown in FIG. A table 366 of possible operation parameters is displayed. The workload container configurator 76 selects operating parameters for configuration based on the user selection in the corresponding selection box 367. Table 366 provides several fields for workload container configurator 76 to receive configuration data including override field 374, master value field 378 and slave value field 380. Based on the user selection in the override field 374, the node 16 whose workload container is to be adjusted with the corresponding operating parameter is selected. Node 16 is selected in override field 374 based on the user selection in the corresponding drop-down menu or based on the user selection of input 384. Illustratively, the selection of “never” results in a default configuration of the corresponding operating parameters implemented at all nodes 16, and the selection of “master” or “slave” The parameter adjustment implementation at the slave node 16 results in the selection of “always” resulting in the parameter adjustment implementation at all nodes 16 of the node cluster 14. Alternatively, individual nodes 16 of the node cluster 14 may be selected for implementation of adjusted operating parameters.

マスタ値フィールド378及びスレーブ値フィールド380においては、制約、データ値又は他のユーザ選択が、マスタノード16又はスレーブノード16のそれぞれにおけるワークロードコンテナの対応する動作パラメータのための調節値を提供する。プロパティ名フィールド376は、例示的には、選択されたワークロードコンテナモジュールのコードモジュールにおいて参照される関連動作パラメータの名前をリストする。記述フィールド382は、例示的には、関連動作パラメータのユーザに対して概要を表示する。入力386により、ユーザはテーブル366内にリストされた全動作パラメータを選択又は除外することができる。入力388により、ユーザは、先の選択又はパラメータ変更を逆にすること又は「取り消し(undo)」が可能であり、入力390により、ユーザは、フィールド374,378,380内に提供された値をデフォルト設定にリセットすることができる。   In the master value field 378 and the slave value field 380, constraints, data values or other user selections provide adjustment values for the corresponding operational parameters of the workload container at the master node 16 or slave node 16, respectively. Property name field 376 illustratively lists the name of the associated operational parameter referenced in the code module of the selected workload container module. The description field 382 illustratively displays a summary to the user of relevant operating parameters. Input 386 allows the user to select or exclude all operating parameters listed in table 366. Input 388 allows the user to reverse or “undo” previous selections or parameter changes, and input 390 allows the user to enter the value provided in fields 374, 378, 380. Can be reset to default settings.

テーブル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 workload container configurator 76 based on user selection in the table 366 include node 16 read / write (I / O) operations, sorting operations, node 16 network socket operations (eg, TCP Socket connection) and operational parameters related to the workload container file system 55 (eg, HDFS for Apache Hadoop). The operation parameters related to the read / write operation include, for example, the memory buffer size of the node 16 and the size of the data block transferred during the read / write operation. Illustratively, the memory buffer size shown in row 368 of table 366 is how much data is buffered (temporarily stored in the cache) during node 16 read / write (I / O) operations. ) In the illustrated embodiment, the memory buffer size is a multiple of the node hardware memory page or data block size. A memory page or block of data refers to a fixed length block or virtual memory of node 16, which is the smallest unit of data for memory allocation and memory transfer, as described herein. In the row 368 of FIG. 19, the values of the master node and the slave node are exemplarily set to 4096 bits, but these values are 8192 bits or the data block size of the node processor 40 (FIG. 2). May be adjusted to an appropriate multiple of. Similarly, the size of the data block transferred during a read / write operation is also adjusted based on user input to table 366.

ソーティング動作に関連する動作パラメータは、例えば、データをソーティングするときに同時にマージするデータストリームの数を含む。ワークロードコンテナのファイルシステム(例えば図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, file system 55 of FIG. 2) are stored in the memory 42 of each node 16 and the number of file system records or files (eg, see line 370) and for the file system 55. Contains the number of processing threads for each node 16 allocated for processing requests. In the exemplary row 370 of the table 366, the number of records stored in the memory 42 for the file system 55 of FIG. 2 is both 100,000 records for the master and slave nodes 16, but the other An appropriate recording limit value may be entered. In one embodiment, limiting the number of file system records helps to limit file replication by the file system 55.

ここで述べられる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 node 16, row 372 of table 366 is an algorithm, illustratively “Nagle's algorithm known in the art. algorithm) ”) field 378, 380, the activation / deactivation is enabled. Other suitable operating parameters related to the operation of the network socket may be adjusted.

ワークロードコンテナコンフィギュレータ76によって調節可能な他の例示的な動作パラメータは、ノード16のプロセッサ40により同時に実行されるソフトウェアタスクの数を含む。例えば、ユーザは、ワークロード実行に際して同時に実行される一定数のタスク(例えばJAVA(登録商標)タスク)を、テーブル366への入力を介して指定してよく、これに伴いワークロードコンテナコンフィギュレータ76はタスクの数を調節する。ワークロードコンテナに関連する他の適切な動作パラメータが調節されてよい。   Other exemplary operating parameters that can be adjusted by the workload container configurator 76 include the number of software tasks that are concurrently executed by the processor 40 of the node 16. For example, the user may specify a certain number of tasks (for example, JAVA (registered trademark) tasks) that are simultaneously executed during the execution of the workload through the input to the table 366, and the workload container configurator 76 is associated with this. Adjust the number of tasks. Other suitable operating parameters associated with the workload container may be adjusted.

図20のカスタムタブ358を参照すると、選択されたワークロードコンテナモジュールの更なるカスタム化を可能にするために、追加的なコンフィギュレーション調節が、選択されたワークロードコンテナモジュール、例示的にはハドゥープワークロードコンテナモジュール、のために実装されてよい。ワークロードコンテナコンフィギュレータ76は、フィールド392,394,396へと入力されたコマンド文字列並びに対応する選択可能ボックス398のユーザ選択に基づき、選択されたワークロードコンテナモジュールのコンフィギュレーションを更に調節する。図示された実施形態では、これらのフィールド392,394,396は、それぞれ、ハドゥープマスタノードと、ハドゥープファイルシステムと、タスクトラッカ(task tracker)内のタスクの数、一時的データを何処に置くかのローカルディレクトリ及び他の適切なパラメータ等の、マップリデュース実行に関連するパラメータと、に適用されるコンフィギュレーションを指定する。   Referring to the custom tab 358 of FIG. 20, additional configuration adjustments are made to the selected workload container module, illustratively a haha, to allow further customization of the selected workload container module. May be implemented for a dope workload container module. The workload container configurator 76 further adjusts the configuration of the selected workload container module based on the command string entered in the fields 392, 394, 396 and the user selection in the corresponding selectable box 398. In the illustrated embodiment, these fields 392, 394, 396 place the number of temporary data, the number of tasks in the hadoop master node, the hadoop file system, the task tracker, respectively. Specifies the configuration applied to parameters related to map reduce execution, such as the local directory and other appropriate parameters.

他の利用可能ワークロードコンテナモジュール(例えばメムキャッシュディー、カサンドラ、ダーウィンストリーミング等)に関連する動作パラメータは、ハドゥープワークロードコンテナモジュールで説明したのと同様に調節される。モジュール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 input 352 of module 208 and the configuration information provided via tabs 354, 356, 358, workload container configurator 76 loads workload container image file 94 for loading into node 16 of node cluster 14. (FIG. 3) is generated. In one embodiment, the workload container image file 94 is saved in the memory 90 of the control server 12 or in the memory 42 of the node 16 and the workload container configurator 76 updates the image file 94 with configuration information. In one embodiment, multiple configurations of workload container modules may be saved and then executed sequentially, for example, to investigate the impact of workload container configuration changes on workload and system performance. .

図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 workload container configurator 76 selects a user-defined custom workload container module for execution on the node 16 based on the user selection of the inputs 353, 401 of the “custom” tab of the module 208. To do. In the illustrated embodiment, custom workload container modules include workload container modules that may be provided by a user and not commercially available, as described herein. The workload container configurator 76 illustratively loads a compressed zip file that includes a workload container code module. Specifically, the zip file includes a configuration file or script including user-defined parameters for coordinating the execution of the workload on the node cluster 14. As shown in FIG. 21, the table 400 is stored in the control server 12 (or computer 20) and loaded custom workload available for user selection via one or more selectable inputs 401. Provides a list of container modules. Additional custom workload container modules are uploaded or downloaded, respectively, based on user selections in inputs 402, 404 and displayed in table 400, and custom workload container modules are deleted from table 400 based on user selections in input 403. The The user can enter the zip folder path and / or the configuration script path via the respective fields 406, 408. In one embodiment, the custom workload container module is stored at a location remote from the cloud computing system 10, such as on the memory 34 of the computer 20 (FIG. 1), and is based on a user selection of the input 402. Uploaded to the memory 90 (FIG. 3).

図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 workload configuration module 210 has been selected. Based on user input to module 210, workload configurator 78 (FIG. 3) operates to select and configure a workload for execution on a workload container module selected by node cluster 14. The workload configurator 78 also operates to generate a synthetic test workload to be executed on the node 16 with the selected workload container module based on user-defined workload parameters. Module 210 includes a number of selectable tabs that include a workload tab 410, a composite kernel tab 412, an MC-Blaster tab 414, a configuration library tab 416, and a CloudSuite tab. 417. Under the workload tab 410 of FIG. 22, a workload to be executed is selected by the workload configurator 78 based on a user selection of selectable workload data, illustratively including selectable inputs 418, 424, 428. The Illustratively, the available workloads include, for example, a workload suitable for execution on a Hadoop workload container (input 418), a workload suitable for execution on a memcached workload container (input 424). ) Or any other suitable workload configured for the selected workload container, such as a custom workload (input 428).

図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 corresponding input 418 from the actual workload and the synthetic test workload. The actual workload includes predefined code modules suitable for the map reduce function of the Hadoop workload container and is loaded into the control server 12 based on the identification of the actual workload storage location in field 422. . In one embodiment, the actual workload is stored on memory remote from the cloud computing system 10, such as the memory 34 of FIG. 1, and uploaded to the memory 90 of the control server 12 via field 422. In other embodiments, the actual workload is a sample hadop workload that is provided with the hadoop workload container module, or other workload that has been pre-loaded into the control server 12. Also, the synthetic test workload can be selected based on user selection of the corresponding input 418 for execution on the hadoop workload container. The number of input records, or the number of instructions to be generated with the synthetic test workload, and the number of instructions to be processed in the “map” phase of the synthetic test workload, is described in the field 420 may be entered and may be provided as an input to the synthesizer 79 (FIG. 3) of the workload configurator 78. Other input parameters for generation of the synthetic test workload by synthesizer 79 are configured via synthesis kernel tab 412 as described herein. Although a synthetic test workload has been illustratively applied for execution in a hadoop workload container, synthetic test workloads may be selected and generated for other available workload containers.

カスタムスクリプトは、選択されたワークロードコンテナモジュールでの実行のための予め定義された実際のワークロードとして、フィールド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 field 430 and upon user selection of input 428. The custom script comprises user-provided code that includes one or more execution commands to be executed by the node cluster 14 on the selected workload container module. In the illustrated embodiment, the custom script is used as a workload that is executed during system testing on the batch processor 80, and various network, workload container, and / or other system configuration changes are described herein. As is done, the impact on system performance is monitored during sequential workload execution.

予め定義されたワークロードが、入力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 input 424. In one embodiment, the memcached workload includes an in-memory acceleration structure that stores the key value pair via a “set” command and retrieves the key value pair via a “get” command. A key-value pair is a set of two linked data items, which are a key that is an identifier for an item of data and the data identified by that key or the location of that data. And a value that is one of the pointers. The Mem Cash Dee workload illustratively operates with a selectable MC blaster tool whose runtime is selected based on the input value to field 426. The MC blaster is a tool for stimulating the system under test by generating requests to read / write records from Mem Cash Dee on a certain number of network (eg TCP) socket connections. Each request specifies a key and a value. The MC blaster tool is configured via the MC blaster tab 414 of FIG. Referring to FIG. 24, the input to field 460 specifies the number of TCP connections to use per processing thread, the input to field 462 specifies the number of keys to operate, and the input to fields 464 and 466 is Specify a “get” command and a “set” command, respectively, that are required to be sent per second. The user-specified (custom) buffer size may be implemented by the workload configurator 78 based on the selection of the corresponding input 469 and the value entered in the field 468, and the TCP request may be “on” the input 470. It may be delayed based on the selection. A certain number of processing threads to be started may be customized by the workload configurator 78 based on the user selection of the corresponding input 473 and the value entered in the field 472. The default number of processing threads is equal to the number of active processing cores in node 16. The number of UDP replay ports is selected based on the input to field 474 and the size (in bytes) of the value stored (or returned) as a result of the workload execution is selected based on the input to field 476.

図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 workload configurator 78 is provided in a code module that is loaded into the memory 90 of the control server 12, illustratively a trace file (eg, a configuration file). Generate a synthetic test workload based on user defined parameters. The trace file contains data describing the desired computational characteristics of the synthetic test workload, as described herein. If there is a user selection of the “composite” input 434 of FIG. 23, the location of the stored trace file may be identified based on the user input to field 436 or field 438. Field 436 illustratively identifies a hard disk location (eg, memory 34 of computer 20 of FIG. 1) that contains the trace file, and field 438 illustratively a web address or URL for retrieving the trace file. Identify. Table 440 displays the trace files and previously generated synthetic test workloads that have been loaded and are available for selection. The trace file is loaded and displayed in table 440 at the user selection of input 442, deleted from table 440 at the user selection of input 444, and downloaded based on the user selection of input 446 (ie, identified in field 438). From the generated URL). The trace file is illustratively a JSON file format, but other suitable file types may be provided. The maximum number of instructions to be generated in the synthetic test workload is identified in field 448 and the maximum number of iterations of the synthetic test workload is identified in field 450. Alternatively, the previously generated synthetic test workload is a user selection of the library input 432, identification of the storage location (local hard drive, website, etc.) of the synthetic test workload in field 436 or 438, and Loaded by the workload configurator 78 based on a user selection of the input 441 corresponding to the desired previously generated synthetic test workload displayed in the table 440. The maximum number of instructions and iterations of the previously generated synthetic test workload can be adjusted in fields 448 and 450.

トレースファイルは、ワークロード特性と、合成テストワークロードを生成するためにシンセサイザ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 user interface 200 or the user interface of the user computer 20, so that the fields of the table can be modified based on user input to the table and user selections. For example, see the table 150 of FIG. 32 described herein. The trace file further identifies at least a portion of the instruction set architecture (ISA) that is to be used as input by the synthesizer 79. The trace file further identifies other characteristics associated with the instructions of the synthetic test workload, and these other characteristics are inter-instruction dependencies (e.g., the first instruction executes the first instruction before executing the first instruction). Dependent on the completion of instructions), memory register allocation constraints (eg, constraining an instruction to take a value from a specific register), and architectural execution constraints (eg, a limited number of logical units Available to execute types of instructions). Thus, configurator 22 operates to predict how long a workload instruction should be executed based on the execution characteristics specified in the trace file.

トレースファイル内に記述されたユーザ定義のワークロードパラメータの例としては、生成されるべき命令の総数や、例えば浮動小数点命令、整数命令及び分岐命令を含め生成されるべき命令のタイプや、例えば実行フローの分岐の蓋然性(即ち命令実行に際して分岐が行われやすいかどうか又は実行が当該実行フローパスに沿って進行して分岐へはジャンプしないかどうか)等の命令実行の挙動(例えば実行フロー)や、命令間でのデータ依存性の分布や、実行及び/又は転送される基本ブロックの平均サイズや、命令実行に関連するレイテンシ(即ち特定の命令又は命令タイプの実行にどれくらいのサイクルが必要であるか等、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, configurator 22 operates to target different microarchitectures and systems and different instruction set architectures of node 16. An exemplary table 150 is shown in FIG. 32, which includes data representing a set of user-defined workload parameters to be input to the code synthesizer 79. Referring to FIG. 32, the table 15 includes an instruction part 152 describing a collection of instructions for the generated synthetic test workload, and an addressing mode part 154 describing an addressing mode to be used with the synthetic test workload. . Instructions and addressing modes other than those shown may be provided in table 150. The command portion 152 of the table 150 includes a number of modifiable fields 158, 160, 162, 164. Field 158 contains data identifying the instruction to be generated, field 160 contains data identifying the type of computation associated with the instruction, and field 162 is a mnemonic assigned to assist synthesizer 79 in generating code. ) Is included. Field 164 contains data that identifies the various addressing modes (i.e., ways in which instruction arguments are obtained from memory).

図示された実施形態では、入力コマンド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 instruction portion 152 of the table 150 describing the instruction to be generated has started. Line 166 shows an example of user-defined workload parameters for generating one or more instructions. Referring to the line 166, “D (IntShortLatencyArith)” entered in the field 158 specifies an integer arithmetic instruction having a short latency, and “op_add” and “addq” entered in the fields 160 and 162 indicate the instruction. Indicates an addition, that is, an “add” instruction. In one embodiment, the short latency indicates that a processor (eg, node processor 40) takes one or several cycles to execute an instruction. “Addr_regOrw_reg1r” in the field 164 indicates that the first register 0 argument is “rw” (read and write) and the second register 1 argument is “r” (read). Similarly, “addr_reg0rw_imm” in the field 164 describes other variables of the instruction. Here, the first argument (register 0 argument) is “rw” (read and write), and the second argument is “ imm "(" immediate ") value (for example, a number such as 123).

テーブル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 mode portion 154 of the table 150, the exemplary row 170 includes a field 172 “addr_regOw_reg1r” that identifies a class of instructions that operate only on registers. The first register argument (ie register 0) is the destination “w” (write) and the second register argument (ie register 1) is the input “r” (read). The entries in fields 174 and 176 identify the argument and “src” for the read argument, “dst” for the write argument, or “rmw” for the read / modify / write argument. Is shown. In the x86 architecture, for example, the first register argument may be “rmw” (the argument is read, operates there and then written with the result), or other suitable argument. Additional or different user-defined workload parameters may be specified via table 150.

一実施形態では、テーブル150(例えばトレースファイル)は、例えばユーザコンピュータ20による等、オフラインで生成されて、コンフィギュレータ22へとロードされる。一実施形態では、テーブル150は、制御サーバ12に記憶され又は制御サーバ12へとロードされ、そしてユーザインタフェース200によって表示された選択可能且つ修正可能なデータを介してユーザがユーザ定義のワークロードパラメータを修正することができるように、ユーザインタフェース200で表示される。   In one embodiment, the table 150 (eg, trace file) is generated offline and loaded into the configurator 22, such as by the user computer 20. In one embodiment, the table 150 is stored in or loaded into the control server 12 and the user can define user-defined workload parameters via selectable and modifiable data displayed by the user interface 200. Is displayed on the user interface 200 so that it can be corrected.

図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 configuration file 28 and a synthetic workload image 96 to each node 16, and the synthetic workload engine 58 of each node 16 is described herein. Run the synthetic test workload as follows: Blocks 60, 62, 64 of FIG. 33 provide an abstract representation of the content provided in the trace file that is input to synthesizer 79. Block 60 is a general task graph representing the execution flow of the instruction set. Block 62 represents the task functions to be performed, and these task functions include an input instruction, an output instruction, a start instruction, and an end instruction. Block 64 represents workload behavior parameters, which include data block size, execution duration and latency, message propagation, and other user-defined parameters described herein.

シンセサイザ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 code generator 66 and a code emitter 68, each of which can be accessed by one or more processors 22 to perform the various functions described herein (eg, memory 90). One or more processors 22 of the control server 12 that execute the software code or firmware code stored there. The code generator 66 operates on a trace file data structure (eg, a table) that describes user-defined workload parameters and the target instruction set architecture and generates an abstracted composite code having specified execution properties. Generate. The code emitter 68 can be used from an abstract composite code (eg, assembly code to be linked in the execution harness, binary code, or position-independent code to be linked to the simulation infrastructure, etc.) to the execution environment. Create executable composite code (ie, synthetic test workload) in a suitable format. In one embodiment, the desired format of executable code is hard coded in synthesizer 79. In other embodiments, the desired format of the executable code can be selected via the user interface 200 selectable data. In one embodiment, the executable code is of a compact size so that the executable code can be executed through a cycle-accurate simulator that is not configured to run a full size workload. It is. Other suitable configurations of synthesizer 79 may be provided. In one embodiment, synthesizer 79 has access to the computer architecture data of node 16 of node cluster 14. Accordingly, the synthesizer 79 generates a synthetic test workload that targets a specific microarchitecture and instruction set architecture based on the known computer architecture data of the node cluster 14. Thus, a synthetic test workload may be targeted, for example, to exercise a desired set of architectural characteristics.

シンセサイザ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 node 16 along with the selected workload container module. When a synthetic test workload is generated and selected for execution, the synthetic test workload is stored in the memory 90 of the control server 12 as the workload image file 96 of FIG. The configurator 22 then loads the workload image file 96 into each node 16 for execution, or the node 16 retrieves the workload image file 96. In one embodiment, once a hadoop workload container module is selected, the synthetic test workload is executed as the “map” phase of map reduction.

図示された実施形態では、合成テストワークロードは、ここに述べられるように、テスト及び性能解析に対してコンピューティングシステム10のハードウェアをエクササイズするために実行される。シンセサイザ79は、トレースファイルを介して所望のワークロード挙動を入力として受信し、この入力に従って挙動する合成テストワークロードを生成する。具体的には、ここに述べられるように、実行されるべき命令の数及び命令のタイプの統計的分布等の、所望のワークロード挙動の統計的プロパティが、シンセサイザ79への入力である。例えば、ロードされたトレースファイルは、1000個の命令を含むプログラムループを要求するユーザ定義のパラメータを含んでいてよく、そのトレースファイルは、命令の30%が整数命令であり、10%が特定の分岐構造を有する分岐命令であり、40%が浮動小数点命令である、等を指定してよい。トレースファイル(又は図23のフィールド450)は、そのループが100回実行されるべきであることを指定してよい。シンセサイザ79は、次いで、要求されたパラメータを含むプログラムループを合成テストワークロードとして生成する。   In the illustrated embodiment, the synthetic test workload is executed to exercise the computing system 10 hardware for testing and performance analysis, as described herein. The synthesizer 79 receives a desired workload behavior as input via the trace file and generates a synthetic test workload that behaves according to this input. Specifically, as described herein, statistical properties of desired workload behavior, such as the number of instructions to be executed and the statistical distribution of instruction types, are inputs to synthesizer 79. For example, a loaded trace file may contain user-defined parameters that require a program loop containing 1000 instructions, where the trace file contains 30% of the instructions are integer instructions and 10% are specific. A branch instruction having a branch structure, 40% of which are floating point instructions, and the like may be designated. The trace file (or field 450 in FIG. 23) may specify that the loop should be executed 100 times. The synthesizer 79 then generates a program loop containing the requested parameters as a synthetic test workload.

一実施形態では、生成された合成テストワークロードは、特定のプロプリエタリ(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 node 16 or other server hardware. The statistical data collected by the monitoring tool upon execution of the proprietary code is used to identify parameters that represent the desired execution characteristics of the proprietary code or composite code. A collection of parameters is provided in the trace file. The trace file is then loaded as input to synthesizer 79, which generates synthetic code that behaves similarly to proprietary code based on statistical inputs and other desired parameters. Thus, a compound code or proprietary instruction for a particular code is not required to model the behavior of that code on the cloud computing system 10.

一実施形態では、シンセサイザ79は、バッチプロセッサ80と協働して、種々のトレースファイルからシンセサイザ79によって生成された複数の合成テストワークロードを実行する。一実施形態では、ノード16の異なる対象プロセッサ、即ちCPU及びGPUsの両者、をテストする修正されたユーザ定義のワークロードパラメータのテーブル(例えば図32のテーブル150)に基づき、複数の合成テストワークロードが生成される。   In one embodiment, synthesizer 79 cooperates with batch processor 80 to execute a plurality of synthetic test workloads generated by synthesizer 79 from various trace files. In one embodiment, a plurality of synthetic test workloads based on a modified user-defined workload parameter table (eg, table 150 of FIG. 32) that tests different target processors of node 16, ie, both CPUs and GPUs. Is generated.

図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 configurator 22 of the control server 12 of FIGS. 1 and 3 to configure the cloud computing system 10 with a selected workload. Reference is made to FIGS. 1 and 3 for the entire description of FIG. In the illustrated embodiment, the configurator 22 configures the node cluster 14 of FIG. 1 according to the flow diagram 600 of FIG. 34 based on a plurality of user selections received via the user interface 200. At block 602, based on a user selection received via user interface 200 (eg, selection of input 418), workload configurator 78 performs a workload for execution on multiple nodes cluster 14 of cloud computing system 10. Select. The workload is selected at block 602 from a plurality of available workloads including the actual workload and the synthetic test workload. The actual workload comprises code modules stored in memory (eg, memory 90 or memory 34) that can be accessed by the control server 12, as described herein. At block 604, the configurator 22 is configured to execute the selected workload so that the processing of the selected workload is distributed across the multi-node cluster 14, as described herein. Configure a cluster 14 of 10 multiple nodes.

一実施形態では、コンフィギュレータ22は、選択可能な実際のワークロードデータと選択可能な合成テストワークロードデータとを備えるユーザインタフェース200を提供し、ワークロードの選択は、選択可能な実際のワークロードデータ及び選択可能な合成テストワークロードデータの少なくとも一方に基づく。例示的な選択可能な実際のワークロードデータは、「実際のワークロード」に対応する図22の選択可能入力418と、図22の選択可能入力424,428と、を含み、例示的な選択可能合成テストワークロードデータは、「合成ワークロード」に対応する図22の選択可能入力418と、図23の選択可能入力434,436,441と、を含む。一実施形態では、ワークロードコンフィギュレータ78は、予め生成された合成テストワークロード、及び、選択可能合成テストワークロードデータのユーザ選択に基づくユーザ定義のワークロードパラメータのセット、の少なくとも一方を選択する。予め生成された合成テストワークロードは、制御サーバ12によってアクセス可能なメモリ(例えばメモリ90又はメモリ34)内に記憶されたコードモジュール(例えばライブラリ入力432を介してロードされる)を備える。シンセサイザ79は、例示的にはここに述べられるトレースファイルを介して提供されたユーザ定義のワークロードパラメータのセットの選択に基づき、合成テストワークロードを生成するように動作する。トレースファイルのユーザ定義のワークロードパラメータは、ここに述べられるように、合成テストワークロードの実行特性を識別する。   In one embodiment, configurator 22 provides a user interface 200 comprising selectable actual workload data and selectable synthetic test workload data, where the selection of the workload is selectable actual workload data. And based on at least one of selectable synthetic test workload data. Exemplary selectable actual workload data includes selectable input 418 of FIG. 22 corresponding to “actual workload” and selectable inputs 424, 428 of FIG. The synthetic test workload data includes selectable inputs 418 in FIG. 22 corresponding to “synthetic workload” and selectable inputs 434, 436, and 441 in FIG. In one embodiment, workload configurator 78 selects at least one of a pre-generated synthetic test workload and a user-defined set of workload parameters based on a user selection of selectable synthetic test workload data. The pre-generated synthetic test workload comprises code modules (eg, loaded via library input 432) stored in a memory (eg, memory 90 or memory 34) accessible by the control server 12. The synthesizer 79 operates to generate a synthetic test workload based on the selection of a user-defined set of workload parameters, illustratively provided via the trace files described herein. The user-defined workload parameters in the trace file identify the execution characteristics of the synthetic test workload, as described herein.

ここに述べられるように、例示的なユーザ定義のワークロードパラメータは、合成テストワークロードの命令の数、合成テストワークロードの命令のタイプ、合成テストワークロードの少なくとも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 multi-node cluster 14 is as described herein for the execution of an actual workload, such as a composite or proprietary workload, by a multi-node cluster 14. Operates to simulate relevant execution characteristics.

図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 configurator 22 of the control server 12 of FIGS. 1 and 3 to configure the cloud computing system 10 with a synthetic test workload. 1 and 3 are referred to throughout the description of FIG. In the illustrated embodiment, the configurator 22 configures the node cluster 14 of FIG. 1 according to the flow diagram 610 of FIG. 35 based on a plurality of user selections received via the user interface 200. At block 612, based on a set of user-defined workload parameters provided via the user interface 200, the code synthesizer 79 of the workload configurator 78 generates a synthetic test workload for execution on the multi-node cluster 14. Is generated. A set of user-defined workload parameters (eg, provided in a trace file) identifies the execution characteristics of the synthetic test workload, as described herein. At block 614, the configurator 22 tests the multi-node cluster 14 to test the synthetic test workload so that the processing of the synthetic test workload is distributed across the multi-node cluster, as described herein. Configure with workload.

一実施形態では、合成テストワークロードの生成は、複数ノードのクラスタ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 multi-node cluster 14. As described herein, in one embodiment, the configurator 22 stores computer architecture data in memory (so that the configurator 22 can identify the instruction set architecture and microarchitecture of each node 16 of the multi-node cluster 14. For example, it is stored in the memory 90). Accordingly, the configurator 22 is configured so that the synthetic test workload is configured for execution on a particular computer architecture of the node 16 of the node cluster 14 based on the computer architecture data stored in memory. Is generated. In one embodiment, the code synthesizer 79 generates a plurality of synthetic test workloads each based on a different computer architecture associated with the node 16 of the multi-node cluster 14, each computer architecture comprising an instruction set architecture and a micro-architecture. Including at least one. In one embodiment, configurator 22 provides a user interface 200 comprising selectable synthetic test workload data, and workload configurator 78 generates a synthetic test workload based on a user selection of selectable synthetic test workload data. Select a set of user-defined workload parameters for. Exemplary selectable synthetic test workload data includes selectable input 418 of FIG. 22 corresponding to “synthetic workload” and selectable inputs 434, 436, 441 of FIG. In one embodiment, the set of user-defined workload parameters is a data structure (eg, table 150 of FIG. 32) displayed on a user interface (eg, a user interface displayed on user interface 200 or display 21 of computer 20). This data structure includes a plurality of modifiable input fields that each identify at least one user-defined workload parameter, as described herein with respect to table 150 of FIG. In one embodiment, the configurator 22 may modify the modified hardware of at least one node 16 of the node cluster 14 based on a user selection received via the user interface 200 (eg, selection of a boot time parameter at inputs 269-276). Select the hardware configuration. In this embodiment, the configurator 22 configures the multi-node cluster 14 with the synthetic test workload to execute the synthetic test workload on the multi-node cluster 14 having the modified hardware configuration. The modified hardware configuration results in at least one of reduced computing capacity and reduced memory capacity at the at least one node 16, as described herein.

再び図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, memory 90 of FIG. 3) via configuration library tab 416. Workloads loaded via the configuration library tab 416 include actual workloads, synthetic test workloads, custom scripts, or any other workload suitable for execution in the selected workload container module. You can leave. The loaded workload configuration may be modified based on user input to module 210 of user interface 200. The current workload configuration may also be saved to memory 90 via configuration library tab 416.

図示された実施形態では、タブ417を介してクラウドスイートワークロードの集まりがロードされコンフィギュアされてもよい。クラウドスイートは、クラウドシステムを特徴付けるために利用される典型的なクラウドワークロードを備えるワークロードの集まりである。   In the illustrated embodiment, a collection of cloud suite workloads may be loaded and configured via tabs 417. A cloud suite is a collection of workloads with typical cloud workloads used to characterize cloud systems.

図25を参照すると、バッチ処理モジュール212が選択されている。モジュール212へのユーザ入力に基づき、バッチプロセッサ80(図3)は、複数のワークロードのバッチ処理を開始するように動作する。また、バッチプロセッサ80は、ここに述べられるように、種々のネットワークコンフィギュレーション、種々のワークロードコンテナコンフィギュレーション、種々の合成ワークロードコンフィギュレーション、及び/又は、種々のノードコンフィギュレーション(例えばブート時間コンフィギュレーションなど)等の複数の異なるコンフィギュレーションを有する1つ以上のワークロードの実行を開始するようにも動作する。ユーザ入力に基づき、バッチプロセッサ80は、全てのワークロードの実行が完了するために手動の介入が必要のないように、各ワークロード及び/又はコンフィギュレーションの実行を順にノードクラスタ14上で開始する。更に、バッチプロセッサ80は、ユーザインタフェース200のモジュール212を介して受信したユーザ設定に基づき、1つ以上のワークロードが複数回実行され得るようにこれらをコンフィギュアしてよい。バッチプロセッサ80は、実際のワークロード及び/又は合成テストワークロードをバッチとして実行するように動作する。図示された実施形態では、例えば図47及び図48に関してここに述べられるように、自動的なシステムチューニングを可能にするために、複数のワークロードのバッチ処理から性能データがモニタされ集約される。   Referring to FIG. 25, the batch processing module 212 is selected. Based on user input to module 212, batch processor 80 (FIG. 3) operates to initiate batch processing of multiple workloads. The batch processor 80 may also have various network configurations, various workload container configurations, various synthetic workload configurations, and / or various node configurations (eg, boot time configurations, as described herein). It also operates to initiate execution of one or more workloads having a plurality of different configurations. Based on user input, the batch processor 80 initiates each workload and / or configuration execution in turn on the node cluster 14 so that no manual intervention is required to complete the execution of all workloads. . Further, the batch processor 80 may configure these so that one or more workloads can be executed multiple times based on user settings received via the module 212 of the user interface 200. The batch processor 80 operates to execute the actual workload and / or the synthetic test workload as a batch. In the illustrated embodiment, performance data is monitored and aggregated from batch processing of multiple workloads to allow automatic system tuning, for example as described herein with respect to FIGS.

ワークロード及び/又はコンフィギュレーションのバッチのための実行の回数は、繰り返しカウントフィールド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 repeat count field 480. Based on user input to field 480, batch processor 80 executes one or more workloads a specified number of iterations. The batch sequence table 482 comprises display data that lists batch jobs to be executed by the node cluster 14. A batch job contains one or more workloads suitable for execution a specified number of times (specified based on input to field 480). In one embodiment, a batch job includes one or more cloud system configurations suitable for a specified number of executions in one or more workloads. Although only one batch job is listed in the table 482, multiple batch jobs may be added to the table 482. Batch processor 80 selects one or more listed batch jobs for execution based on a user selection of one or more inputs 483 corresponding to the listed one or more batch jobs. In one embodiment, the selected batch jobs are executed sequentially in the order in which they are listed in table 482. The batch job is illustratively in the form of a JSON file format, but other suitable formats may be used. Batch jobs listed in table 482 are edited, added and deleted, respectively, based on user selection of inputs 484, 486 and 488. The order of the batch sequence can be adjusted based on user selection of inputs 490, 492 to move the selected batch job to a different position in the sequence displayed in table 482. The batch sequence and other settings related to the execution of the batch job may be loaded from memory (eg, memory 34 or memory 90) via selectable input 494, and the currently configured batch sequence is selectable input. It may be saved to memory (eg, memory 34 or memory 90) via 496. Inputs 484-496 are illustratively selectable buttons.

図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 monitoring module 214 is selected. Based on user input to module 214, data monitor configurator 82 (FIG. 3) configures one or more data monitoring tools that are used to monitor and collect performance data during the execution of workloads on node cluster 14. Works like a figure. Data monitor configurator 82 operates to configure a monitoring tool that monitors data related to node 16 performance, workload, workload container, and / or network 18. In one embodiment, the monitoring tools configured by the data monitor configurator 82 include both commercially available monitoring tools and custom monitoring tools provided by the user. The monitoring tool collects data from multiple sources and other available nodes 16 in the cloud computing system 10. For example, the monitoring tool includes a kernel mode measurement agent 46 and a user mode measurement agent 50 (FIG. 2) that collect data at each node 16. The control server 12 also includes one or more monitoring tools that operate to monitor network and computing performance on the node cluster 14. In one embodiment, based on user input (eg, input to fields 530 and 532 of FIG. 27), data monitor configurator 82 specifies a sampling rate at which one or more monitoring tools monitor data from node 16. The data monitor configurator 82 operates to configure and initiate the operation of a plurality of data monitoring tools, which are Apache Hadoop monitoring tools (tabs 500), control servers provided on each node 16. 12 ganglia tool provided on 12 (tab 502), system tap tool provided on each node 16 (tab 504), and virtual memory statistics and I / O provided on one or more nodes 16 Includes a monitoring tool (tab 506) for statistics.

ハドゥープモニタリングツールは、ハドゥープワークロードコンテナモジュールがノード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 node 16 at the workload container level when a hadoop workload container module is selected for execution on the node 16. The Hadoop monitoring tool is sent to each node 16 by the configurator 22 along with the Hadoop workload container module to monitor data related to the performance of the Hadoop workload container module based on the monitoring configuration identified in FIG. And loaded. As shown in FIG. 26, various monitoring parameters associated with the Hadoop monitoring tool are configured by the data monitor configurator 82 based on user inputs to several modifiable fields and drop-down menus. The modifiable monitoring parameters are: default log level (selected based on input to drop-down menu 508), maximum file size of collected data (selected based on input to field 510), collected data The total size of all files (selected based on input to field 512), the log level of the JobTracker tool in the Hadoop Workload Container (selected based on input to drop-down menu 514), Hadoop The log level of the TaskTracker tool in the workload container (selected based on input to the drop-down menu 516) and the log level of the FSNamesystem tool in the Hadoop workload container (drop-down menu) 51 Including to) selected on the basis of the input to the. The log level identifies the type of data to be collected via the Hadoop monitoring tool, such as information (“INFO”), warning, error. The job tracker tool, task tracker tool and F name system tool of the Hadoop workload container include various processes and data tracked by the data monitor configurator 82, which, for example, initiates the workload on the master node 16. And end, metadata associated with the file system 55 (FIG. 2), and the start of a map reduce task at the worker node 16. Other suitable data may be collected with a hadoop monitoring tool.

図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 cloud computing system 10 based on the monitoring configuration implemented by the data monitor configurator 82. Ganglia is a known system monitoring tool that provides graphs and charts showing remote live viewing of system performance (eg, via control server 12) and historical statistics. In the illustrated embodiment, the ganglia monitoring tool is executed on the control server 12 based on the configuration data provided by the data monitor configurator 82. Examples of data monitored by the ganglia include an average processing load of the node processors 40 (CPUs) at the time of executing the workload, use of the node processor 40 and the network 18 at the time of executing the workload (for example, a stop or inactive time (stall) or inactive time), percentage of time spent processing, percentage of time spent waiting, etc.), and other suitable data. The ganglia monitoring tool is enabled and disabled by the data monitor configurator 82 based on the user selection of the selectable input 520 and the unicast or multicast communication mode is selected by the data monitor configurator 82 based on the user selection of the selectable input 522. Is done. Other configurable monitoring parameters associated with ganglia are the graph data refresh interval generated from the collected data (selected based on input to field 524), the cleanup threshold (to field 526). And an interval for transmitting metadata (selected based on input to field 528). The data input to fields 524, 526, 528 is illustratively in units of seconds. The data monitor configurator 82 collects based on the values (e.g., units are seconds) entered in the respective fields 530, 532 to collect data during the execution of the workload associated with the node processor 40 (CPU) (i.e., units are seconds). Sampling) and transmission intervals, processing load on the node 16 (eg, related to the workload being executed), usage of the node memory 42, network performance of the node 16 on the communication network 18, It operates so as to adjust the hard disk usage of each node 16.

システムタップツールは、クラウドコンピューティングシステム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 nodes 16 of the cloud computing system 10. In one embodiment, the system tap tool is executed on each node 16. The system tap is implemented with a Linux (registered trademark) based operating system. The system tap allows customized monitoring scripts to be loaded into each node 16 with a customized monitoring configuration including, for example, sampling rate and histogram generation and display. As shown in FIG. 28, when the “Script” tab is selected, the system tap is enabled or disabled by the data monitor configurator 82 based on the user selection of the input 536. The system tap script file is downloaded to the control server 12 by the data monitor configurator 82 and added for display in the table 538 based on the user selection of each input (button) 540 or in the table 538. Removed / deleted from the display. The table 538 comprises display data that displays script files that are available for selection based on user selection of the corresponding one or more inputs 539. The data monitor configurator 82 loads the selected script file in the table 538 to each node 16 when the configurator 22 develops the cloud configuration. Other appropriate configuration options based on user input and user selection via tab 534 are available for the system tap monitoring tool, such as, for example, Disk I / O. ), Network I / O and Diagnostics configurations.

図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 / O time tab 506 provides user access to configure additional monitoring tools that are loaded into one or more nodes 16. Includes virtual memory statistics (VMStat) and input / output statistics (IOStat). VMStat, for example, collects data related to the availability and use of system memory and block I / O controlled by the operating system, processing performance, interrupts, paging, and the like. For example, VMStat collects data related to system memory usage, such as the length or percentage of time the system memory and / or memory controller is busy or waiting to perform read / write operations To do. IOStat, for example, collects data related to storage I / O statistics (eg, usage, availability, etc.) controlled by the operating system. For example, IOStat collects data related to the percentage of time that the processing core of processor 40 of the corresponding node 16 is busy executing instructions or waiting to execute instructions. VMStat and IOStat are enabled / disabled by the data monitor configurator 82 based on the corresponding user selection of the respective inputs 546, 548, and the sampling rate (ie refresh interval) is the value entered into the fields 550, 552 (example) The unit is selected by the data monitor configurator 82 based on the second). Based on the user selection of the corresponding “enabled” inputs 546, 548 and the values entered in the fields 550, 552 of the tab 506, the data monitor configurator 82 configures the VMStat monitoring tool and the IOStat monitoring tool, and configures the configurator. 22 loads the tool into each node 16 when there is a user selection of the corresponding “enabled” input 546, 548.

データモニタコンフィギュレータ82でコンフィギュアされたこれらのモニタリングツールは、システム性能をモニタするために協働してクラウドコンピューティングシステム10のための動的計装(dynamic instrumentation)を提供する。コンフィギュアされたモニタリングツールを介して収集されたデータに基づき、コンフィギュレータ22は、例えばここに述べられるように、システムボトルネックを診断すると共に最適なシステムコンフィギュレーション(例えばハードウエア及びネットワークのコンフィギュレーション)を決定するように動作する。更に、データモニタコンフィギュレータ82は、各モニタリングツールをコンフィギュアするのに用いられるユーザ入力を受信すること及び各ツールからのモニタされたデータを表示することのために、ユーザインタフェース200上にモニタリングモジュール214を表示することによって、共通ユーザインタフェースを提供する。   These monitoring tools configured with data monitor configurator 82 work together to monitor system performance and provide dynamic instrumentation for cloud computing system 10. Based on data collected via the configured monitoring tool, the configurator 22 diagnoses system bottlenecks and optimizes system configuration (eg, hardware and network configuration), eg, as described herein. Works to determine. In addition, the data monitor configurator 82 receives the user input used to configure each monitoring tool and displays the monitored data from each tool on the monitoring module 214 on the user interface 200. Provides a common user interface.

図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 status module 216 with selectable data has been selected. Based on user input to module 216, configurator 22 may launch (ie, deploy) the system configuration to node cluster 14 by generating a plurality of configuration files 28 that are loaded into each node 16. To work. The configurator 22 initiates deployment of the current system configuration (ie, the system configuration currently identified in modules 202-216) based on the user selection of selectable input 560. The batch processor 80 of the configurator 22 initiates batch processing of one or more workloads and / or configurations, ie, the batch sequence identified in the table 482 of FIG. 25, based on the user selection of the selectable input 562. Workload configurator 78 of configurator 22 initiates execution of a custom workload, such as the custom workload identified in field 430 of FIG. 22, based on the user selection of selectable input 564. If there is a system configuration deployment based on user selection of inputs 560, 562, 564, the configurator 22 selects each of the selected nodes and whatwork settings, workloads, workload container modules, data monitoring tools, etc. The configured node 16 is automatically configured, and the node cluster 14 is instructed to start executing the selected workload and / or batch job based on the system configuration information. The configurator 22 terminates or pauses the workload execution prior to its completion based on user selection of selectable inputs 566, 568, respectively. The configurator 22 resumes the currently executing workload on the node cluster 14 based on the user selection of the selectable input 570. The configurator 22 skips the currently executing workload on the node cluster 14 based on the user selection of the selectable input 572, for example, so that the node 16 proceeds to execute the next workload in the batch. Based on the selection of selectable input 576, data monitor configurator 82 of configurator 22 implements the data monitoring tools, settings and configurations identified via module 214. In one embodiment, implementing data monitoring settings on the nodes 16 includes generating a corresponding configuration file 28 (FIG. 3) that is provided to each node 16. Following the completion of one or more workload executions, i.e., following the receipt of the workload execution results and the collection of all requested data from the node cluster 14, the configurator 22 determines that the node cluster 14 is Terminate or shut down. The inputs 560 to 572 and the inputs 582 to 595 are illustratively buttons.

ワークロード実行に際してシステム状態がディスプレイ578,580を介して提供される。ディスプレイ578,580は、ノードクラスタ14の各アクティブノード16に関連するワークロード実行の進行及び状態情報を示す。システム状態の表示は、ボタン595のユーザ選択に基づき有効又は無効にされる。   System status is provided via displays 578 and 580 during workload execution. The displays 578 and 580 show the progress of the workload execution and status information associated with each active node 16 of the node cluster 14. The display of the system status is enabled or disabled based on the user selection of the button 595.

図示された実施形態では、ノードコンフィギュレータ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, network configurator 74, workload container configurator 76, workload configurator 78, batch processor 80, and data monitor configurator 82 (FIG. 3) has their respective configurations. Following the start of deployment via inputs 560, 562, 564 for implementing functionality, at least one corresponding configuration file 28 is automatically generated. The configuration file 28 includes corresponding configuration data and instructions for configuring each node 16 of the node cluster 14 as described herein. In one embodiment, the configurator 22 automatically loads each file 28 into each node 16 of the node cluster 14 following generation of the configuration file 28. Alternatively, a single configuration file 28 containing configuration data and instructions from each component 70-84 of the configurator 22 is generated, and the configurator 22 follows the generation of that configuration file 28 and a single The configuration file 28 is automatically loaded into each node 16 of the node cluster 14. When launching a configuration deployment with inputs 560, 562, 564, each of the operating system, workload container module, and image files 92, 94, 96 respectively corresponding to the workload are also loaded into each node. Alternatively, following generation of one or more configuration files 28 and image files 92, 94, 96 by configurator 22, node 16 retrieves configuration files 28 and / or image files 92, 94, 96. Or you may request.

ノード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 configuration file 28 deployed to the node 16 and the system configuration file saved via the input 240 of FIG. 7 are selected and based on user input to the modules 202-216 and the default settings of the modules 202-216. Contains all loaded configuration data and information. For example, the configuration file 28 generated by the node configurator 72 may include the number of nodes 16 allocated and / or used for the node cluster 14 as well as the hardware requirements and boot of each node 16 as described herein. Including time. The hardware requirements include, for example, RAM size, number of CPU cores, and available disk space. The configuration file 28 generated by the network configurator 74 includes, for example, a global default setting applied to all the nodes 16, which node 16 belongs to a given group of the node cluster 14, and network traffic in the node group. A node configuration including a group configuration including a configuration for the network node, a configuration for network traffic to other node groups of the node cluster 14, a custom configuration for a network traffic between arbitrary nodes 16, Network parameters including latency, bandwidth, ratio of corrupted and dropped packets, correlation and distribution of corrupted and dropped packets, and ratio of reordered packets as described herein with respect to FIGS. Including data and other appropriate network parameters and network topology configuration data. The configuration file 28 generated by the workload container configurator 76 includes, for example, configuration settings for the main workload container software used to execute the workload. The configuration file 28 generated by the workload configurator 78 includes configuration settings for a predefined or composite workload container, for example, selected to be executed on the node 16. Configuration settings include, for example, synthetic test workload configuration data including a synthetic test workload image file, a maximum instruction count, a maximum repetition count, and a speed of I / O operation.

入力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 inputs 562, 564), configurator 22 automatically performs several actions. In one embodiment, the configurator 22 allocates and activates the desired node 16 to select the multi-node cluster 14. The configurator 22 then passes the address (eg, IP address) of the control server 12 to each node 16 and assigns or passes an identifier and / or address to each node 16. In one embodiment, each node 16 receives one or more configuration files 28 that automatically contact the control server 12 and describe jobs and other configuration information following receipt of the control server 12 address. Configured to require. Each node 16 communicates with the control server 12 using any suitable mechanism, such as an RMI mechanism (eg, a web-based interface) designated to communicate directly with the control server 12, for example. , HTTP requests for interacting with the control server 12 via Apache HTTP server or Tomcat server, and remote shell mechanism.

一実施形態では、コンフィギュレータ22は、ノードクラスタ14の各ノード16からの要求を受信するまで待機する。一実施形態では、あるノード16が起動しない場合、即ちそのノード16からの要求又は受信確認がないことに基づいて、コンフィギュレータ22はそのノード16を再起動するよう試みる。そのノード16が継続して起動しない場合には、コンフィギュレータ22は、その起動しないノード16の代わりに、ノードクラスタ14内に元々は含まれていなかった他の利用可能ノード16を識別し要求する。代替ノード16は、起動しないノード16と同一又は類似のハードウェア仕様及び処理能力を有する。一実施形態では、コンフィギュレータ22は、ワークロード実行の間ずっとノード16をモニタし続け、応答を停止したノード16(及びワークロード)を再起動する。コンフィギュレータ22は、データモニタリングの失敗や他の通信上の失敗に基づき、ワークロード実行に際して非応答のノード16を検出してもよい。   In one embodiment, configurator 22 waits until it receives a request from each node 16 of node cluster 14. In one embodiment, the configurator 22 attempts to restart a node 16 if it does not start, that is, based on no request or acknowledgment from that node 16. If the node 16 does not continue to start, the configurator 22 identifies and requests another available node 16 that was not originally included in the node cluster 14 instead of the node 16 that does not start. The alternative node 16 has the same or similar hardware specifications and processing capability as the node 16 that does not start up. In one embodiment, configurator 22 continues to monitor node 16 throughout the workload execution and restarts node 16 (and workload) that has stopped responding. The configurator 22 may detect the non-responding node 16 when executing the workload based on the failure of data monitoring or other communication failure.

コンフィギュレータ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 node 16 of node cluster 14, configurator 22 determines that each node 16 is ready to proceed. In one embodiment, the configurator 22 then provides the request data to each node 16, which includes one or more configuration files 28, and the addresses and IDs (IDs) of other nodes 16 in the node cluster 14. , Image files 92, 94, 96. When the request data is received from the control server 12, the role of each node 16 in the node cluster 14 is determined. In one embodiment, the role determination is made by the control server 12 (eg, automatically or based on user input) and communicated to the node 16. Alternatively, role determination is made by the node cluster 14 using a distributed arbitration mechanism. In one embodiment, role determination depends on the workload. For example, for a node cluster 14 operating in a hadoop workload container, the first node 16 may be designated as a master node 16 (“name node”) and the remaining nodes 16 are slave / worker nodes. 16 ("datanodes"). In one embodiment, the role determination of a node 16 further depends on the hardware properties of that node 16. For example, a group of nodes 16 with slower node processors 40 may be designated as a database server for data storage, and other groups of nodes 16 with faster node processors 40 may process the workload. It may be designated as a compute node. In one embodiment, role determination is based on user input provided via configuration file 28. For example, the user may have one or more first nodes 16 performing a first task, one or more second nodes 16 performing a second task, and one or more third nodes 16 performing a first task. Allocation may be performed such as performing the third task.

各ノード16は、1つ以上のコンフィギュレーションファイル28を介して受信したネットワークコンフィギュレーションデータに基づき、その仮想ネットワーク設定をコンフィギュアし始める。このことは、例えばここに述べられるように、ネットワーク遅延及び/又はパケット損失エミュレータを用いることを含む。各ノード16は、更に、ユーザ要求に係るソフトウェアアプリケーションをインストール及び/又はコンフィギュアすることを開始し、これらのアプリケーションは、ワークロードコンテナイメージファイル94を介して受信したワークロードコンテナコードモジュールを含む。一実施形態では、複数のワークロードコンテナモジュール(例えば複数のバージョン/製造業者)が各ノード16でプリインストールされており、選択されたワークロードコンテナモジュールのロケーションへのソフトリンクがコンフィギュレーションファイル28に基づき作成される。合成テストワークロードが制御サーバ12で生成され選択される場合には、各ノード16は、ワークロードイメージファイル96に基づき合成テストワークロードをアクティベートし始める。各ノード16は、更に、コンフィギュレーション情報に基づき診断ツール及びモニタリングツール(例えばガングリア、システムタップ、ヴィエムスタット(VMStat)、アイオースタット(IOStat)等)の実行を開始する。最後に、各ノード16は選択されたワークロードの実行を開始する。   Each node 16 begins to configure its virtual network settings based on network configuration data received via one or more configuration files 28. This includes, for example, using a network delay and / or packet loss emulator, as described herein. Each node 16 further begins to install and / or configure software applications according to user requests, which applications include workload container code modules received via the workload container image file 94. In one embodiment, multiple workload container modules (eg, multiple versions / manufacturers) are preinstalled at each node 16 and a soft link to the location of the selected workload container module is in the configuration file 28. Created based on. If a synthetic test workload is generated and selected at the control server 12, each node 16 begins to activate the synthetic test workload based on the workload image file 96. Further, each node 16 starts to execute a diagnostic tool and a monitoring tool (for example, ganglia, system tap, Viemstat (VMStat), Iostat (IOStat), etc.) based on the configuration information. Finally, each node 16 starts executing the selected workload.

図示された実施形態では、展開ローンチに続きコンフィギュレータ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 configurator 22 and the node 16 following the deployment launch are synchronized between the nodes 16 of the node cluster 14. In one embodiment, the configurator 22 of the control server 12 coordinates multiple nodes 16, but alternatively one or more nodes 16 of the node cluster 14 may manage synchronization. In one embodiment, each node 16 periodically provides state feedback to the control server 12 through a synchronization mechanism used to coordinate node operations. Thus, nodes 16 that do not report within the specified time are considered crashed and are restarted by the configurator 22. Further, the configurator 22 may provide a status to the user via the displays 578 and 580 of FIG. 30 in order to indicate the progress of the job.

ジョブが完了すると、データアグリゲータ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 node 16. Specifically, data (for example, job output, performance statistics, application log, etc., refer to module 214) collected by the monitoring tool of each node 16 is accessed by the control server 12 (for example, the memory 90 in FIG. 3). In one embodiment, data aggregator 84 retrieves data from each node 16. In other embodiments, each node 16 forwards data to the data aggregator 84. In the illustrated embodiment, data is communicated from each node 16 to the control server 12 in the form of a log file 98, as shown in FIG. 31 (see also FIG. 3). Each log file 98 includes data collected by one or more of the various monitoring tools at each node 16. As described herein, the data aggregator 84 manipulates and analyzes the collected data from the log file 98 and displays the aggregated data to the user in the form of a graph, histogram, chart, etc. (eg, FIG. 1). (Via display 21). Further, the data aggregator 84 aggregates data from monitoring tools provided on the control server 12, such as the ganglia monitoring tool illustrated in FIG.

図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 data aggregator 84 collects and aggregates performance data from each node 16 and logs, statistics, graphs and other representations of data based on user selection of the corresponding inputs 582-594 of the module 216. Works to generate Data aggregator 84 collects statistical raw data provided in log file 98 and statistical raw data provided by other monitoring tools based on user selection of input 586. Data aggregator 84 downloads all log files 98 from node 16 to the local file system based on user selection of input 588, which may be further analyzed there or for historical trend analysis. May be remembered. Data aggregator 84 retrieves only log files associated with the system tap monitoring tool based on the user selection of input 590. Data aggregator 84 displays one or more of log files 98 provided by node 16 on user interface 200 based on a user selection of input 582. The data aggregator 84 displays statistical data on the user interface 200 in the form of graphs and charts based on the user selection of the input 584. The statistical data includes, for example, performance data related to the performance of the network 18, the performance of network communication by the node 16, the performance of various hardware components of the node 16, the workload execution, and the overall performance of the node cluster 14. . The data aggregator 84 generates one or more graphs for display on the user interface 200 based on the user selection of the input 592 and showing various data collected from the node 16 and other monitoring tools.

一実施形態では、データアグリゲータ84は、モニタリングモジュール214においてコンフィギュアされたモニタリングツールでのモニタリングのために選択されたデータに基づき、表示するデータを選択する。他の実施形態では、データアグリゲータ84は、制御及び状態モジュール216へのユーザ入力に基づき、集約され表示されるデータを選択する。例えば、ユーザは、それぞれ入力582,584,592を選択することで、ログファイル98、統計的データ及びグラフの何れを表示するのかを選択する。一実施形態では、データアグリゲータ84は、ユーザインタフェース200へのユーザ入力に基づき、どのデータをグラフで表示するのかを選択し、またそのデータをどのように表示するのか(例えば線グラフ、棒グラフ、ヒストグラム等)を選択する。入力592の選択に基づき表示されるグラフィカルデータの例としては、プロセッサ速度対ネットワーク遅延追加、ワークロード実行速度対プロセッサコア数、ワークロード実行速度対コア当たり処理スレッド数、特定のノード16によって送信又は受信されたデータパケットの数の時間変化、通信された所定サイズのデータパケットの数の時間変化、ネットワークスタック内でデータパケットによって消費された時間、等が挙げられる。   In one embodiment, the data aggregator 84 selects the data to display based on the data selected for monitoring with the monitoring tool configured in the monitoring module 214. In other embodiments, the data aggregator 84 selects data to be aggregated and displayed based on user input to the control and status module 216. For example, the user selects which of the log file 98, statistical data, and graph to display by selecting the inputs 582, 584, 592, respectively. In one embodiment, the data aggregator 84 selects which data to display in a graph and how to display the data (eg, line graph, bar graph, histogram) based on user input to the user interface 200. Etc.). Examples of graphical data displayed based on the selection of input 592 include processor speed vs. network delay addition, workload execution speed vs. number of processor cores, workload execution speed vs. number of processing threads per core, transmitted by a particular node 16 or Examples include time variation of the number of received data packets, time variation of the number of data packets of a predetermined size communicated, time consumed by data packets in the network stack, and the like.

(クラウドコンピューティングシステムのノードのブート時間パラメータをコンフィギュアすること)
図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 configurator 22 of FIGS. 1 and 3 to configure the boot time configuration of the cloud computing system 10. Reference is made to FIGS. 1 and 3 for the entire description of FIG. In the illustrated embodiment, the configurator 22 configures the node cluster 14 of FIG. 1 according to the flow diagram 620 of FIG. 36 based on a plurality of user selections received via the user interface 200. At block 622, the configurator 22 provides the user interface 200 with selectable boot time configuration data. Exemplary selectable boot time configuration data includes selectable inputs 269, 271 and fields 268, 270, 272, 274, 276 of the display screen of FIG. At block 624, the node configurator 72 of the configurator 22 boots for at least one node 16 of the cluster 14 of multiple nodes of the cloud computing system 10 based on at least one user selection of selectable boot time configuration data. Select a time configuration.

ブロック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 block 626, the configurator 22 configures at least one node 16 of the multi-node cluster 14 with the selected boot time configuration and modifies at least one boot time parameter of the at least one node 16. For example, the at least one boot time parameter may be the number of processing cores of the at least one node 16 that are enabled during workload execution (based on input to field 268) and / or the at least one Contains the amount of system memory (based on inputs to fields 270, 272) accessible by the operating system 44 (FIG. 2) of the node 16. Further, the modified boot time parameter may be a subset of the plurality of instructions of the workload to be executed by the at least one node 16 based on the number of instructions entered into field 274 and the selection of the corresponding custom input 271. May be identified. Thus, the workload is executed in a multi-node cluster 14 based on the modification of the at least one boot time parameter of the at least one node 16. In one embodiment, the configurator 22 initiates the workload execution and the multi-node cluster 14 is under reduced computing power and / or reduced memory capacity based on the modification of the at least one boot time parameter. Run the workload on Specifically, the modification of the number of processing cores associated with the selection of field 268 and corresponding input 271 can help reduce computing power, and the amount of system memory associated with selection of fields 270 and 272 and corresponding input 271 can be reduced. The modification helps reduce the memory capacity.

一実施形態では、ノードコンフィギュレータ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 first node 16 of the multi-node cluster 14 based on at least one user selection of selectable boot time configuration data; A second boot time configuration for the second node 16 of the cluster of nodes 14 is selected. In this embodiment, the first boot time configuration includes a first modification of at least one boot time parameter of the first node 16, and the second boot time configuration is at least of the second node 16. It includes a second modification of one boot time parameter, the first modification being different from the second modification. In one example, the first boot time configuration includes enabling two processing cores of the first node 16 and the second boot time configuration includes three processing cores of the second node 16. Including enabling. Other suitable modifications of each node 16 boot time parameter may be provided as described above.

図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 node 16 of the multi-node cluster 14 of FIG. 1 to configure the boot time configuration of the node 16. Reference is made to FIGS. 1 and 3 for the entire description of FIG. At block 632, one node 16 of the multi-node cluster 14 modifies at least one boot time parameter of that node 16 based on the boot time configuration adjustment request provided by the cloud configuration server 12. In the illustrated embodiment, the boot time configuration adjustment request is provided in the configuration file 28 (FIG. 3) and, as described herein, inputs 270, 271 and fields 268, 270, 272 of FIG. Based on the user selection made via 274,276, the requested modifications to one or more boot time parameters of node 16 are identified. In the illustrated embodiment, the node 16 includes an initial boot time configuration prior to modifying the at least one boot time parameter and a modified boot time configuration subsequent to modifying the at least one boot time parameter. And having. The modified boot time configuration provides at least one of reduced computing capacity and reduced memory capacity of the node 16, as described herein.

ブロック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 block 634, when the node 16 determines that the at least one boot time parameter has already been modified according to the boot time configuration adjustment request following the reboot of the node 16, the node 16 Following the reboot of node 16, at least a portion of the workload is executed. In one embodiment, the node 16 obtains the at least part of the workload from the cloud configuration server 12 and executes the workload based on the modification to the at least one boot time parameter. In one embodiment, the determination by the node 16 is based on a flag (eg, 1 bit or 2 bits or more) set after modification to the at least one boot time parameter and prior to the node 16 reboot. Since the set flag indicates to the node 16 following a restart of the node 16 that the at least one boot time parameter has already been modified, the node 16 modifies the at least one boot time parameter. Do not try to reboot again. In one embodiment, the determination is based on a comparison of the boot time configuration of node 16 with the requested boot time configuration identified in the boot time configuration adjustment request. For example, node 16 compares the current boot time parameter of node 16 with the requested boot time parameter identified in the boot time configuration adjustment request, and if these parameters are the same, the at least one boot time parameter. Do not attempt to modify parameters and reboot again. In one embodiment, when node 16 receives a new configuration file that includes a new boot time configuration adjustment request, node 16 may implement the modification of the boot time parameter in accordance with the new boot time configuration adjustment request. , Clear the flag.

図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 cloud computing system 10 to configure the boot time configuration of one or more nodes 16 of the node cluster 14. 1 and 3 are referred to throughout the description of FIG. In the illustrated embodiment, the configurator 22 performs blocks 652-656 of FIG. 38, and each configured node 16 performs blocks 658-664 of FIG. At block 652, the configurator 22 may configure one or more boot times for the corresponding node 16 based on user-defined boot time parameters entered via the user interface 200 (FIG. 10), as described herein. A configuration file 28 is created. In one embodiment, boot time configuration file 28 is a patch of one or more configuration files of node 16 or in the form of a task specific file / data format. At block 654, the configurator 22 activates the multi-node cluster 14 (eg, if there was a user selection of input 560 or inputs 562, 564 of FIG. 30 as described herein). At block 656, the configurator 22 distributes one or more boot time configuration files to the appropriate nodes 16 of the multi-node cluster 14. In one embodiment, each node 16 receives a boot time configuration file, and each file may identify a unique boot time parameter for the respective node 16. In one embodiment, the configuration file 28 is sent via a secure shell (SSH) file transfer, via an fpt client, via a user data string in Amazon AWS, or other suitable file transfer. It is transferred to the node via the mechanism. In other embodiments, the node 16 queries the control server 12 or the master node 16 for boot time configuration information, respectively (eg, via an HTTP request). At block 658, the node 16 applies the desired boot time parameter changes specified in the received boot time configuration file 28. In one example, the node 16 applies a patch to the boot file of the node 16 or the node 16 uses a utility to configure the node 16 based on the boot time parameter specified in the received boot time configuration file 28. Create a new set of boot files for In one embodiment, during or when applying the desired boot time change at block 658, the node 16 sets a status flag indicating that the boot time configuration has already been updated, as described herein. To do. In block 660, the node 16 forces a reboot following application of the boot time configuration change. Upon reboot, node 16 determines at block 662 that the boot time configuration of node 16 has already been updated with the boot time parameter changes specified in the received boot time configuration file 28. In one embodiment, node 16 may be based on the status flag set in block 658, as described herein, or based on a comparison of node 16's current boot time configuration with boot time configuration file 28. At block 662, it is determined that the boot time configuration has been updated. Thus, the node 16 reduces the possibility of applying boot time configuration changes many times. In block 664, the node 16 initiates execution of other tasks, including execution of a portion of the workload or workload received from the control server 12.

(ネットワークコンフィギュレーションを修正及び/又はエミュレートすること)
図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 configurator 22 of FIGS. 1 and 3 to modify the network configuration of a multi-node cluster 14 allocated in the cloud computing system 10. . Reference is made to FIGS. 1 and 3 and FIGS. 11 to 17 for the entire description of FIG. In block 702, the network configurator 74 modifies the network configuration of at least one node 16 of the multi-node cluster 14 of the cloud computing system 10 based on the user selection received via the user interface 200. Modifying the network configuration of the at least one node 16 at block 702 includes modifying the network performance of the at least one node 16 on the communication network 18 (FIG. 1). Network performance is modified by modifying network parameters such as packet rate, dropped or corrupted packets, reordered packets, etc. as described herein. In the illustrated embodiment, the network configurator 74 is based on a user selection or user input provided via the module 280 of the user interface 200, as described herein with respect to FIGS. 3) and modify the network configuration of node 16 by providing network configuration file 28 to node 16 (or by node 16 fetching file 28). Node 16 then implements the changes to the network configuration of node 16 specified in the accessed network configuration file 28. In the illustrated embodiment, the at least one node 16 has an initial network configuration before modification and a modified network configuration after modification. In one embodiment, the modified network configuration reduces the network performance of the at least one node 16 on the communication network 18 during execution of the selected workload. Alternatively, the modified network configuration enhances the network performance of the at least one node 16, such as by reducing the communication delay value specified via field 302 of FIG.

一実施形態では、ネットワークコンフィギュレータ74は、当該少なくとも1つのノード16の少なくとも1つのネットワークパラメータを変更してワークロードの実行に際しての通信ネットワーク18上での当該少なくとも1つのノード16のネットワーク性能を制限することによって、当該少なくとも1つのノード16のネットワークコンフィギュレーションを修正する。一実施形態では、変更される当該少なくとも1つのネットワークパラメータは、パケット通信遅延、パケット損失率、パケット重複率、パケット破損率、パケット並び替え率、及び、パケット通信速度の少なくとも1つを備え、これらはここに述べられるようにタブ282〜294を介してユーザによって選択可能である。従って、ネットワークコンフィギュレータ74は、ネットワークパラメータへの修正(例えば増大されたノード16間の通信遅延、増大されたパケット損失又はパケット破損率等)を識別するコンフィギュレーションファイル28へのノード16アクセスを生成し提供することによって、当該少なくとも1つのノード16のネットワーク性能を制限する。   In one embodiment, the network configurator 74 modifies at least one network parameter of the at least one node 16 to limit the network performance of the at least one node 16 on the communication network 18 during workload execution. To modify the network configuration of the at least one node 16. In one embodiment, the at least one network parameter to be modified comprises at least one of packet communication delay, packet loss rate, packet duplication rate, packet corruption rate, packet reordering rate, and packet communication rate, and Can be selected by the user via tabs 282-294 as described herein. Accordingly, the network configurator 74 generates node 16 access to the configuration file 28 that identifies modifications to network parameters (eg, increased communication delay between nodes 16, increased packet loss or packet corruption rate, etc.). By providing, the network performance of the at least one node 16 is limited.

図示された実施形態では、コンフィギュレータ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 configurator 22 provides a user interface 200 comprising selectable network configuration data, and the network configurator 74, as described herein, provides at least one user selection of selectable network configuration data. To modify the network configuration of the at least one node 16. Examples of selectable network configuration data include inputs 298-301 and corresponding fields 302-312 in FIG. 11, inputs 313, 314 and corresponding fields 315, 316 in FIG. 12, inputs 317, 318 in FIG. 14, the input 321 and the corresponding field 322 in FIG. 14, the inputs 323 and 324 and the corresponding fields 325 and 326 in FIG. 15, the inputs 327 to 330, 335 to 338 in FIG. 16 and the corresponding fields 331 to 331. 334, as well as input 340 and corresponding field 342 of FIG. In one embodiment, the network configurator 74 changes the first network parameter of the first node 16 of the multi-node cluster 14 (ie, the network configuration) based on at least one user selection of selectable network configuration data. By limiting the network performance of the first node 16 on the communication network 18 during the execution of the workload (via the application file 28) and the second node 16 second of the multi-node cluster 14 The network performance is modified by changing the network parameters to limit the network performance of the second node 16 on the communication network 18 when executing the workload. In one embodiment, the first network parameter is different from the second network parameter. Accordingly, the network configurator 74 operates to modify different network parameters of different nodes 16 of the multi-node cluster 14 to achieve the desired network characteristics of the multi-node cluster 14 during workload execution.

図示された実施形態では、図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 configurator 22 further has a network configuration that substantially matches the network configuration of the emulated node cluster. Operate to select a multi-node cluster 14 for 10. As referred to herein, an emulated node cluster is meant to include any group of network nodes having a known network configuration that will be emulated by the node cluster 14 selected by the control server 12. . Each node of the emulated node cluster includes one or more processing devices and memory accessible by the processing devices. In one embodiment, the emulated node cluster does not include available nodes 16 that can be selected by the configurator 22. For example, an emulated node cluster includes nodes that are remote from available nodes 16 housed in one or more data centers and accessible by the configurator 22, such as nodes provided by a user. Alternatively, the emulated node cluster may include a group of available nodes 16. The network topology and network performance characteristics of the emulated node cluster can be obtained using one or more network performance tests, as described below. Referring to FIG. 40, exemplary operations performed by the configurator 22 of FIGS. 1 and 3 to select a multi-node cluster 14 having network characteristics that substantially match the network characteristics of the emulated node cluster. A flow diagram 710 of FIG. Reference is made to FIGS. 1 and 3 for the entire description of FIG. In the illustrated embodiment, the configurator 22 selects and configures the node cluster 14 of FIG. 1 according to the flow diagram 710 of FIG. 40 based on a user selection received via the user interface 200 as described herein. . In block 712, the node configurator 72 compares the emulated node cluster communication network configuration with the actual communication network configuration of the plurality of available nodes 16. At block 714, the node configurator 72 selects a multi-node cluster 14 for the cloud computing system 10 from the plurality of available nodes 16 coupled to the communication network 18 based on the comparison at block 712. The selected multi-node cluster 14 includes a subset of the plurality of available nodes 16. At block 716, the node configurator 72 operates to operate each node 16 of the multi-node cluster 14 to share the workload processing with the other nodes 16 of the multi-node cluster 14 as described herein. In order to perform the load, the selected cluster 14 of multiple nodes is configured. In one embodiment, as described herein, blocks 712-716 begin when there is a cloud configuration deployment based on user input to module 216 of FIG.

図示された実施形態では、エミュレートされたノードクラスタの通信ネットワークコンフィギュレーション及び複数の利用可能ノード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 available nodes 16 each include communication network characteristics associated with the corresponding node. The node configurator 72 selects the multi-node cluster 14 based on the similarity between the communication network characteristics of the emulated node cluster and the communication network characteristics of the plurality of available nodes 16. Exemplary communication network characteristics include network topology and network parameters. Exemplary network parameters include communication speed and latency between nodes, network bandwidth between nodes, and packet error rate. The network topology is the physical and logical connectivity of the nodes, the identification of which nodes and groups of nodes in a node cluster are physically close or separated from each other, the type of connection between the nodes (Fiber optic links, satellite connections, etc.), as well as other suitable characteristics. The packet error rate includes dropped or lost packets, corrupted packets, rearranged packets, duplicate packets, etc. In one embodiment, the node configurator 72 prioritizes the communication network characteristics of the emulated node cluster and selects the multi-node cluster 14 based on the prioritized communication network characteristics, as described herein with respect to FIG. .

図示された実施形態では、ノードコンフィギュレータ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 available node 16 to identify the actual communication network configuration of the available node 16. Any suitable network performance test may be used. For example, the node configurator 72 may perform computer network management (administration), such as Packet Internet Groper (“Ping”), to test and collect data on network performance between available nodes 16. ) A request may be sent to each available node 16 to execute the utility. Based on the results of the ping test provided by each node 16, the node configurator 72 determines the actual communication network configuration of the available nodes 16. In one embodiment, ping is used in conjunction with other network performance tests to obtain the actual communication network configuration. The configurator 22 aggregates the network performance test results received from the node 16 to identify a network descriptor data file or object (eg, the data file 750 of FIG. 42) that identifies the actual communication network configuration of the available node 16. Create In one embodiment, configurator 22 initiates network performance tests and aggregates results based on user input to user interface 200. For example, a user selection of button 586 in FIG. 30 or other suitable input may cause configurator 22 to initiate a test and aggregate the results.

図示された実施形態では、ノードコンフィギュレータ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 control server 12 by implementing one or more network performance tests (eg, ping tests, etc.) on the emulated multi-node cluster. . In one embodiment, configurator 22 loads a data file associated with the emulated node cluster into accessible memory (eg, memory 90 of FIG. 3). For example, configurator 22 may load a data file based on the user identifying the location of the data file via user interface 200, such as via input to table 226 of FIG. Accordingly, configurator 22 compares the communication network characteristics identified in the data file generated in connection with available node 16 with the data file accessed in connection with the emulated node cluster. A comparison is made at block 712 of FIG.

図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 available node 16 accessible by control server 12 or a node of an emulated node cluster. As shown, the data file 750 illustratively identifies several groups of nodes including groups A, B,. Each group A, B, M includes a plurality of nodes that are physically close to each other, such as nodes on the same physical rack of the data center. Rows 6-11 identify network parameters related to network communication by Group A nodes, Rows 15-22 identify network parameters related to network communication by Group B nodes, and Rows 27-34 include Group M's. Identify network parameters related to network communication by the node. For example, rows 6 and 7 identify the latency, bandwidth, and error rate associated with communication between nodes in group A. Rows 8 and 9 identify latencies, bandwidths, and error rates associated with communication between group A and group B nodes. Similarly, rows 10 and 11 identify latencies, bandwidths, and error rates associated with communication between group A and group M nodes. Network parameters related to communications by Group B and Group M nodes are also identified in data file 750. Data file 750 may identify additional network configuration data, such as network topology data and other network parameters, as described herein.

図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 configurator 22 of FIGS. 1 and 3 to select a multi-node cluster 14 having network characteristics that substantially match the network characteristics of the emulated node cluster. Illustrated is a flow diagram 720 of exemplary detailed operations performed by a computing device. Reference is made to FIGS. 1 and 3 for the entire description of FIG. At block 722, network configuration is requested from each node of the emulated node cluster. For example, as described herein, a network performance test is initiated at each node and the test results are received by the computing device. At block 724, a network configuration data file (eg, data file 750) is created based on the network configuration data received from the emulated node cluster nodes as a result of the performance test. As described herein, blocks 722 and 724 may be performed offline by a computing system remote from cloud computing system 10, such as by computer 20 of FIG.

ブロック726では、コンフィギュレータ22は、各利用可能ノード16から又はデータセンタの利用可能ノード16のグループからネットワークコンフィギュレーションを要求する。例えば、コンフィギュレータ22は、ここに述べられるように、利用可能ノード16上でネットワーク性能テストを開始し、コンフィギュレータ22は、ネットワーク性能テストからもたらされるコンフィギュレーションデータを集約する。ブロック728では、コンフィギュレータ22は、利用可能ノード16から受信したネットワークコンフィギュレーションデータに基づき、ネットワークコンフィギュレーションデータファイル(例えばデータファイル750)を作成する。従って、コンフィギュレータ22は、エミュレートされたノードクラスタを記述しているデータファイルと、利用可能ノード16を記述しているデータファイルと、を含む2つのコンフィギュレーションデータファイルへのアクセスを有する。コンフィギュレータ22は、ブロック730に示されるように、2つのデータファイル内で識別されたネットワークプロパティの比較に基づき、エミュレートされたノードクラスタと類似したネットワーク特性を有する適切なノード16を利用可能ノード16から選択する。一実施形態では、コンフィギュレータ22は、ここに述べられるように、エミュレートされたノードクラスタ及び利用可能ノード16のノードハードウェア特性(例えば処理能力、メモリ容量等)の比較に基づき、ブロック730で適切なノードを更に選択する。   At block 726, the configurator 22 requests a network configuration from each available node 16 or from a group of available nodes 16 in the data center. For example, configurator 22 initiates a network performance test on available node 16, as described herein, and configurator 22 aggregates configuration data resulting from the network performance test. In block 728, the configurator 22 creates a network configuration data file (eg, data file 750) based on the network configuration data received from the available node 16. Thus, the configurator 22 has access to two configuration data files including a data file describing the emulated node cluster and a data file describing the available nodes 16. The configurator 22 makes available an appropriate node 16 having network characteristics similar to the emulated node cluster based on a comparison of the network properties identified in the two data files, as shown in block 730. Select from. In one embodiment, the configurator 22 is configured in block 730 as appropriate based on a comparison of the node hardware characteristics (eg, processing power, memory capacity, etc.) of the emulated node cluster and the available node 16 as described herein. Further nodes are selected.

ブロック732では、コンフィギュレータ22は、エミュレートされたノードクラスタに関連するデータファイル内で識別された所望のネットワークコンフィギュレーションパラメータに基づき、選択されたノード16をチューニングする(tunes)。例えば、選択されたノード16のネットワーク特性は、エミュレートされたノードクラスタのネットワーク特性に厳密には一致していなくてよく、更なるネットワークチューニングが必要になり又は所望されることもある。従って、オペレーティングシステム44、ネットワークトポロジドライバ48及び/又は他のネットワークコンポーネント並びに各ノード16のネットワークパラメータがチューニングされて、エミュレートされたノードクラスタの所望のネットワーク性能が更に達成される。一実施形態では、コンフィギュレータ22は、データファイル内で識別されたネットワーク特性に基づき、選択されたノード16を自動的にチューニングする。一実施形態では、ネットワークパラメータは、例えば図11〜17に関してここに述べられるように、ユーザインタフェース200のモジュール206を介して提供されたユーザ入力に基づき更にチューニングされる。   At block 732, the configurator 22 tunes the selected node 16 based on the desired network configuration parameters identified in the data file associated with the emulated node cluster. For example, the network characteristics of the selected node 16 may not exactly match the network characteristics of the emulated node cluster, and further network tuning may be required or desired. Accordingly, the operating system 44, network topology driver 48 and / or other network components and network parameters of each node 16 are tuned to further achieve the desired network performance of the emulated node cluster. In one embodiment, the configurator 22 automatically tunes the selected node 16 based on the network characteristics identified in the data file. In one embodiment, network parameters are further tuned based on user input provided via module 206 of user interface 200, eg, as described herein with respect to FIGS.

例示的な一実施形態では、コンフィギュレータ22は、ブロック730で以下の「ベストマッチング(best matching)」技術を用いて適切なノード16を選択するが、他の適切な方法又はアルゴリズムが提供されてもよい。コンフィギュレータ22は、データファイルのネットワークコンフィギュレーションデータ(例えばレイテンシ−p、帯域−p、エラー率−p)を比較するときにZ個のネットワークプロパティ(Z network properties)(即ち特性)を考慮し、ノードX,X,…,Xはエミュレートされたノードクラスタのノードである。コンフィギュレータ22は、ネットワークプロパティp,p,…,pに関してノードX,X,…,Xに最も類似している利用可能ノード16のサブセット(例えばノードY,Y,…,Y)を選択する。この選択を行うために他のアルゴリズムが用いられてもよいが、利用可能ノード16の適切なサブセットを発見可能なようにコンフィギュレータ22によって実装される例示的アルゴリズムは、ネットワークプロパティに優先順位を付けることを含む。例示的な優先順位付けにおいては、プロパティpはプロパティpよりも高い優先順位を有しており、プロパティpはプロパティpk+1よりも高い優先順位を有する。従って、図示された例では、ノード選択に際してレイテンシは帯域よりも高い優先順位を与えられ、帯域は、ノード選択に際してエラー率よりも高い優先順位を与えられる。ネットワークノードX及びYの間でネットワークプロパティNの値をリターンするために、入力N(ネットワークプロパティ)、X(ノード)及びY(ノード)をパラメータとする関数P(N,X,Y)がコンフィギュアされてよい。そのような関数は、ブロック724,728で作成されたネットワーク記述データファイル/オブジェクト(例えばデータファイル750)を用いて実装されてよい。ノードL={Y,Y,Y,…}の初期リストは、全ての利用可能ノード16を含む。1≦g≦R(RはL内のノードの総数、R≧Q)とするときに、各ノードYに対して次の等式(1)を適用する。
Sx(g)=Σ1≦N≦Z,1≦h≦R,g≠hP(N,Y,Y) …(1)
In one exemplary embodiment, the configurator 22 selects the appropriate node 16 using the following “best matching” technique at block 730, although other suitable methods or algorithms may be provided. Good. The configurator 22 considers Z network properties (ie, characteristics) when comparing network configuration data (eg, latency −p 0 , bandwidth −p 1 , error rate −p Z ) of the data file. Nodes X 1 , X 2 ,..., X Q are nodes of the emulated node cluster. Configurator 22, the network property p 1, p 2, ..., node X 1, X 2 with respect to p X, ..., a subset of the available nodes 16 that are most similar to X Q (eg, node Y 1, Y 2, ... , Y Q ). Although other algorithms may be used to make this selection, an exemplary algorithm implemented by configurator 22 to prioritize network properties so that a suitable subset of available nodes 16 can be found. including. In the exemplary prioritization, property p 0 has a higher priority than property p 1 and property p k has a higher priority than property p k + 1 . Accordingly, in the illustrated example, latency is given higher priority than bandwidth when selecting nodes, and bandwidth is given higher priority than error rate when selecting nodes. In order to return the value of the network property N between the network nodes X and Y, a function P (N, X, Y) with the inputs N (network property), X (node) and Y (node) as parameters is May be a figure. Such a function may be implemented using the network description data file / object (eg, data file 750) created at blocks 724 and 728. The initial list of nodes L = {Y 1 , Y 2 , Y 3 ,...} Includes all available nodes 16. When 1 ≦ g ≦ R (R is the total number of nodes in L, R ≧ Q), the following equation (1) is applied to each node Y g .
Sx (g) = Σ 1 ≦ N ≦ Z, 1 ≦ h ≦ R, g ≠ h P (N, Y g , Y h ) (1)

1≦i≦Q(Qはエミュレートされたノードクラスタ内のノードの数)とするときに、エミュレートされたノードクラスタ内の各ノードXに対して次の等式(2)を適用する。
Sy(i)=Σ1≦N≦Z,1≦j≦R,i≠jP(N,Y,Y) …(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のための利用可能ノードYを探し始める。従って、ノードYはオリジナルノードXをシミュレートするために用いられ、ノードYはリスト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 cloud computing system 10. Therefore, node Y W is used to simulate original node X i and node Y W is removed from list L. The algorithm continues until a full set of available nodes 16 is selected. Other suitable methods and algorithms for selecting the node 16 at block 730 may be provided.

例示的な一実施形態では、コンフィギュレータ22は、以下の方法を用いて、選択されたノード16をブロック732でチューニングするが、他の方法又はアルゴリズムが提供されてもよい。この方法では、コンフィギュレータは、各ノード16上で適切なネットワークシミュレーションレイヤを自動的に作成するコンフィギュレーションアプリケーションを実行する。ネットエム(Netem)ネットワーク遅延及び損失エミュレータを用いる場合には、以下のアルゴリズムがコンフィギュレータ22によって実装される。エミュレートされたノードクラスタの各ノードに対して、Gはエミュレートされたそのノードが属するノードグループである(即ち各ノードグループは例えば同じラック内にあるような互いに物理的に近いノードを備える)。各グループGに対してコンフィギュレータ22によって以下が行われ、ここで、1≦i≦Eであり、Eはエミュレートされたノードクラスタに関連するデータファイルにおいて定義されるグループの総数である。コンフィギュレータ22は、ノードGからノードGに出てゆくトラフィックに対して所望のネットワークプロパティp,…,pを調べる。コンフィギュレータ22は、例えばコマンド「tc class add dev」を用いる等してサービスの新たなクラスを作成する。コンフィギュレータ22は、例えばコマンド「tc qdisc add dev」を用いる等して新たな待ち行列規律(queuing discipline)を作成する。コンフィギュレータ22は、そのクラス又はその待ち行列規律「qdisc」に対して所望のネットワークプロパティをセットする。そのクラスで帯域及びバーストネットワークプロパティが指定され、その待ち行列規律で他のプロパティ(レイテンシ、エラー率等)が指定される。各ノードYに対して、GyはそのノードYが属するグループである。コンフィギュレータ22は、宛先(destination)IPアドレス(ノードYのアドレス)に基づきフィルタをコンフィギュアし、それをクラスGyに割り当てる。このことは、例えば、コマンド「tc filter add dev」を用いてなされ得る。 In one exemplary embodiment, the configurator 22 tunes the selected node 16 at block 732 using the following method, although other methods or algorithms may be provided. In this method, the configurator executes a configuration application that automatically creates an appropriate network simulation layer on each node 16. The following algorithm is implemented by the configurator 22 when using a Netem network delay and loss emulator. For each node of the emulated node cluster, G s is the node group to which that emulated node belongs (ie each node group comprises nodes that are physically close to each other, eg in the same rack) ). Following the configurator 22 for each group G i is performed, wherein a 1 ≦ i ≦ E, E is the total number of groups defined in the data file associated with the emulated node cluster. The configurator 22 checks the desired network properties p 0 ,..., P N for the traffic leaving the node G s to the node G i . The configurator 22 creates a new class of service using, for example, the command “tc class add dev”. The configurator 22 creates a new queuing discipline using, for example, the command “tc qdisc add dev”. The configurator 22 sets the desired network properties for that class or its queuing discipline “qdisc”. Bandwidth and burst network properties are specified in the class, and other properties (latency, error rate, etc.) are specified in the queuing discipline. For each node Y n, Gy n is the group to which the node Y n belongs. Configurator 22, a filter configurable based on the destination (destination) IP address (address of the node Y n), and assign it to the class Gy n. This can be done, for example, using the command “tc filter add dev”.

結果として、ネットエムエミュレータが起動されると、選択されたノードクラスタは、少なくとも以下のネットワークプロパティに関して、エミュレートされたノードクラスタと同等のネットワーク性能を有することになり、即ちこれらのネットワークプロパティは、最小レイテンシ、最大帯域、最大バースト率、最小パケット破損率、最小パケット損失率、及び、最小パケット並び替え率である。ブロック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 node 16 at block 732 may be provided.

一実施形態では、図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 available nodes 16 until all clusters 14 of nodes corresponding to the emulated node cluster are selected. In one embodiment, the emulated node cluster is theoretical in that a physical node 16 may or may not exist, but the desired network configuration is known and it is Provided as input to configurator 22 for making node selections. In one embodiment, once a multi-node cluster 14 is selected based on the emulated node cluster, the configurator 22 may have multiple nodes with the desired network configuration, such as with a batch processor 80 described herein. Operate to test various workloads on a selected cluster 14 consisting 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 configurator 22 of FIGS. 1 and 3 to allocate a multi-node cluster 14 to the cloud computing system 10. Reference is made to FIGS. 1-3 for the entire description of FIG. At block 762, the configurator 22 (eg, data monitor configurator 82) initiates a hardware performance assessment test for the group of available nodes 16 in one or more data centers to determine the actual hardware of the group of available nodes 16. Get performance characteristics. At block 764, the node configurator 72 compares the actual hardware performance characteristics of the group of available nodes 16 with the desired hardware performance characteristics identified based on the user selection through the user interface 200. At block 766, the node configurator 72 selects a subset of nodes 16 for the cloud computing system 10 from the group of available nodes 16 based on the comparison at block 764. A subset of nodes 16, such as node cluster 14 or a group of nodes 16 of node cluster 14, operates to share the processing of the workload, as described herein. The number of nodes 16 in the subset of nodes 16 is equal to or less than the number of nodes 16 requested by the user for the node cluster 14, as described herein.

一実施形態では、ノードコンフィギュレータ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 cloud computing system 10 that has the desired hardware performance characteristics. The user request identifies desired hardware performance characteristics based on selection of selectable hardware configuration data such as, for example, selection box 259, input 262 and field 256 of FIG. 8, and selectable input 265 of FIG. In one embodiment, the fields of table 264 of FIG. 9 are selectable / modifiable to further identify the desired hardware performance characteristics. Node configurator 72 may identify desired hardware performance characteristics based on other suitable selectable inputs and fields of user interface 200. The node configurator 72 is based on the user requirements of the multi-node cluster and the desired hardware performance characteristics identified in the request (eg, hardware similarity between the available node 16 and the requested multi-node cluster). A group of available nodes 16 for testing in the hardware performance assessment test. In the illustrated embodiment, the number of nodes 16 in the group of available nodes 16 is greater than the number of nodes 16 in the multi-node cluster requested in the user request.

例示的なハードウェア性能特性は、ネイティブな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 node 16 has a 64-bit processor architecture or a 32-bit processor architecture to support workloads that require native 32-bit and / or 64-bit operations. Including the computer architecture of the node 16. Other exemplary hardware performance characteristics include the manufacturer of one or more processors 40 of node 16 (AMD, Intel, Nvidia, etc.), one or more processors of node 16 40 operating frequencies and node 16 read / write performance. Still other exemplary hardware performance characteristics are: system memory capacity and disk space (storage capacity), number and size of processors 40 in node 16, cache size of node 16, available instruction set of node 16, node 16 Disk I / O performance and hard drive speed, ability of node 16 to support emulating software, chipset, type of memory of node 16, network communication latency / bandwidth between nodes 16, and other suitable hardware Includes performance characteristics. In the illustrated embodiment, each of these hardware performance characteristics may be specified as desired by the user based on a user request provided via the user interface 200. In addition, one or more hardware performance assessment tests operate to determine these actual hardware performance characteristics of each selected available node 16.

一実施形態では、ノードコンフィギュレータ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 block 762, one or more hardware that operates to identify or determine the hardware performance characteristics of the node 16 and to generate hardware configuration data representing these characteristics. A hardware performance assessment test is started by deploying a hardware performance assessment tool to each node 16. The data aggregator 84 then aggregates the hardware performance data provided by the hardware performance assessment tool so that the node configurator 72 can determine the actual hardware performance characteristics of each node 16 based on the aggregated data. To work. The exemplary assessment tool identifies one or more processor types of node 16 and various characteristics / features of the processor (eg, manufacturer, processor speed and capacity, available memory and disk space, etc.). CPU identification tools ("CPUID") that include executable operational code for such tools are known in the art. Other exemplary monitoring tools, when executed by node 16, may include instruction set extensions or instruction types to determine an instruction set that is compatible with node 16 and / or compatible with the manufacturer of one or more processors. Includes software code modules that operate to test. Another exemplary monitoring tool is a software code module that, when executed by node 16, operates to test whether node 16 has a 64-bit architecture or a 32-bit architecture. including. For example, such a test involves issuing a command or processing request and measuring how long it takes the processor to complete the request. Other suitable assessment tools may be provided.

一実施形態では、ブロック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 nodes 16 in the subset of nodes 16 selected at block 766 is less than the number of nodes 16 identified in the user request. Accordingly, configurator 22 repeats steps 762-766 until the number of selected nodes 16 is equal to the number of nodes 16 requested in the user request to obtain an additional subset of nodes 16. In one embodiment, after selecting the first subset of nodes 16 at block 766, the node configurator 72 may select a different available node 16 than the first group of available nodes 16 initially tested at block 762. Select the second group. The data monitor configurator 82 initiates a hardware performance assessment test for the second group of available nodes 16 to obtain the actual hardware performance characteristics of the second group of available nodes 16, and the node configurator 72 Based on the comparison by the node configurator 72 of the actual and desired hardware performance characteristics of the second group of available nodes to the cloud computing system 10 from the second group of available nodes 16 Select the second subset of nodes 16. In one embodiment, when the total number of nodes in the selected subsets of node 16 equals the number of nodes 16 requested in the user request, node configurator 72 selects the selected subsets of nodes 16. It is configured as a cluster 14 of multiple nodes of the cloud computing system 10 (ie, the node cluster 14 is configured with user-specified configuration parameters and a workload is executed on the node cluster 14).

図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 configurator 22 of FIGS. 1 and 3 to select a multi-node cluster 14 having hardware characteristics substantially matching the desired hardware performance characteristics specified by the user. An exemplary detailed operational flow diagram 770 performed by the computing device above is shown. Reference is made to FIGS. 1-3 for the entire description of FIG. At block 772, node configurator 72 receives a user request for N nodes 16 having the desired hardware performance characteristics, where N is any suitable number of desired nodes 16. In one embodiment, the user request is based on user selection of selectable hardware configuration data (eg, FIGS. 8 and 9) as described herein with respect to FIG. At block 774, the node configurator 72 requests or reserves N + M nodes 16 from the accessed one or more data center or cloud available nodes 16. M is any suitable number such that the number of reserved available nodes 16 (N + M) exceeds the number N of requested nodes 16. For example, M may be equal to N or may be equal to N times. Alternatively, node configurator 72 may request N available nodes 16 at block 774. In one embodiment, (N + M) nodes 16 are allocated or reserved using an application specific API (eg, Amazon AWS API, open stack API, custom API, etc.). Node configurator 72 requests available node 16 at block 774 (and block 788) based on available node 16 having hardware characteristics similar to the desired cluster of nodes. For example, node configurator 72 may reserve available nodes 16 of the same node type (eg, small, medium, large, x-large as described herein).

ブロック776では、図43に関してここに述べられるように、データモニタコンフィギュレータ82は、1つ以上のハードウェア性能アセスメントツールを展開することによって、各予約されたノード16についてハードウェア性能アセスメントテストを開始し、データアグリゲータ84は、各ノード16で開始されたハードウェア性能アセスメントテストからもたらされるハードウェア性能データを集約する(例えば収集し記憶する)。一実施形態では、ハードウェア性能アセスメントツールは、ノード16に予めインストールされているソフトウェアコードモジュールであり、あるいはSSH、HTTP又は何らかの他の適切なプロトコル/メカニズムを用いてノード16にインストールされるソフトウェアコードモジュールである。   At block 776, the data monitor configurator 82 initiates a hardware performance assessment test for each reserved node 16 by deploying one or more hardware performance assessment tools, as described herein with respect to FIG. The data aggregator 84 aggregates (eg, collects and stores) hardware performance data resulting from hardware performance assessment tests initiated at each node 16. In one embodiment, the hardware performance assessment tool is a software code module that is pre-installed on the node 16, or software code that is installed on the node 16 using SSH, HTTP, or some other suitable protocol / mechanism. It is a module.

ブロック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 block 780, the node configurator 72 compares the user requested desired hardware performance characteristic (block 772) with the actual hardware performance characteristic resulting from the hardware performance assessment test. Based on the similarity in actual and desired hardware performance characteristics, the node configurator 72 selects the X nodes 16 that best match the desired hardware characteristics from (N + M) reserved nodes 16 at block 782. Select, where X is any number less than or equal to the number N of requested nodes 16. Any suitable algorithm may be used to compare the hardware characteristics and select the best matching node 16, such as a “best matching” technique based on the hardware characteristics described herein with respect to FIG. In block 784, the node configurator 72 uses the remaining unselected available nodes 16 (eg, (N + M) -X) so that they are available for use in other cloud computing systems. Release to one or more data centers or clouds, for example using application specific APIs. If, at block 786, the number X of selected nodes 16 is less than the number N of requested nodes 16, the node configurator 72, at block 788, adds additional nodes 16 from one or more data centers / clouds. Request or make a reservation. The configurator 22 then repeats steps 776-786 until the total number of selected nodes 16 (ie, the total number of nodes 16 resulting from all iterations of the selection method) is equal to the requested number N of nodes 16. The selected nodes 16 are then configured as a multi-node cluster 14 for performing cloud computing tasks assigned by the user.

一実施形態では、図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 multi-node cluster 14 having the desired hardware and network characteristics. In one embodiment, the method of FIG. 44 selects a node 16 further based on proximity in network characteristics. In one embodiment, the hardware characteristics identified in the user request at block 772 are prioritized prior to selecting the node 16 for the node cluster 14. In one embodiment, the method of FIG. 44 (and FIG. 43) uses the configurator to find an appropriate match between the actual selected multi-node cluster 14 and the desired multi-node cluster specified by the user. 22 is automatically executed. Alternatively, the configurator 22 may provide the user with an option to initiate the operations of FIGS. 43 and 44, for example based on selectable inputs of the user interface 200.

(クラウドコンピューティングシステムのハードウェアコンフィギュレーションを選択及び/又は修正すること)
図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 configurator 22 of FIGS. 1 and 3 to select a hardware configuration for a multi-node cluster 14 of the cloud computing system 10. Reference is made to FIGS. 1 and 3 for the entire description of FIG. At block 802, the node configurator 72 is configured to execute at least one node 16 of the multi-node cluster 14 based on execution of the workload shared by the multi-node cluster 14 of the cloud computing system 10. In execution, it is determined that it has operated below the threshold operation capability. The threshold capability is illustratively based on hardware usage by the at least one node 16, for example, utilization of the processor 40 and / or memory 42 when executing a workload. The threshold operating capability may be any suitable threshold such as, for example, maximum operating capability (100%) or 90% operating capability. At block 804, the node configurator 72 is based on the determination at block 802 such that the multi-node cluster 14 with the modified hardware configuration has at least one of reduced computing capacity and reduced storage capacity. Select a modified hardware configuration for a multi-node cluster 14.

一実施形態では、ノードコンフィギュレータ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 different node 16 from the plurality of available nodes 16 of the data center and selects the at least one node 16 of the multi-node cluster 14 as the at least one different node 16. Select the modified hardware configuration by swapping with. The different node 16 has at least one of a reduced computing capacity and a reduced storage capacity compared to the node 16 that is the replacement target of the cluster 14 of the plurality of nodes. For example, the node configurator 72 has a slower processor 40, has fewer processing cores, has less memory capacity, or any other suitable A different node 16 with reduced hardware characteristics is selected from the available nodes 16. For example, the node 16 being replaced has a higher computing than is needed to process the workload, such that some of the hardware of the node 16 to be replaced is not utilized during workload execution. Has capacity or memory capacity. In the illustrated embodiment, the different node 16 has equivalent performance (eg, equivalent execution speed, etc.) as the one or more nodes 16 to be replaced, but the reduced computing power of the different node 16 and Selected to operate more efficiently to process workload due to storage capacity. Thus, a multi-node cluster 14 modified at that different node 16 is attributed to the reduced computing and / or storage capacity of that different node 16 with little or no overall performance loss. And run the workload more efficiently. For example, the node cluster 14 executes the workload with the different nodes 16 at a speed substantially the same as the case with the nodes 16 to be replaced.

一実施形態では、ノードコンフィギュレータ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 more nodes 16 and removes them from the multi-node cluster 14 without exchanging the node 16 to be replaced with a different node 16. Select and implement the modified hardware configuration. For example, the node configurator 72 determines that one or more nodes 16 of the node cluster 14 are not required to execute a workload with similar execution performance for the remaining nodes 16 of the node cluster 14. Accordingly, the node configurator 72 removes the one or more nodes 16 from the node cluster 14 and releases the one or more nodes 16 to the data center. In one embodiment, node configurator 72 selects and implements the modified hardware configuration of block 804 by reducing at least one of computing power and / or memory capacity of one or more nodes 16 of node cluster 14. To do.

図示された実施形態では、コンフィギュレータ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 configurator 22 provides access to hardware usage cost data that identifies hardware usage costs associated with using various hardware resources (eg, node 16) for the node cluster 14. Have. For example, cloud computing services (eg, Amazon, open stack, etc.) charge usage costs based on each selected 16 computing capacity and memory capacity of the node cluster 14. Thus, in one embodiment, the node configurator 72 uses usage cost data associated with using the at least one different node 16 in the multi-node cluster 14 and the at least one replacement object in the multi-node cluster 14. Based on the comparison by the node configurator 72 of the usage cost data associated with using the resulting node 16, the at least one different node 16 to be exchanged with one or more nodes 16 of the node cluster 14 is selected. In one embodiment, the node configurator 72 selects the at least one different node 16 on the condition that the usage cost of the at least one different node 16 is lower than the usage cost of the node 16 to be replaced. . For example, the node configurator 72 calculates the cost of hardware resources (eg, node 16) used in the multi-node cluster 14 and determines the cost benefits associated with possible hardware configuration changes in the multi-node cluster 14. To do. For example, the node configurator 72 selects one or more different nodes 16 that will result in a more efficient use of hardware resources allocated to the node cluster 14 with lower usage costs and minimal performance loss. . In one embodiment, configurator 22 configures a network configuration or other configuration based on a similar cost analysis.

図示された実施形態では、コンフィギュレータ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 configurator 22 monitors the hardware usage of each node 16 by deploying one or more hardware usage monitoring tools to each node 16 of the multi-node cluster 14. By executing the hardware usage monitoring tool by each node 16, at least one processor 40 of each node 16 uses or uses computer hardware (eg, processor 40, memory 42, memory controller, etc.) in executing the workload. To monitor. The monitoring tool then provides the node 16 with hardware usage data accessible by the configurator 22 that relates to the hardware usage of each node 16 in executing the workload. The data aggregator 84 of the configurator 22 aggregates the hardware usage data provided by each node 16 so that the configurator 22 can determine the hardware usage of each node 16 based on the aggregated hardware usage data. Operate. An exemplary hardware monitoring tool is described herein with respect to the monitoring module 214 of FIGS. For example, the IOStat and VMStat tools may be used to indicate the percentage of time that the processor 40, virtual memory and / or memory controller are busy executing instructions or performing I / O operations during workload execution, It includes a code module that can be executed by the node processor 40 to monitor the percentage of time that these components are waiting / stopped, as well as other suitable usage parameters. Based on the determined hardware utilization of the node 16, the node configurator 72 may determine that it requires less memory or less computing power than that originally requested and allocated, Also, as described herein, the node 16 may be replaced or removed from the cluster 14.

一実施形態では、ノードコンフィギュレータ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 user interface 200 that represents the modified hardware configuration selected at block 804. Based on a user selection of selectable hardware configuration data, the node configurator 72 modifies the hardware configuration of the multi-node cluster 14, eg, replaces or removes the node 16 of the node cluster 14. Exemplary selectable hardware configuration data is shown with selectable inputs 259 and 262 in table 258 of FIG. For example, the node configurator 72 recommends the recommended modified hardware configuration of the node cluster 14 by listing the recommended nodes 16 of the node cluster 14 that includes one or more different nodes 16 or excluded nodes 16. It may be displayed in table 258. The user selects the input 259 corresponding to the listed node 16 to approve the hardware change, and the node configurator 72 accepts the approved change at the start of the workload deployment, as described herein. Based on this, the modified node cluster 14 is configured. In one embodiment, the hardware usage cost is also displayed in the user interface 200 and one or more recommended hardware configurations of the node cluster 14 allow the user to select a configuration for implementation based on the associated usage cost. Making it possible. Other suitable interfaces may be provided to display the modified hardware configuration of the multi-node cluster 14. In one embodiment, the node configurator 72 automatically configures the cluster 14 of multiple nodes with the modified hardware configuration selected at block 804 without user input or confirmation, and the modified The execution of the workload is started in the node cluster 14.

図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 configurator 22 of FIGS. 1 and 3 to select the hardware configuration of a multi-node cluster 14 of the cloud computing system 10. A detailed operational flow diagram 810 is shown. 1-3 are referred with respect to the whole description of FIG. At block 812, the configurator 22 includes selectable node data to allow user selection at block 814 of the desired multi-node cluster 14 with the desired hardware configuration, as described herein. A user interface 200 is provided. At block 816, the configurator 22 selects and configures the multi-node cluster 14 and deploys the workload to the multi-node cluster 14, as described herein. At block 818, the configurator 22 installs and / or configures a hardware usage monitoring tool on each node 16 of the node cluster 14. In one embodiment, the monitoring tool is selected by the user via the monitoring module 214 of FIGS. Alternatively, the configurator 22 may automatically deploy one or more monitoring tools such as the IOStat tool and the VMStat tool based on the start of the method of FIG. At block 820, the workload configurator 78 initiates execution of the workload on the multi-node cluster 14, and at block 822, the data aggregator 84 continues to or after each execution of each node 16. Collect and store hardware usage data provided by monitoring tools.

ノードクラスタ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 node cluster 14 is complete, the node configurator 72 determines the hardware usage of each node 16 based on the hardware usage data, as represented by block 824. At block 826, the node configurator 72 determines whether the hardware usage of each node 16 has reached or exceeded the usage threshold (eg, 100% usage, 90% usage, or any other suitable usage threshold). In one embodiment, the node configurator 72 compares a plurality of usage measurements, such as processor usage, memory usage, memory controller usage, etc., to one or more usage thresholds at block 826. If yes at block 826, the node cluster 14 is determined to be suitable for further workload execution, ie no adjustments are made to the hardware configuration of the node cluster 14 by the configurator 22. For each node 16 that is below the utilization threshold at block 826, the node configurator 72 is a different node 16 for replacement that has hardware suitable for running the workload, as described herein with respect to FIG. A different node 16 for exchange having a computing capacity or storage capacity lower than that of the node 16 to be exchanged (i.e. having performance equivalent to that of the one or more nodes 16 to be exchanged). Are identified from the available nodes 16. At block 830, the node configurator 72 displays any recommendation identified in block 828 by displaying on the user interface 200 the recommended hardware configuration of the multi-node cluster 14, as described herein with respect to FIG. Provide feedback to users of hardware configuration changes. At block 832, the node configurator 72 removes the node 16 of the original node cluster 14 and / or replaces the node 16 with a different node 16 identified at block 828 for future execution of the workload. Apply recommended hardware configuration changes.

一実施形態では、ユーザインタフェース200の選択可能入力でのユーザによる選択によって、ノードコンフィギュレータ72は、図45及び図46で述べたハードウェアコンフィギュレーション方法を実施して、ワークロードを実行するのに適したノードクラスタ14のコンフィギュレーションを見出す。代替的には、コンフィギュレータ22は、例えばバッチ処理ジョブの開始に際して等、図45及び図46の方法を自動的に実装して、ワークロード性能を著しくは制限しない、複数ノードのクラスタ14の適切な代替的コンフィギュレーションを見出す。   In one embodiment, selection by the user at the selectable input of the user interface 200 allows the node configurator 72 to implement the hardware configuration method described in FIGS. 45 and 46 to execute the workload. Find the configuration of the node cluster 14. Alternatively, the configurator 22 automatically implements the methods of FIGS. 45 and 46, such as at the start of a batch processing job, to ensure that the appropriate performance of the multi-node cluster 14 does not significantly limit workload performance. Find alternative configurations.

(クラウドコンピューティングシステムをチューニングすること)
図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 configurator 22 of FIGS. 1 and 3 to select an appropriate configuration for a multi-node cluster 14 of the cloud computing system 10 from a plurality of available configurations. FIG. 850 is shown. Reference is made to FIGS. 1 and 3 for the entire description of FIG. At block 852, the configurator 22 (batch processor 80) initiates multiple executions of the workload on the multi-node cluster 14 based on the different sets of configuration parameters for the multi-node cluster 14. Configuration parameters provided by the configurator 22 as input to the node 16 (eg, via one or more configuration files 28 as described herein) may be used to provide that different set of configuration parameters. Adjustable by the configurator 22, the workload is executed by the multi-node cluster 14 with each different set of configuration parameters. In one embodiment, configurator 22 adjusts configuration parameters for each workload execution based on user input provided via user interface 200, as described herein. In one embodiment, these configuration parameters are at least one of at least one node 16 workload container operational parameter, at least one node 16 boot time parameter, and at least one node 16 hardware configuration parameter. Including one.

ブロック854では、ノードコンフィギュレータ72は、コンフィギュレーションパラメータの当該複数の異なるセットから、複数ノードのクラスタ14のためのコンフィギュレーションパラメータのセットを選択する。ブロック856では、ワークロードコンフィギュレータ78は、その選択されたコンフィギュレーションパラメータのセットでコンフィギュアされた複数ノードのクラスタ14による実行のために、ワークロードを複数ノードのクラスタ14に提供する(展開する)。従って、ワークロードの将来の実行は、その選択されたコンフィギュレーションパラメータのセットに基づくコンフィギュレーションを有する複数ノードのクラスタ14によって行われる。   At block 854, the node configurator 72 selects a set of configuration parameters for the multi-node cluster 14 from the plurality of different sets of configuration parameters. At block 856, the workload configurator 78 provides (deploys) the workload to the multi-node cluster 14 for execution by the multi-node cluster 14 configured with the selected set of configuration parameters. . Thus, future executions of the workload are performed by a multi-node cluster 14 having a configuration based on the selected set of configuration parameters.

ブロック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 block 854 includes at least one performance characteristic of the multi-node cluster 14 monitored at each execution of the workload (eg, with a monitoring tool) and at least one of the multi-node cluster 14. Based on a comparison by the node configurator 72 with the desired performance characteristics. For example, in one embodiment, the node configurator 72 selects a set of configuration parameters that provide the best matching performance characteristics of the node cluster 14 to the desired performance characteristics specified by the user during workload execution. In the illustrated embodiment, the desired performance characteristics are identified by the node configurator 72 based on user input provided via the user interface 200. For example, the user interface 200 can fill a selectable input or fill that allows the user to select a desired performance characteristic of the multi-node cluster 14 when executing a selected workload. ) Includes selectable performance data such as fields. See, for example, fillable field 276 of FIG. 10 or any other suitable selectable input or field of user interface 200 configured to receive user input to identify a desired performance characteristic. . In other examples, the node configurator 72 identifies desired performance characteristics, for example, based on user selection of inputs 238, 228, 230, 232 of FIG. 7 and / or buttons 494 of the batch processing module 212 of FIG. A user-provided file containing data to be loaded may be loaded.

ワークロード実行に際してユーザによって指定されると共にモニタされる例示的な性能特性は、ワークロード実行時間、ノード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 node 16, memory utilization by node 16, power consumption by node 16, hard disk input / output by node 16 (I / O) usage and network usage by the node 16 are included. Other suitable performance characteristics may be monitored and / or specified by the user, such as performance characteristics monitored with the monitoring tools described herein with respect to FIGS.

一実施形態では、ブロック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 block 854 is such that a value associated with one or more performance characteristics monitored during execution of the workload is associated with one or more corresponding desired performance characteristics. Further, it is based on the determination by the node configurator 72 to be included in the allowable value range. For example, tolerance ranges associated with corresponding desired performance characteristics (eg, entered by the user or set by the node configurator 72) are 85% -100% for processor usage and 85% -100 for memory usage. % May be included. Accordingly, the node configurator 72 selects a set of configuration parameters that results in 95% processor utilization and 90% memory utilization, but a set of configuration parameters that results in 80% processor utilization and 75% memory utilization. Reject. If multiple sets of configuration parameters provide performance characteristics that satisfy the acceptable range of values, the node configurator 72 may determine the highest performance value, lowest usage cost, performance characteristic priority, or other suitable factor, etc. Select a set of configuration parameters based on additional factors. If there is no set of configuration parameters that result in acceptable performance characteristics, the node configurator 72 selects the set that yields the best match performance characteristics and automatically sets the configuration parameters until an appropriate set is found. Further adjustments and / or notification to the user that a set of acceptable configuration parameters was not found.

一実施形態では、ノードコンフィギュレータ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 block 854 is further based on the score value assigned to the selected set of configuration parameters. For example, the node configurator 72 selects the set of configuration parameters that yields the highest score value. The score value ranks a set of configuration parameters based on how well the performance characteristics of the node cluster 14 match the desired performance characteristics.

一実施形態では、ブロック854でのコンフィギュレーションパラメータのセットの選択は、異なる利用可能ノード16を使用すること又は複数ノードのクラスタ14での異なるネットワークコンフィギュレーションを使用することに関連する使用コストデータの比較に更に基づく。例えば、ノードコンフィギュレータ72は、スレッショルド利用レベルよりも多いプロセッサ利用及びメモリ利用、並びに、スレッショルドコストレベルよりも低い使用コストをもたらすコンフィギュレーションパラメータのセットを選択してよい。使用コストに関する任意の他の適切な考慮がブロック854での選択に適用されてもよい。   In one embodiment, the selection of a set of configuration parameters at block 854 may include the use of cost data associated with using different available nodes 16 or using different network configurations in a multi-node cluster 14. Further based on comparison. For example, the node configurator 72 may select a set of configuration parameters that results in more processor usage and memory usage than the threshold usage level, and usage costs lower than the threshold cost level. Any other suitable consideration regarding cost of use may be applied to the selection at block 854.

一実施形態では、コンフィギュレータ22は、ユーザによって提供された(例えばユーザインタフェース200を介して)コンフィギュレーションパラメータの初期セットに基づき、ノードクラスタ14上でのワークロードの第1の実行を開始する。この実施形態では、所望の性能特性をもたらすコンフィギュレーションパラメータのセットを見出すために、ノードコンフィギュレータ72は、自動的に初期セットの少なくとも1つのコンフィギュレーションパラメータを調節すると共にこの修正された初期セットに基づきワークロードの追加的な実行を開始することによって、コンフィギュレーションパラメータの種々のセットを網羅する。このようなコンフィギュレーションパラメータの種々のセットを探索するために、任意の適切な設計スペース探索方法又はアルゴリズムが用いられてよい。   In one embodiment, configurator 22 initiates a first execution of a workload on node cluster 14 based on an initial set of configuration parameters provided by a user (eg, via user interface 200). In this embodiment, the node configurator 72 automatically adjusts at least one configuration parameter of the initial set and based on this modified initial set to find a set of configuration parameters that provide the desired performance characteristics. Cover different sets of configuration parameters by initiating additional executions of the workload. Any suitable design space search method or algorithm may be used to search for various sets of such configuration parameters.

一実施形態では、データモニタコンフィギュレータ82は、1つ以上のノード及びネットワーク性能モニタリングツール(例えば図26〜29で述べられている)を複数ノードのクラスタ14の各ノード16に展開する。モニタリングツールは、各ノード16によって(又は制御サーバ12によって)実行されるときに、ここに述べられるように、ワークロードの各実行に際して各ノード16の性能特性をモニタするように動作する。実行されたモニタリングツールは、コンフィギュレータ22によってアクセス可能な、対応するノード16の性能特性を表す性能データを生成する。データアグリゲータ84は、各ノード16の性能モニタリングツールによって提供された性能データを集約し、ノードコンフィギュレータ72は、集約された性能データに基づきブロック854でコンフィギュレーションパラメータのセットを選択する。   In one embodiment, the data monitor configurator 82 deploys one or more nodes and network performance monitoring tools (eg, as described in FIGS. 26-29) to each node 16 of the multi-node cluster 14. The monitoring tool, when executed by each node 16 (or by the control server 12), operates to monitor the performance characteristics of each node 16 at each execution of the workload, as described herein. The executed monitoring tool generates performance data representing the performance characteristics of the corresponding node 16 that can be accessed by the configurator 22. Data aggregator 84 aggregates the performance data provided by the performance monitoring tool of each node 16 and node configurator 72 selects a set of configuration parameters at block 854 based on the aggregated performance data.

ここに述べられるように、複数ノードのクラスタ14のコンフィギュレーションパラメータの種々のセットは、ワークロードコンテナの動作パラメータ、ブート時間パラメータ、及び、ハードウェアコンフィギュレーションパラメータの少なくとも1つを含む。ワークロードコンテナの例示的な動作パラメータは、図4〜6,19及び図20に関してここに述べられており、例えば、リード/ライト動作、ファイルシステム動作、ネットワークソケット動作及びソーティング動作の少なくとも1つに関連する動作パラメータを含む。動作パラメータは、図19及び図20に示されここに述べられている選択可能データ(例えば入力及びフィールド)のユーザ選択に基づき、ワークロードコンテナコンフィギュレータ76によって修正される。リード/ライト動作に関連する例示的な動作パラメータは、リード/ライト動作のためのメモリバッファサイズ及びリード/ライト動作に際して転送されるデータブロックのサイズを含む。ファイルシステム動作に関連する例示的な動作パラメータは、各ノード16のメモリ内に記憶されるファイルシステム記録の数、及び、ファイルシステムのための要求を処理するために割り振られる各ノード16の処理スレッドの数の少なくとも一方を備える。ソーティング動作に関連する例示的な動作パラメータは、ソーティング動作を行うときにマージするデータストリームの数を含む。ワークロードコンテナの他の適切な動作パラメータが提供されてもよい。   As described herein, the various sets of configuration parameters of the multi-node cluster 14 include at least one of workload container operational parameters, boot time parameters, and hardware configuration parameters. Exemplary operational parameters of the workload container are described herein with respect to FIGS. 4-6, 19 and 20, for example, at least one of read / write operations, file system operations, network socket operations and sorting operations. Contains relevant operating parameters. The operating parameters are modified by the workload container configurator 76 based on user selection of selectable data (eg, inputs and fields) shown in FIGS. 19 and 20 and described herein. Exemplary operational parameters associated with read / write operations include the memory buffer size for read / write operations and the size of the data block transferred during the read / write operations. Exemplary operational parameters related to file system operation include the number of file system records stored in the memory of each node 16 and the processing thread of each node 16 allocated to handle requests for the file system. At least one of the numbers. Exemplary operating parameters associated with the sorting operation include the number of data streams to merge when performing the sorting operation. Other suitable operating parameters for the workload container may be provided.

例示的なブート時間パラメータは、図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 node 16 enabled during workload execution and the operating system 44 of node 16 Contains the amount of system memory of the node 16 accessible by. The boot time parameter is selected and modified by the node configurator 72 based on a user selection of selectable data (eg, inputs and fields) shown in FIG. 10 and described herein. Other suitable boot time parameters may be provided. Exemplary hardware configuration parameters are described herein with respect to FIGS. 8, 9 and 43-46, for example, the number of processors 40 in node 16, the amount of system memory in node 16, and the node 16 Includes at least one of the amount of hard disk space. Hardware configuration parameters are selected and modified by the node configurator 72 based on user selection of selectable data (eg, inputs and fields) shown in FIGS. 8 and 9 and described herein. Other suitable hardware configuration parameters may be provided.

図48を参照すると、複数の利用可能なコンフィギュレーションからクラウドコンピューティングシステム10の複数ノードのクラスタ14の適切なコンフィギュレーションを選択するために、図1及び図3のコンフィギュレータ22を含む1つ以上のコンピューティングデバイスによって行われる例示的な詳細動作のフロー図860が示されている。図48の説明全体に対して図1〜3が参照される。図48に図示された実施形態では、コンフィギュレータ22は、ノードクラスタ14の実際の性能が所望の性能以上の場合に、コンフィギュレーションパラメータの適切なセットのサーチを中止する。他の実施形態では、コンフィギュレータ22は、所望の性能特性及び/又は他の適切なファクタ(例えば使用コスト)に基づきベストマッチであるコンフィギュレーションパラメータのセットを選択する前に、識別されたコンフィギュレーションパラメータの各セットを試行する。   Referring to FIG. 48, one or more including the configurator 22 of FIGS. 1 and 3 to select an appropriate configuration for the multi-node cluster 14 of the cloud computing system 10 from a plurality of available configurations. An exemplary detailed operational flow diagram 860 performed by a computing device is shown. 1-3 are referred with respect to the whole description of FIG. In the embodiment illustrated in FIG. 48, the configurator 22 stops searching for the appropriate set of configuration parameters when the actual performance of the node cluster 14 is greater than or equal to the desired performance. In other embodiments, the configurator 22 may identify the identified configuration parameters prior to selecting the set of configuration parameters that are the best match based on desired performance characteristics and / or other suitable factors (eg, cost of use). Try each set of.

ブロック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 block 862, the configurator 22 receives one or more sets of configuration parameters and desired performance characteristics related to workload execution based on user input received via the user interface 200, as described herein. . At block 864, the configurator 22 allocates the multi-node cluster 14 and configures the multi-node cluster 14 with the set of configuration parameters received at block 862. In one embodiment, configurator 22 deploys one or more network configuration files 28 that identify configuration parameters to node 16 at block 864, as described herein. The configurator 22 installs and / or configures one or more monitoring tools (eg, selected by the user via the module 214) on each node 16 at block 866, and works with the multi-node cluster 14 at block 868. Start the load execution. In the case of or during workload execution, the configurator 22 aggregates performance data generated by one or more monitoring tools at each node 16 at block 870. As described herein, at block 872, based on the aggregated performance data, configurator 22 determines the desired performance characteristics identified at block 862 to the actual performance of cluster 14 identified by the aggregated performance data. Compare with characteristics. At block 874, configurator 22 determines whether the performance characteristic is appropriate compared to the desired performance characteristic (eg, whether it is within an acceptable range, with an appropriate score value, as described herein). Whether or not). If yes at block 874, the configurator saves the current configuration parameters last implemented at block 864 for future execution of the workload. If the performance characteristics are not desired at block 874 and the various available sets of configuration parameters are not exhausted at block 876, the configurator 22 selects a different set of configuration parameters at block 878. Then, the functions of blocks 864 to 876 are repeated. For example, configurator 22 may implement a different set of configuration parameters identified at block 862, as described herein, or implement an incrementally adjusted set of parameters provided by configurator 22. It's okay. The process is repeated until the configurator 22 finds an appropriate set of configuration parameters at block 874 or until configuration parameter options are exhausted at block 876. If the configuration option is exhausted at block 876, the configurator 22 selects a set of configuration parameters at block 880 that provided the best performance characteristics and other identified characteristics (eg, cost of use).

数ある利益のなかでも、この方法及びシステムは、ユーザインタフェースを介しての、複数ノードのクラスタ、ワークロード、ワークロードコンテナ及びネットワークコンフィギュレーションの選択、コンフィギュレーション及び展開を可能にし得る。加えて、この方法及びシステムは、クラウドコンフィギュレーションパラメータの制御及び調節を可能にするので、これにより、ノードハードウェア、ネットワーク、ワークロードコンテナ及び/又はワークロードの変化しつつある特性下での性能解析が可能になり、また性能解析に基づく自動化されたシステムチューニングが可能になる。他の利益は当業者によって認識されるはずである。   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つの所望の性能特性と、の前記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つのノードのブート時間パラメータ、及び、少なくとも1つのノードのハードウェアコンフィギュレーションパラメータの少なくとも1つを備え、前記ワークロードコンテナは、前記複数ノードのクラスタ上での前記ワークロードの処理を連携させるように動作する請求項1の方法。   Prior execution of the workload comprises initiating multiple executions of the workload on the multi-node cluster based on the different sets of the configuration parameters of the multi-node cluster; The workload container comprises at least one of a workload container operational parameter, a boot time parameter of at least one node, and a hardware configuration parameter of at least one node, wherein the workload container is a cluster of the plurality of nodes. The method of claim 1 operative to coordinate the processing of the workload above. 前記選択することは、前記ワークロードの実行に際してモニタされた前記少なくとも1つの性能特性に関連する値が、少なくとも1つの対応する所望の性能特性に関連する許容値の範囲に含まれる旨の前記1つ以上のコンピューティングデバイスによる決定に更に基づく請求項2の方法。   The selecting is that the value associated with the at least one performance characteristic monitored during execution of the workload falls within a tolerance range associated with at least one corresponding desired performance characteristic. The method of claim 2 further based on a determination by one or more computing devices. 前記選択することは、前記少なくとも1つのモニタされた性能特性と、前記少なくとも1つの所望の性能特性と、の比較に基づきコンフィギュレーションパラメータの各異なるセットにスコア値を割り当てることと、前記選択されたコンフィギュレーションパラメータのセットに割り当てられた前記スコア値に基づき前記コンフィギュレーションパラメータのセットを前記コンフィギュレーションパラメータの複数の異なるセットから選択することと、を更に備える請求項2の方法。   The selecting includes assigning a score value to each different set of configuration parameters based on a comparison of the at least one monitored performance characteristic and the at least one desired performance characteristic, and the selected 3. The method of claim 2, further comprising: selecting the set of configuration parameters from a plurality of different sets of configuration parameters based on the score value assigned to the set of configuration parameters. 前記選択することは、前記複数ノードのクラスタにおける異なる利用可能ノードを使用することに関連する使用コストデータの比較に更に基づく請求項2の方法。   3. The method of claim 2, wherein the selecting is further based on a comparison of usage cost data associated with using different available nodes in the multi-node cluster. 前記複数ノードのクラスタによる前記ワークロードの各実行に際して各ノードの前記少なくとも1つの性能特性をモニタすると共に前記少なくとも1つの性能特性を表す性能データを提供するように動作する少なくとも1つのノード性能モニタリングツールを、前記複数ノードのクラスタの各ノードに展開することと、
各ノードの前記少なくとも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.
前記選択されたコンフィギュレーションパラメータのセットを前記複数ノードのクラスタに提供することを更に備える請求項2の方法。   The method of claim 2, further comprising providing the selected set of configuration parameters to the cluster of nodes. 選択可能コンフィギュレーションデータを備えるユーザインタフェースを提供することを更に備え、前記コンフィギュレーションパラメータの複数の異なるセットは前記選択可能コンフィギュレーションデータのユーザ選択に基づく請求項2の方法。   The method of claim 2, further comprising providing a user interface comprising selectable configuration data, wherein the plurality of different sets of configuration parameters are based on a user selection of the selectable configuration data. 選択可能コンフィギュレーションデータを備えるユーザインタフェースを提供することを更に備え、前記コンフィギュレーションパラメータの複数の異なるセットの初期セットは、前記選択可能コンフィギュレーションデータの少なくとも1つのユーザ選択に基づき、前記コンフィギュレーションパラメータの複数の異なるセットの他のセットは、前記コンフィギュレーションパラメータの初期セットの少なくとも1つのコンフィギュレーションパラメータの前記1つ以上のコンピューティングデバイスによる調節に基づき、前記1つ以上のコンピューティングデバイスによって選択される請求項2の方法。   Further comprising providing a user interface comprising selectable configuration data, wherein an initial set of the plurality of different sets of configuration parameters is based on at least one user selection of the selectable configuration data. Other sets of the plurality of different sets are selected by the one or more computing devices based on an adjustment by the one or more computing devices of at least one configuration parameter of the initial set of configuration parameters. The method of claim 2. 前記ワークロードの各実行に際してモニタされた前記少なくとも1つの性能特性及び前記少なくとも1つの所望の性能特性は、ワークロード実行時間、少なくとも1つのノードによるプロセッサ利用、少なくとも1つのノードによるメモリ利用、少なくとも1つのノードによる電力消費、少なくとも1つのノードによるハードディスク入力/出力(I/O)利用、及び、少なくとも1つのノードによるネットワーク利用の少なくとも1つを備える請求項2の方法。   The at least one performance characteristic and the at least one desired performance characteristic monitored during each execution of the workload are: workload execution time, processor utilization by at least one node, memory utilization by at least one node, at least one The method of claim 2, comprising at least one of power consumption by one node, hard disk input / output (I / O) utilization by at least one node, and network utilization by at least one node. 前記少なくとも1つのノードの前記ハードウェアコンフィギュレーションパラメータは、前記少なくとも1つのノードのプロセッサの数、前記少なくとも1つのノードのシステムメモリの量、及び、前記少なくとも1つのノードのハードディスクスペースの量の少なくとも1つを備える請求項2の方法。   The hardware configuration parameter of the at least one node is at least one of the number of processors of the at least one node, the amount of system memory of the at least one node, and the amount of hard disk space of the at least one node. The method of claim 2 comprising one. 前記少なくとも1つのノードの前記ブート時間パラメータは、前記ワークロードの実行に際して有効にされる前記少なくとも1つのノードの処理コアの数、及び、前記少なくとも1つのノードのオペレーティングシステムによってアクセス可能な前記少なくとも1つのノードのシステムメモリの量の少なくとも一方を備える請求項2の方法。   The boot time parameter of the at least one node includes the number of processing cores of the at least one node enabled upon execution of the workload and the at least one accessible by the operating system of the at least one node. The method of claim 2, comprising at least one of an amount of system memory of a node. 前記ワークロードコンテナの前記動作パラメータは、リード/ライト動作、ファイルシステム動作、ネットワークソケット動作及びソーティング動作の少なくとも1つに関連付けられている請求項2の方法。   The method of claim 2, wherein the operational parameter of the workload container is associated with at least one of a read / write operation, a file system operation, a network socket operation, and a sorting operation. 前記リード/ライト動作に関連する前記動作パラメータは、前記リード/ライト動作のためのメモリバッファサイズ、及び、前記リード/ライト動作に際して転送されるデータブロックのサイズの少なくとも一方を備え、前記ファイルシステム動作に関連する前記動作パラメータは、各ノードのメモリ内に記憶されるファイルシステム記録の数、及び、ファイルシステムに対する要求を処理するために割り振られる各ノードの処理スレッドの数の少なくとも一方を備え、前記ソーティング動作に関連する前記動作パラメータは、前記ソーティング動作を行うときにマージするデータストリームの数を備える請求項13の方法。   The operation parameter related to the read / write operation includes at least one of a memory buffer size for the read / write operation and a size of a data block transferred in the read / write operation, and the file system operation The operational parameters associated with the at least one of: a number of file system records stored in the memory of each node; and a number of processing threads of each node allocated to process requests for the file system, 14. The method of claim 13, wherein the operational parameter associated with a sorting operation comprises a number of data streams to merge when performing the sorting operation. ノードコンフィギュレータ及びワークロードコンフィギュレータを備えるコンピューティングコンフィギュレーションシステムであって、
前記ノードコンフィギュレータは、コンピューティングシステムの複数ノードのクラスタのためのコンフィギュレーションパラメータのセットを、コンフィギュレーションパラメータの複数の異なるセットから、前記複数ノードのクラスタによるワークロードの先の実行に際してモニタされた前記複数ノードのクラスタの少なくとも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つを備え、前記ワークロードコンテナは、前記複数ノードのクラスタ上での前記ワークロードの処理を連携させるように動作する請求項15のシステム。   Initiating prior execution of the workload by initiating multiple executions of the workload on the multiple node cluster based on the plurality of different sets of configuration parameters of the multiple node cluster. An operating batch processor, wherein the configuration parameters comprise at least one of workload container operating parameters, at least one node boot time parameter, and at least one node hardware configuration parameter; The system of claim 15, wherein the workload container operates to coordinate processing of the workload on the cluster of nodes. 前記ノードコンフィギュレータは、前記ワークロードの実行に際してモニタされた前記少なくとも1つの性能特性に関連する値が、少なくとも1つの対応する所望の性能特性に関連する許容値の範囲に含まれる旨の前記ノードコンフィギュレータによる決定に更に基づき前記コンフィギュレーションパラメータのセットを選択するように動作する請求項16のシステム。   The node configurator indicates that a value associated with the at least one performance characteristic monitored during execution of the workload is within a range of tolerances associated with at least one corresponding desired performance characteristic. The system of claim 16, wherein the system is operative to select the set of configuration parameters further based on a determination by. 前記ノードコンフィギュレータは、前記少なくとも1つのモニタされた性能特性と前記少なくとも1つの所望の性能特性との比較に基づきコンフィギュレーションパラメータの各異なるセットにスコア値を割り当てることによって、及び、前記選択されたコンフィギュレーションパラメータのセットに割り当てられた前記スコア値に基づき前記コンフィギュレーションパラメータのセットを前記コンフィギュレーションパラメータの複数の異なるセットから選択することによって、前記コンフィギュレーションパラメータのセットを選択するように動作する請求項16のシステム。   The node configurator assigns a score value to each different set of configuration parameters based on a comparison of the at least one monitored performance characteristic and the at least one desired performance characteristic, and the selected configuration Operative to select the set of configuration parameters by selecting the set of configuration parameters from a plurality of different sets of configuration parameters based on the score values assigned to the set of configuration parameters. 16 systems. 前記ノードコンフィギュレータは、前記複数ノードのクラスタにおける異なる利用可能ノードを使用することに関連する使用コストデータの前記ノードコンフィギュレータによる比較に更に基づき前記コンフィギュレーションパラメータのセットを選択するように動作する請求項16のシステム。   The node configurator is operative to select the set of configuration parameters further based on a comparison by the node configurator of usage cost data associated with using different available nodes in the multi-node cluster. 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.
前記ノードコンフィギュレータは、前記選択されたコンフィギュレーションパラメータのセットを前記複数ノードのクラスタに提供するように更に動作する請求項16のシステム。   The system of claim 16, wherein the node configurator is further operative to provide the selected set of configuration parameters to the cluster of nodes. 少なくとも1つのプロセッサと、実行可能命令を含むメモリとを更に備え、前記実行可能命令は、前記少なくとも1つのプロセッサによって実行されるときに、選択可能コンフィギュレーションデータを備えるグラフィカルユーザインタフェースを提供することを前記少なくとも1つのプロセッサに実行させ、前記コンフィギュレーションパラメータの複数の異なるセットは、前記選択可能コンフィギュレーションデータのユーザ選択に基づく請求項16のシステム。   Further comprising at least one processor and a memory containing executable instructions, the executable instructions providing a graphical user interface comprising selectable configuration data when executed by the at least one processor. 17. The system of claim 16, wherein the system is executed by the at least one processor, and the plurality of different sets of configuration parameters are based on a user selection of the selectable configuration data. 少なくとも1つのプロセッサと、実行可能命令を含むメモリとを更に備え、前記実行可能命令は、前記少なくとも1つのプロセッサによって実行されるときに、選択可能コンフィギュレーションデータを備えるグラフィカルユーザインタフェースを提供することを前記少なくとも1つのプロセッサに実行させ、前記コンフィギュレーションパラメータの複数の異なるセットの初期セットは、前記選択可能コンフィギュレーションデータの少なくとも1つのユーザ選択に基づき、前記コンフィギュレーションパラメータの複数の異なるセットの他のセットは、前記コンフィギュレーションパラメータの初期セットのうち少なくとも1つのコンフィギュレーションパラメータの前記ノードコンフィギュレータによる調節に基づき、前記ノードコンフィギュレータによって選択される請求項16のシステム。   Further comprising at least one processor and a memory containing executable instructions, the executable instructions providing a graphical user interface comprising selectable configuration data when executed by the at least one processor. Causing the at least one processor to execute an initial set of the plurality of different sets of configuration parameters based on at least one user selection of the selectable configuration data; The set is based on an adjustment by the node configurator of at least one configuration parameter of the initial set of configuration parameters. The system of claim 16 which is selected by Igyureta. 前記ワークロードの各実行に際してモニタされた前記少なくとも1つの性能特性及び前記少なくとも1つの所望の性能特性は、ワークロード実行時間、少なくとも1つのノードによるプロセッサ利用、少なくとも1つのノードによるメモリ利用、少なくとも1つのノードによる電力消費、少なくとも1つのノードによるハードディスク入力/出力(I/O)利用、及び、少なくとも1つのノードによるネットワーク利用の少なくとも1つを備える請求項16のシステム。   The at least one performance characteristic and the at least one desired performance characteristic monitored during each execution of the workload are: workload execution time, processor utilization by at least one node, memory utilization by at least one node, at least one 17. The system of claim 16, comprising at least one of power consumption by one node, hard disk input / output (I / O) utilization by at least one node, and network utilization by at least one node. 前記少なくとも1つのノードの前記ハードウェアコンフィギュレーションパラメータは、前記少なくとも1つのノードのプロセッサの数、前記少なくとも1つのノードのシステムメモリの量、及び、前記少なくとも1つのノードのハードディスクスペースの量の少なくとも1つを備える請求項16のシステム。   The hardware configuration parameter of the at least one node is at least one of the number of processors of the at least one node, the amount of system memory of the at least one node, and the amount of hard disk space of the at least one node. 17. The system of claim 16, comprising one. 前記少なくとも1つのノードの前記ブート時間パラメータは、前記ワークロードの実行に際して有効にされる前記少なくとも1つのノードの処理コアの数及び前記少なくとも1つのノードのオペレーティングシステムによってアクセス可能な前記少なくとも1つのノードのシステムメモリの量の少なくとも一方を備える請求項16のシステム。   The boot time parameter of the at least one node includes the number of processing cores of the at least one node enabled upon execution of the workload and the at least one node accessible by the operating system of the at least one node. 17. The system of claim 16, comprising at least one of an amount of system memory. 前記ワークロードコンテナの前記動作パラメータは、リード/ライト動作、ファイルシステム動作、ネットワークソケット動作、及び、ソーティング動作の少なくとも1つに関連付けられている請求項16のシステム。   The system of claim 16, wherein the operational parameter of the workload container is associated with at least one of a read / write operation, a file system operation, a network socket operation, and a sorting operation. 前記リード/ライト動作に関連する前記動作パラメータは、前記リード/ライト動作のためのメモリバッファサイズ、及び、前記リード/ライト動作に際して転送されるデータブロックのサイズの少なくとも一方を備え、前記ファイルシステム動作に関連する前記動作パラメータは、各ノードのメモリ内に記憶されるファイルシステム記録の数、及び、ファイルシステムに対する要求を処理するために割り振られる各ノードの処理スレッドの数の少なくとも一方を備え、前記ソーティング動作に関連する前記動作パラメータは、前記ソーティング動作を行うときにマージするデータストリームの数を備える請求項27のシステム。   The operation parameter related to the read / write operation includes at least one of a memory buffer size for the read / write operation and a size of a data block transferred in the read / write operation, and the file system operation The operational parameters associated with the at least one of: a number of file system records stored in the memory of each node; and a number of processing threads of each node allocated to process requests for the file system, 28. The system of claim 27, wherein the operational parameter associated with a sorting operation comprises a number of data streams to merge when performing the sorting operation. 少なくとも1つのプロセッサによって実行されるときに、
コンピューティングシステムの複数ノードのクラスタのためのコンフィギュレーションパラメータのセットを、コンフィギュレーションパラメータの複数の異なるセットから、前記複数ノードのクラスタによるワークロードの先の実行に際してモニタされた前記複数ノードのクラスタの少なくとも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つを備え、前記ワークロードコンテナは、前記複数ノードのクラスタ上での前記ワークロードの処理を連携させるように動作する請求項29の非一時的コンピュータ可読媒体。   The executable instructions cause the at least one processor to initiate prior execution of the workload, the at least one processor on the different sets of configuration parameters of the cluster of nodes. Starting a prior execution of the workload by initiating multiple executions of the workload on the multiple node cluster, wherein the configuration parameter is an operational parameter of the workload container, at least one node And at least one hardware configuration parameter of at least one node, wherein the workload container coordinates processing of the workload on the cluster of nodes Non-transitory computer-readable medium of claim 29, work. 前記実行可能命令は、前記ワークロードの実行に際してモニタされた前記少なくとも1つの性能特性に関連する値が、少なくとも1つの対応する所望の性能特性に関連する許容値の範囲に含まれる旨の前記少なくとも1つのプロセッサによる決定に更に基づき前記コンフィギュレーションパラメータのセットを選択することを前記少なくとも1つのプロセッサに実行させる請求項30の非一時的コンピュータ可読媒体。   The executable instructions may include at least the value that the value associated with the at least one performance characteristic monitored during execution of the workload falls within a tolerance range associated with at least one corresponding desired performance characteristic. 32. The non-transitory computer readable medium of claim 30, wherein the at least one processor is further configured to select the set of configuration parameters based further on a determination by one processor. 前記実行可能命令は、前記少なくとも1つのモニタされた性能特性と、前記少なくとも1つの所望の性能特性と、の比較に基づきコンフィギュレーションパラメータの各異なるセットにスコア値を割り当てることと、前記選択されたコンフィギュレーションパラメータのセットに割り当てられた前記スコア値に基づき前記コンフィギュレーションパラメータのセットを前記コンフィギュレーションパラメータの複数の異なるセットから選択することと、を前記少なくとも1つのプロセッサに実行させる請求項30の非一時的コンピュータ可読媒体。   The executable instructions assign the score value to each different set of configuration parameters based on a comparison of the at least one monitored performance characteristic and the at least one desired performance characteristic, and the selected 31. The method of claim 30, wherein the at least one processor is configured to select the set of configuration parameters from a plurality of different sets of configuration parameters based on the score values assigned to the set of configuration parameters. A temporary computer-readable medium. 前記実行可能命令は、前記複数ノードのクラスタにおける異なる利用可能ノードを使用することに関連する使用コストデータの前記少なくとも1つのプロセッサによる比較に更に基づき前記コンフィギュレーションパラメータのセットを選択することを前記少なくとも1つのプロセッサにさせる請求項30の非一時的コンピュータ可読媒体。   The executable instructions select the set of configuration parameters further based on a comparison by the at least one processor of usage cost data associated with using different available nodes in the cluster of nodes. 32. The non-transitory computer readable medium of claim 30, having a single processor. 前記実行可能命令は、更に、
ノードによって実行されるときに前記複数ノードのクラスタによる前記ワークロードの各実行に際して前記ノードの前記少なくとも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.
前記実行可能命令は、前記選択されたコンフィギュレーションパラメータのセットを前記複数ノードのクラスタに提供することを前記少なくとも1つのプロセッサに更に実行させる請求項30の非一時的コンピュータ可読媒体。   32. The non-transitory computer readable medium of claim 30, wherein the executable instructions further cause the at least one processor to provide the selected set of configuration parameters to the cluster of nodes. 前記実行可能命令は、選択可能コンフィギュレーションデータを備えるグラフィカルユーザインタフェースを提供することを前記少なくとも1つのプロセッサに更に実行させ、前記コンフィギュレーションパラメータの複数の異なるセットは、前記選択可能コンフィギュレーションデータのユーザ選択に基づく請求項30の非一時的コンピュータ可読媒体。   The executable instructions further cause the at least one processor to provide a graphical user interface comprising selectable configuration data, and the plurality of different sets of configuration parameters are defined by a user of the selectable configuration data. 32. The non-transitory computer readable medium of claim 30, based on the selection. 前記実行可能命令は、選択可能コンフィギュレーションデータを備えるグラフィカルユーザインタフェースを提供することを前記少なくとも1つのプロセッサに更に実行させ、前記コンフィギュレーションパラメータの複数の異なるセットの初期セットは、前記選択可能コンフィギュレーションデータの少なくとも1つのユーザ選択に基づき、前記コンフィギュレーションパラメータの複数の異なるセットの他のセットは、前記コンフィギュレーションパラメータの初期セットの少なくとも1つのコンフィギュレーションパラメータの前記少なくとも1つのプロセッサによる調節に基づき、前記少なくとも1つのプロセッサによって選択される請求項30の非一時的コンピュータ可読媒体。   The executable instructions further cause the at least one processor to provide a graphical user interface comprising selectable configuration data, wherein an initial set of the plurality of different sets of configuration parameters is the selectable configuration. Based on at least one user selection of data, other sets of the plurality of different sets of configuration parameters are based on adjustments by the at least one processor of at least one configuration parameter of the initial set of configuration parameters, 32. The non-transitory computer readable medium of claim 30, selected by the at least one processor. 前記ワークロードの各実行に際してモニタされた前記少なくとも1つの性能特性及び前記少なくとも1つの所望の性能特性は、ワークロード実行時間、少なくとも1つのノードによるプロセッサ利用、少なくとも1つのノードによるメモリ利用、少なくとも1つのノードによる電力消費、少なくとも1つのノードによるハードディスク入力/出力(I/O)利用、及び、少なくとも1つのノードによるネットワーク利用の少なくとも1つを備える請求項30の非一時的コンピュータ可読媒体。   The at least one performance characteristic and the at least one desired performance characteristic monitored during each execution of the workload are: workload execution time, processor utilization by at least one node, memory utilization by at least one node, at least one 32. The non-transitory computer readable medium of claim 30, comprising at least one of power consumption by one node, hard disk input / output (I / O) utilization by at least one node, and network utilization by at least one node. 前記少なくとも1つのノードの前記ハードウェアコンフィギュレーションパラメータは、前記少なくとも1つのノードのプロセッサの数、前記少なくとも1つのノードのシステムメモリの量、及び、前記少なくとも1つのノードのハードディスクスペースの量の少なくとも1つを備える請求項30の非一時的コンピュータ可読媒体。   The hardware configuration parameter of the at least one node is at least one of the number of processors of the at least one node, the amount of system memory of the at least one node, and the amount of hard disk space of the at least one node. 32. The non-transitory computer readable medium of claim 30, comprising: 前記少なくとも1つのノードの前記ブート時間パラメータは、前記ワークロードの実行に際して有効にされる前記少なくとも1つのノードの処理コアの数、及び、前記少なくとも1つのノードのオペレーティングシステムによってアクセス可能な前記少なくとも1つのノードのシステムメモリの量の少なくとも一方を備える請求項30の非一時的コンピュータ可読媒体。   The boot time parameter of the at least one node includes the number of processing cores of the at least one node enabled upon execution of the workload and the at least one accessible by the operating system of the at least one node. 32. The non-transitory computer readable medium of claim 30, comprising at least one of an amount of system memory of a node. 前記ワークロードコンテナの前記動作パラメータは、リード/ライト動作、ファイルシステム動作、ネットワークソケット動作、及び、ソーティング動作の少なくとも1つに関連付けられている請求項30の非一時的コンピュータ可読媒体。   31. The non-transitory computer readable medium of claim 30, wherein the operational parameter of the workload container is associated with at least one of a read / write operation, a file system operation, a network socket operation, and a sorting operation. 前記リード/ライト動作に関連する前記動作パラメータは、前記リード/ライト動作のためのメモリバッファサイズ、及び、前記リード/ライト動作に際して転送されるデータブロックのサイズの少なくとも一方を備え、前記ファイルシステム動作に関連する前記動作パラメータは、各ノードのメモリ内に記憶されるファイルシステム記録の数、及び、ファイルシステムに対する要求を処理するために割り振られる各ノードの処理スレッドの数の少なくとも一方を備え、前記ソーティング動作に関連する前記動作パラメータは、前記ソーティング動作を行うときにマージするデータストリームの数を備える請求項41の非一時的コンピュータ可読媒体。   The operation parameter related to the read / write operation includes at least one of a memory buffer size for the read / write operation and a size of a data block transferred in the read / write operation, and the file system operation The operational parameters associated with the at least one of: a number of file system records stored in the memory of each node; and a number of processing threads of each node allocated to process requests for the file system, 42. The non-transitory computer-readable medium of claim 41, wherein the operational parameter associated with a sorting operation comprises a number of data streams to merge when performing the sorting operation.
JP2015526575A 2012-08-07 2013-07-31 System and method for tuning a cloud computing system Active JP6373840B2 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (9)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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