JP4716259B2 - サイジング支援システム、方法、及びプログラム - Google Patents

サイジング支援システム、方法、及びプログラム Download PDF

Info

Publication number
JP4716259B2
JP4716259B2 JP2006090016A JP2006090016A JP4716259B2 JP 4716259 B2 JP4716259 B2 JP 4716259B2 JP 2006090016 A JP2006090016 A JP 2006090016A JP 2006090016 A JP2006090016 A JP 2006090016A JP 4716259 B2 JP4716259 B2 JP 4716259B2
Authority
JP
Japan
Prior art keywords
performance
resource
data
cost
resources
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.)
Expired - Fee Related
Application number
JP2006090016A
Other languages
English (en)
Other versions
JP2007265079A (ja
Inventor
盛朗 佐々木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2006090016A priority Critical patent/JP4716259B2/ja
Priority to US11/727,171 priority patent/US7716447B2/en
Publication of JP2007265079A publication Critical patent/JP2007265079A/ja
Application granted granted Critical
Publication of JP4716259B2 publication Critical patent/JP4716259B2/ja
Expired - Fee Related 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/505Clust

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Description

本発明は、階層的リソースのサイジング技術に関する。特に、本発明は、3階層以上の階層的リソースに対するサイジングを支援するサイジング支援システム、方法、及びプログラムに関する。
CPU、メモリ、通信装置をそれぞれ1つ以上持つ、PCやワークステーション等の情報処理装置(以下、ノードと参照される)の低価格化が進んでいる。その結果、複数のノードが集合化(クラスタ化)されて1つのシステムを構成する「クラスタ(cluster)」が増加している。クラスタにおいて、それら複数のノードは相互に接続され、互いに通信を行う。クラスタは、コストパフォーマンスが高いだけでなく、拡張性も高いという点で優れている。
その優れた拡張性は、クラスタが階層的な計算機リソースであることに起因する。「階層的リソース(hierarchical resource)」は、複数の階層にわたる計算機リソースにより構築され、上位階層のリソース(上位リソース)は、下位階層のリソース(下位リソース)の組み合わせにより構成される。あるリソースを構成する下位リソースの数を増加させる、あるいは、その性能を向上させることによって、そのリソースの性能を向上させることができる。例えば、クラスタを構成するノードの数を増加させる、あるいは、ノードの性能を向上させることで、クラスタの性能は向上する。従って、クラスタは階層的リソースである。また、クラスタを構成するノードも階層的リソースである。なぜなら、ノードを構成するCPUの数を増加させる、あるいは、CPUの性能を向上させることで、ノードの性能が向上するからである。
また、階層的リソースが均一な構成を有している場合、その階層的リソースは「均一な階層的リソース」と呼ばれる。例えば、同じ種類のノードだけから構成されるクラスタは、均一な階層的リソースである。その同種のノードのそれぞれは、同種・同数のCPUから構成されている。実際に使用されているクラスタは、多くの場合において均一な階層的リソースである。
階層的リソースを構築する、または拡張を行う前に、適切なリソース構成を検討することは重要である。つまり、システムに要求される処理性能を達成するためにはどのようなリソースを採用すればよいか検討し、階層的リソースの構成を決定することは重要である。そのようなプロセスは、「サイジング」と呼ばれている。十分な処理性能を提供できないシステムでは、顧客に十分なサービスを提供できないため、サイジングを精度良く行うことは非常に重要である。
一般的には、サイジングは、熟練した技能者の勘や経験に基づいて経験的に行われる。それにより構成された階層的リソースの処理性能が見積もられ、システムに要求される処理性能と比較される。要求に適合しない場合、再度サイジングが行われる。システム構築または拡張前に、階層的リソースのサイジングを、経験に拠らず定量的に行うことができる技術が望まれている。特に、多くのクラスタは均一な階層的リソースであり、均一な階層的リソースのサイジングを定量的に行うことができる技術が望まれている。
尚、システム構築後の計算機リソースの制御や性能評価に関連する従来技術として、次のものが知られている。
特許文献1には、仮想独立型アウトソーシングシステムが記載されている。その仮想独立型アウトソーシングシステムによれば、計算機リソースは複数のパーティションに分割され、それぞれのパーティションが顧客に利用される。また、パーティション毎の性能情報に応じて、パーティションの構成は動的に変更される。
特許文献2には、パーティションサーバにおいてコンピューティングリソースを自動的に割り振る方法が記載されている。その方法によれば、パーティションに対して優先度が設定される。その優先度に基づいて、リソース(CPU)の競合が解決され、また、パーティションに割り当てられるリソース量が決定される。
特許文献3には、コンピュータシステムの性能バランス評価装置が記載されている。性能評価指標取得手段は、評価対象コンピュータシステムを構成する各装置に対して個別にテストアプリケーションを送受信する。そして、性能評価指標取得手段は、そのテストアプリケーションの数を変化させて、各装置のトランザクション密度と性能評価指標を取得する。利用率取得手段は、評価対象コンピュータシステムにテストアプリケーションを送信し、各装置に通常のサービスオペレーションのように処理させて各装置の利用率を取得する。許容量算出手段は、各装置の性能評価指標をそれぞれの利用率で除して、各装置の許容量を算出する。性能バランス評価手段は、装置のいずれかを基準装置と定めて、該基準装置の許容量に対する他の装置の許容量の比から性能バランスを算出する。
特許文献4には、階層的資源競合を持つシステムの性能評価方法が記載されている。その階層的資源において、ソフトウェア資源の層が上位層であり、ハードウェア資源の層が下位層である。まず、下位層のハードウェア構成が入力される。次に、上位層のソフトウェア資源を利用するトランザクションのトランザクションデータが入力される。次に、ソフトウェア資源を構成するプロセスのプロセスデータが入力される。次に、プロセスの制約条件が入力される。次に、どのような性能評価値をどのような形式で表示するかが設定される。次に、与えられた上記データが性能評価値を算出するのに十分かどうかがチェックされる。十分な時は、上位層のプロセスの制約条件のもとで求めるべき性能評価値が算出される。最後に、表示手段が、これらの性能評価値をユーザーに示す。
特開2003−223335号公報 特開2004−288183号公報 特開2004−302525号公報 特開2000−29753号公報
本発明の目的は、システム構築または拡張前に階層的リソースの定量的なサイジングを支援する技術を提供することにある。
以下に、[発明を実施するための最良の形態]で使用される番号・符号を用いて、[課題を解決するための手段]を説明する。これらの番号・符号は、[特許請求の範囲]の記載と[発明を実施するための最良の形態]との対応関係を明らかにするために括弧付きで付加されたものである。ただし、それらの番号・符号を、[特許請求の範囲]に記載されている発明の技術的範囲の解釈に用いてはならない。
本発明の第1の観点において、n階層(nは3以上の整数)の階層的リソースのサイジングを支援するサイジング支援システム(1)が提供される。そのサイジング支援システム(1)は、記憶装置(2)と、テーブル定義モジュール(110)と、フィールド算出モジュール(150)とを備える。記憶装置(2)は、n階層の各々のリソースが有し得る下位リソースの種類及び最大数を示す下位リソースデータ(10)と、n階層の各々のリソースに関するパラメータを示すリソースデータとを格納する。単位処理においては、第1リソースから構成される第K階層(K=1〜n−2)と、第2リソースから構成される第K+1階層と、第3リソースから構成される第K+2階層とを含む処理階層に対して処理が実行される。その単位処理において、テーブル定義モジュール(110)は、下位リソースデータ(10)を参照することによって、第1リソースがとり得る複数のパターンを示すテーブルフレーム(T10)を作成する。また、フィールド算出モジュール(150)は、テーブルフレーム(T10)及びリソースデータを参照することによって、テーブルフレーム(T10)が示すパターンの特性を算出する。
上記リソースデータは、各々の階層のリソースに関するスケーラビリティを示すスケーラビリティデータ(20)を含んでいる。フィールド算出モジュール(150)は、そのスケーラビリティデータ(20)を参照することによって、テーブルフレーム(T10)が示すパターンの性能を算出する。
フィールド算出モジュール(150)は、スケール評価モジュール(120)を含んでいる。そのスケール評価モジュール(120)は、スケーラビリティデータ(20)を参照することによって、テーブルフレーム(T10)が示すパターンに対する性能倍率を算出し、それらパターンのそれぞれに対して算出された性能倍率を示すスケールテーブル(T20)を生成する。ここで、性能倍率は、下位リソースの数が1の場合と比較してパターンの性能が何倍になるかを示す。より詳細には、スケール評価モジュール(120)は、各パターンに対する性能倍率Sijを、次式:Sij=sK+1[i]×i×sK+2[j]×jに基づいて算出する。ここで、iは第2リソースの数を表し、jは第3リソースの数を表す。配列sK+1[i]は、第2リソースに関するスケーラビリティデータ(20)を表し、配列sK+2[j]は、第3リソースに関するスケーラビリティデータ(20)を表す。
フィールド算出モジュール(150)は、更に、性能評価モジュール(130)を含んでいる。リソースデータは、第3リソース(RK+2)の単位性能を示す単位性能データ(30)を含んでいる。性能評価モジュール(130)は、スケールテーブル(T20)が示す性能倍率と単位性能データ(30)が示す単位性能の乗算を行うことによって、上記パターンのそれぞれの性能を示す性能テーブル(T30)を生成する。
フィールド算出モジュール(150)は、更に、コスト評価モジュール(140)を含んでもよい。リソースデータは、各々の階層のリソースのコストを示すコストデータ(40)を含んでもよい。コスト評価モジュール(140)は、コストデータ(40)を参照することによって、テーブルフレーム(T10)が示すパターンのコストを算出し、それらパターンのそれぞれに対して算出されたコストを示すコストテーブル(T40)を生成する。コストテーブル(T40)は、外部から与えられて、記憶装置(2)に格納されてもよい。
サイジング支援システム(1)は、更に、処理階層更新モジュール(160)を備える。処理階層更新モジュール(160)は、Kをn−2に初期設定する。そして、単位処理が終了する度に、処理階層更新モジュール(160)は、Kの値を1減らし、また、上述の性能テーブル(T30)及びコストテーブル(T40)を参照することにより、次の単位処理で用いられる第3リソース(RK+2)に関する単位性能データ(30)及びコストデータ(40)を抽出する。テーブル定義モジュール(110)及びフィールド算出モジュール(150)は、各Kに対応する処理階層に対して単位処理を繰り返し実行する。
本発明に係るサイジング支援システム(1)は、更に、表示装置(5)を備える。Kが1である場合の単位処理が終了した場合、表示装置(5)は、生成されたスケールテーブル(T20)、性能テーブル(T30)、及びコストテーブル(T40)のうち少なくとも1つを表示する。
本発明に係るサイジング支援システム(1)は、更に、ユーザービュー作成モジュール(170)を備える。Kが1である場合の単位処理が終了した場合、ユーザービュー作成モジュール(170)は、上述のスケールテーブル(T20)、性能テーブル(T30)、及びコストテーブル(T40)のうち少なくとも2つを互いに関連付け、その関連を示すユーザービューデータ(70)を作成する。表示装置(5)は、そのユーザービューデータ(70)の表示を行う。例えば、ユーザービューデータ(70)は、性能テーブル(T30)が示す性能とコストテーブル(T40)が示すコストとの関連を示す。この場合、表示装置(5)は、上記パターンのそれぞれに関する性能とコストとの関係を表示する。このように、階層的リソースの性能とコストとの関係を、ユーザーにわかりやすく提示することが可能となる。ユーザーは、提示された情報を検討することによって、適切な階層的リソースの構成を容易に決定することができる。
本発明の第2の観点において、階層的リソースのサイジングを支援するサイジング支援システム(1)が提供される。そのサイジング支援システム(1)は、階層的リソースがとり得る複数のパターンのそれぞれに対して性能とコストとの関係を示すユーザービューデータ(70)が格納された記憶装置(2)と、ユーザービューデータ(70)の表示を行う表示装置(5)とを備える。これにより、階層的リソースの性能とコストとの関係を、ユーザーにわかりやすく提示することが可能となる。ユーザーは、提示された情報を検討することによって、適切な階層的リソースの構成を容易に決定することができる。
本発明の第3の観点において、n階層(nは3以上の整数)の階層的リソースのサイジングを支援するサイジング支援方法が提供される。そのサイジング支援方法は、(A)n階層の各々のリソースが有し得る下位リソースの種類及び最大数を示す下位リソースデータ(10)を記憶装置(2)に格納するステップと、(B)n階層の各々のリソースに関するパラメータを示すリソースデータを記憶装置(2)に格納するステップと、(C)処理階層を設定するステップと、ここで、処理階層は、第1リソースから構成される第K階層(K=1〜n−2)と、第2リソースから構成される第K+1階層と、第3リソースから構成される第K+2階層とを含み、(D)その処理階層に対して単位処理を実行するステップと、を有する。上記(D)ステップは、(a)記憶装置(2)に格納された下位リソースデータ(10)を参照することによって、第1リソースがとり得る複数のパターンを示すテーブルフレーム(T10)を作成するステップと、(b)記憶装置(2)に格納されたリソースデータを参照することによって、テーブルフレーム(T10)が示すパターンの特性を算出するステップとを含む。
上記リソースデータは、各々の階層のリソースに関するスケーラビリティを示すスケーラビリティデータ(20)を含む。上記(b)ステップは、そのスケーラビリティデータ(20)を参照することによって、テーブルフレーム(T10)が示すパターンの性能を算出するステップを含む。
上記(b)ステップは、(b1)スケーラビリティデータ(20)を参照することによって、テーブルフレーム(T10)が示すパターンに対する性能倍率を算出し、それらパターンのそれぞれに対して算出された性能倍率を示すスケールテーブル(T20)を生成するステップを含む。性能倍率Sijは、次式:Sij=sK+1[i]×i×sK+2[j]×jに基づいて算出される。ここで、iは第2リソースの数を表し、jは第3リソースの数を表す。配列sK+1[i]は、第2リソースに関するスケーラビリティデータ(20)を表し、配列sK+2[j]は、第3リソースに関するスケーラビリティデータ(20)を表す。
上記リソースデータは、第3リソースの単位性能を示す単位性能データ(30)を含む。上記(b)ステップは、(b2)スケールテーブル(T20)が示す性能倍率と単位性能データ(30)が示す単位性能の乗算を行うことによって、上記パターンのそれぞれの性能を示す性能テーブル(T30)を生成するステップを含む。
上記リソースデータは、各々の階層のリソースのコストを示すコストデータ(40)を含んでもよい。上記(b)ステップは、(b3)そのコストデータ(40)を参照することによって、テーブルフレーム(T10)が示すパターンのコストを算出し、それらパターンのそれぞれに対して算出されたコストを示すコストテーブル(T40)を生成するステップを含む。
本発明に係るサイジング支援方法は、更に、(E)Kをn−2に初期設定するステップと、(F)上記(D)ステップが終了する度に、Kの値を1減らし、また、上述の性能テーブル(T30)及びコストテーブル(T40)を参照することにより、次の単位処理で用いられる第3リソースに関する単位性能データ(30)及びコストデータ(40)を抽出するステップと、(G)各Kに対応する処理階層に対して単位処理を繰り返し実行するステップと、を有する。
本発明に係るサイジング支援方法は、更に、(H)Kが1である場合の単位処理が終了した場合、上述のスケールテーブル(T20)、性能テーブル(T30)、及びコストテーブル(T40)のうち少なくとも1つを表示装置(5)に表示させるステップを有する。
本発明に係るサイジング支援方法は、更に、(I)Kが1である場合の単位処理が終了した場合、上述のスケールテーブル(T20)、性能テーブル(T30)、及びコストテーブル(T40)のうち少なくとも2つを互いに関連付け、その関連を示すユーザービューデータ(70)を作成するステップと、(J)そのユーザービューデータ(70)を表示装置(5)に表示させるステップと、を有する。例えば、ユーザービューデータ(70)は、性能テーブル(T30)が示す性能とコストテーブル(T40)が示すコストとの関連を示す。この場合、上記(J)ステップにおいて、パターンのそれぞれに関する性能とコストとの関係が表示装置(5)に表示される。このように、階層的リソースの性能とコストとの関係を、ユーザーにわかりやすく提示することが可能となる。ユーザーは、提示された情報を検討することによって、適切な階層的リソースの構成を容易に決定することができる。
本発明の第4の観点において、階層的リソースのサイジングを支援するサイジング支援方法が提供される。そのサイジング支援方法は、(A)階層的リソースがとり得るパターンのそれぞれに対して性能とコストとの関係を示すユーザービューデータ(70)を生成するステップと、(B)そのユーザービューデータ(70)の表示を行うステップとを有する。
本発明の第5の観点において、上記サイジング支援方法をコンピュータに実行させるためのサイジング支援プログラム(100)が提供される。
本発明によれば、システム構築または拡張前に、階層的リソースの性能やコスト等を定量的に見積もることが可能となる。これにより、システム構築または拡張前に、階層的リソースのサイジングを精度良く行うことが可能となる。
添付図面を参照して、本発明の実施の形態に係るサイジング支援システム、サイジング支援方法、及びサイジング支援プログラムを説明する。サイジングの対象は、n階層の均一な階層的リソースである(nは3以上の整数)。そのサイジングの対象としては、クラスタシステムが例示される。例えば、3階層のクラスタシステムの場合、第1階層のリソースがクラスタであり、第2階層のリソースがノードであり、第3階層のリソースがCPUである。クラスタシステムは、仮想化クラスタシステムであってもよい。また、サイジングの対象は、マルチプロセッサシステムや、仮想化サーバや、ブレードサーバであってもよい。
1.サイジング支援システム
サイジング対象のシステムは、採用されるハードウェアの種類によって様々なパターンの構成を有し得る。本実施の形態に係るサイジング支援システムは、その様々なパターンに関して、システム全体の性能やコストを定量的に算出する。更に、本実施の形態に係るサイジング支援システムは、その様々なパターンに対して算出された性能とコストとの関係を表示し、ユーザーによる検討・選択を容易にする。
図1は、本実施の形態に係るサイジング支援システム1の構成を示すブロック図である。そのサイジング支援システム1は、記憶装置2、プロセッサ3、入力装置4、表示装置5、ネットワークインタフェース6、メディアドライブ7を備えている。
記憶装置2としては、RAMやハードディスクが例示される。記憶装置2には、下位リソースデータ10、スケーラビリティデータ20、単位性能データ30、及びコストデータ40が格納される。それらデータは、入力装置4により入力されてもよいし、ネットワークインタフェース6を介して提供されてもよい。または、それらデータは、コンピュータ読み取り可能な記録媒体に記録され、メディアドライブ7によって読み込まれてもよい。記憶装置2には、更に、テーブルフレームT10、スケールテーブルT20、性能テーブルT30、コストテーブルT40、及びユーザービューデータ70が格納される。それらテーブルやデータは、主に、サイジング支援システム1により生成される。
プロセッサ3はCPUを含み、各種処理を行い、また、各装置や各デバイスの動作を制御する。また、プロセッサ3は、サイジング支援プログラム100を実行し、そのサイジング支援プログラム100の命令に従ってサイジング支援処理を実現する。
サイジング支援プログラム100は、例えば、コンピュータ読み取り可能な記録媒体に記録されており、メディアドライブ7によって読み込まれる。あるいは、サイジング支援プログラム100は、ネットワークインタフェース6を介して提供されてもよい。サイジング支援プログラム100は、プロセッサ3との協働により、テーブル定義モジュール110、スケール評価モジュール120、性能評価モジュール130、コスト評価モジュール140、処理階層更新モジュール160、及びユーザービュー作成モジュール170を提供する。
入力装置4としては、キーボードやマウスが例示される。表示装置5としては、液晶ディスプレイが例示される。ユーザーは、表示装置5に表示された情報を参照しながら、入力装置4を用いて各種データやコマンドを入力することができる。
図2は、サイジング支援システム1におけるデータの流れを概略的に示している。テーブル定義モジュール110は、記憶装置2から下位リソースデータ10を読み出し、その下位リソースデータ10に基づいてテーブルフレームT10を生成する。テーブルフレームT10はテーブルの枠であり、テーブルフレームT10の生成は、配列の定義に相当する。その配列の各要素、すなわち、テーブルの各フィールドを算出するモジュールが、スケール評価モジュール120、性能評価モジュール130、及びコスト評価モジュール140である。その意味で、それらスケール評価モジュール120、性能評価モジュール130、及びコスト評価モジュール140を合わせて、フィールド算出モジュール150と呼ぶこともできる。
スケール評価モジュール120は、上述のテーブルフレームT10及びスケーラビリティデータ20を記憶装置2から読み出し、それらデータに基づいてスケールテーブルT20を生成する。性能評価モジュール130は、スケールテーブルT20及び単位性能データ30を記憶装置2から読み出し、それらデータに基づいて性能テーブルT30を生成する。コスト評価モジュール140は、上述のテーブルフレームT10及びコストデータ40を記憶装置2から読み出し、それらデータに基づいてコストテーブルT40を生成する。
生成されたテーブルT20〜T40は、そのままサイジング支援システム1から出力されてもよい。あるいは、それらテーブルT20〜T40は、ユーザービュー作成モジュール170に送られてもよい。ユーザービュー作成モジュール170は、それらテーブルT20〜T40を互いに関連付け、ユーザービューデータ70を生成する。ユーザービューデータ70は、表示装置5により表示される。ユーザービューデータ70においては、例えば、サイジング対象のシステム全体の性能とコストとが関連付けられる。ユーザーは、表示装置5に表示された性能とコストとの関係を検討することによって、適切な階層的リソース構成を容易に決定することができる。
2.処理の詳細
次に、図3に示されるフローチャートに沿って、本実施の形態に係るサイジング支援システム1の動作を詳細に説明する。サイジングの対象は、n階層の均一な階層的リソースである(nは3以上の整数)。後に示されるように、処理は、3つの階層を1つの単位として順番に行われる。その処理対象である3階層は、以下、第K階層、第K+1階層、及び第K+2階層(K=1〜n−2)と参照される。処理は、K=n−2の場合から始まり、K=1となるまで繰り返し行われる。
2−1.第1の動作例
第1の動作例として、3階層(n=3)のクラスタのサイジングが示される。その場合、図4に示されるように、第1階層のリソースがクラスタであり、第2階層のリソースがノードであり、第3階層のリソースがCPUである。ある階層のリソースに対して、上位の階層のリソースは「上位リソース」と参照され、下位の階層のリソースは「下位リソース」と参照される。つまり、クラスタの下位リソースはノードであり、ノードの下位リソースはCPUである。本例において、クラスタは同種のノードから構成される。また、それぞれのノードは、同種・同数のCPUから構成される。つまり、本例におけるサイジング対象であるクラスタは、均一な階層的リソースである。採用されるCPUやノードの種類によって、様々なパターンのクラスタが構築され得る。本実施の形態に係るサイジング支援システム1は、その様々なパターンに関して、クラスタの性能やコストを算出することができる。
ステップS1:基礎情報の提供
まず、処理に用いられる基礎情報がサイジング支援システム1に入力され、記憶装置2に格納される。その基礎情報は、各階層のリソースに関するパラメータを示すデータであり、以下に示される下位リソースデータ10、スケーラビリティデータ20、単位性能データ30、及びコストデータ40を含んでいる。
(下位リソースデータ10)
図5は、下位リソースデータ10の一例を示している。下位リソースデータ10は、各階層のリソースが、どのような下位リソースを有し得るかを示している。より具体的には、各階層のリソースに関して、そのリソースが有し得る下位リソースの種類と最大数が定義されている。
例えば、第1階層(第K階層)に対する下位リソースデータ10−1は、クラスタ(R)を構成し得るノードの種類(RK+1)とそのノードの最大数(MK+1)を示している。クラスタ(cluster)の下位リソースとしては、「2−wayノード」と「4−wayノード」の2種類が挙げられている。クラスタは、最大8個の2−wayノード、あるいは、最大7個の4−wayノードを持つことができる。第2階層(第K+1階層)に対する下位リソースデータ10−2は、ノード(RK+1)を構成し得るCPUの種類(RK+2)とそのCPUの最大数(MK+2)を示している。2−Wayノードは、最大2個の「CPU−A」を持つことができる。一方、4−Wayノードは、最大4個の「CPU−B」を持つことができる。尚、第3階層(第K+2階層)は最下位層であるため、第3階層に対する下位リソースデータ10−3は参照されない。
(スケーラビリティデータ20)
図6は、スケーラビリティデータ20の一例を示している。「スケーラビリティ(scalability)」とは、リソースを増やした時の性能変化率である。本明細書において、スケーラビリティは、N個の下位リソースを含む上位リソースの性能を、1個の下位リソースの性能のN倍で割った値と定義される。例えば、1つのノードでは秒100件のリクエストを処理でき、4つのノードで構成されるクラスタ全体では秒350件のリクエストを処理できる場合、スケーラビリティは0.875(=350/(4×100))である。スケーラビリティは、ある階層における1個あたりのリソースの性能が、その数に応じてどう変化するかを示しているとも言える。
例えば、第2階層(第K+1階層)に対するスケーラビリティデータ20−2は、ノードの種類(RK+1)とそのノードの数(i:i=1〜MK+1)に応じたスケーラビリティとの関係を示している。2−wayノードのスケーラビリティは、1次元配列sK+1[1:8]で与えられ、4−wayノードのスケーラビリティは、1次元配列sK+1[1:7]で与えられている。また、第3階層(第K+2階層)に対するスケーラビリティデータ20−3は、CPUの種類(RK+2)とそのCPUの数(j:j=1〜MK+2)に応じたスケーラビリティとの関係を示している。CPU−Aのスケーラビリティは、1次元配列sK+2[1:2]で与えられ、CPU−Bのスケーラビリティは、1次元配列sK+2[1:4]で与えられている。種類と最大数は、図5に示された下位リソースデータ10の内容と整合している。尚、最上位層である第1階層(第K階層)に対するスケーラビリティデータ20−1は参照されない。
(単位性能データ30)
図7は、単位性能データ30の一例を示している。この単位性能データ30は、最下位層である第3階層(第K+2階層)に対してのみ与えられ、各CPUの種類(RK+2)に関する「単位性能(pK+2)」を示している。単位性能は、CPUが1秒間に処理できるリクエストの数を示している。図7において、CPU−A及びCPU−Bの単位性能は共に100である。
(コストデータ40)
図8は、コストデータ40の一例を示している。このコストデータ40は、各階層のリソースに関するコストを示している。コストには、ハードウェアの値段やソフトウェアのライセンス価格などが含まれる。第2階層(第K+1階層)に対するコストデータ40−2は、ノードの種類(RK+1)とそのノードのコスト(cK+1)を示している。第3階層(第K+2階層)に対するコストデータ40−3は、CPUの種類(RK+2)とそのCPUのコスト(cK+2)を示している。また、第1階層(第K階層)に対するコストデータ40−1は、ノードの種類(R)とそのノードのコスト(c)を示している。但し、本例において、第K階層は最上位階層であるため、そのコストcは“0”に設定されている。第1階層のコスト、すなわちクラスタのコストは、求めるべき対象の1つである。
ステップS2:プログラムの実行
次に、サイジング支援プログラム100がプロセッサ3により実行される。それにより、図2に示された各モジュールが提供され、処理が行われる。
ステップS3:処理階層の初期設定
処理は、3つの階層(第K〜K+2階層)を1つの単位として繰り返し行われる。その処理対象である3階層は、以下、「処理階層」と参照される。処理階層は、下位(K=n−2)から上位(K=1)へ順番にシフトしていく。処理階層更新モジュール160は、処理階層の初期設定として、Kを“n−2”に設定する。本例においては、サイジング対象が3階層であるため、処理の繰り返しは1回だけである。また、処理階層は、第1階層、第2階層、及び第3階層の3階層である(K=1)。
ステップS10:テーブルフレームの作成
サイジング対象のクラスタは、採用されるノードの種類と数、及び採用されるCPUの種類と数により、様々なパターンの構成をとり得る。従って、クラスタの性能やコストを見積もる前に、そもそもクラスタがどのようなパターンをとり得るのか知る必要がある。その様々なパターンを定義するのが、テーブルフレームT10である。クラスタが持ち得るノードの種類と最大数、また、ノードが持ち得るCPUの種類と最大数は、上述の下位リソースデータ10に示されている(図5参照)。よって、下位リソースデータ10を参照することによって、クラスタがとり得る様々なパターンを知ることができる。
図2に示されるように、テーブル定義モジュール110は、下位リソースデータ10に基づいてテーブルフレームT10を生成する。より具体的なフローは、図9に示されている。まず、テーブル定義モジュール110は、記憶装置2から下位リソースデータ10を読み込む(ステップS11)。次に、テーブル定義モジュール110は、第2階層のリソース種類(RK+1)毎に、図10に示されるようなテーブルフレームT10−a、T10−bを作成する(ステップS12)。テーブルフレームT10−aは、クラスタに2−wayノードが採用される場合のパターンを示しており、テーブルフレームT10−bは、クラスタに4−wayノードが採用される場合のパターンを示している。
各テーブルフレームT10は2次元テーブルの枠であり、その行は、第2階層(第K+1階層)のノード数i(i=1〜MK+1)を示し、その列は、第3階層(第K+2階層)のCPU数j(j=1〜MK+2)を示している。例えば、2−wayノードが採用される場合、その2−wayノードは最大2個のCPU−Aによって構成され得る(図5参照)。よって、テーブルフレームT10−aの行は、2−wayノードの数i(=1〜8)を示し、その列はCPU−Aの数j(=1、2)を示している。同様に、テーブルフレームT10−bの行は、4−wayノードの数i(=1〜7)を示し、その列はCPU−Bの数j(=1〜4)を示している。
このように、テーブルフレームT10は、クラスタが取り得る44パターンの構成を示している。実際のコンピュータ上では、テーブルフレームT10の生成は、配列の定義に相当する。その配列の各要素(テーブルの各フィールド)として、性能やコストが算出されていく。すなわち、クラスタが取り得るパターンのそれぞれに対して、性能やコストといった特性が算出されていく。その算出を行うモジュールが、次に示されるフィールド算出モジュール150(スケール評価モジュール120、性能評価モジュール130、及びコスト評価モジュール140)である。
ステップS20:スケールテーブルの作成
図2に示されるように、スケール評価モジュール120は、上述のテーブルフレームT10及びスケーラビリティデータ20に基づいてスケールテーブルT20を生成する。スケールテーブルT20は、クラスタが取り得るパターンのそれぞれに関する「性能倍率」を示すテーブルである。性能倍率は、下位リソースの数が1である場合と比較してそのパターンの性能が何倍になるかを示すパラメータである。この性能倍率は、下位リソースのスケーラビリティ及び数から算出することができる。
より具体的なフローは図11に示されている。まず、スケール評価モジュール120は、記憶装置2からテーブルフレームT10及びスケーラビリティデータ20を読み込む(ステップS21)。次に、スケール評価モジュール120は、1つのテーブルフレームT10を選択する(ステップS22)。次に、スケール評価モジュール120は、選択されたテーブルフレームT10の各フィールド(各パターン)に対して性能倍率Sijを算出する(ステップS23)。その性能倍率Sijは、次の式により与えられる。
ij=sK+1[i]×i×sK+2[j]×j
ここで、iは第2階層のノード数(1〜MK+1)であり、jは第3階層のCPU数(1〜MK+2)である。また、sK+1[i]は、数iに応じたノードのスケーラビリティであり、図6に示されたスケーラビリティデータ20−2から得られる。同様に、sK+2[j]は、数jに応じたCPUのスケーラビリティであり、図6に示されたスケーラビリティデータ20−3から得られる。
このような計算により、選択されたテーブルフレームT10に対応するスケールテーブルT20が生成される。図12は、本例において生成されるスケールテーブルT20を示している。スケールテーブルT20−a、T20−bは、それぞれテーブルフレームT10−a、T10−bに対応している。全てのテーブルフレームT10に関する処理が完了すると(ステップS24;Yes)、スケールテーブルT20の作成処理が終了する(ステップS25)。
ステップS30:性能テーブルの作成
図2に示されるように、性能評価モジュール130は、上述のスケールテーブルT20及び単位性能データ30に基づいて性能テーブルT30を生成する。性能テーブルT30は、クラスタが取り得るパターンのそれぞれに関する「性能」を示すテーブルである。
より具体的なフローは図13に示されている。まず、性能評価モジュール130は、記憶装置2からスケールテーブルT20及び単位性能データ30を読み込む(ステップS31)。次に、性能評価モジュール130は、1つのスケールテーブルT20を選択する(ステップS32)。次に、性能評価モジュール130は、選択されたスケールテーブルT20の各フィールド(各パターン)に対して性能Pijを算出する(ステップS33)。その性能Pijは、次の式により与えられる。
ij=Sij×pK+2
ここで、iは第2階層のノード数(1〜MK+1)であり、jは第3階層のCPU数(1〜MK+2)である。また、pK+2は、CPUの単位性能であり、図7に示された単位性能データ30から得られる。
このような計算により、選択されたスケールテーブルT20に対応する性能テーブルT30が生成される。図14は、本例において生成される性能テーブルT30を示している。性能テーブルT30−a、T30−bのそれぞれは、スケールテーブルT20−a、T20−b、すなわち、テーブルフレームT10−a、T10−bに対応している。全てのスケールテーブルT20に関する処理が完了すると(ステップS34;Yes)、性能テーブルT30の作成処理が終了する(ステップS35)。
ステップS40:コストテーブルの作成
図2に示されるように、コスト評価モジュール140は、上述のテーブルフレームT10及びコストデータ40に基づいてコストテーブルT40を生成する。コストテーブルT40は、クラスタが取り得るパターンのそれぞれに関する「コスト」を示すテーブルである。
より具体的なフローは図15に示されている。まず、コスト評価モジュール140は、記憶装置2からテーブルフレームT10及びコストデータ40を読み込む(ステップS41)。次に、コスト評価モジュール140は、1つのテーブルフレームT10を選択する(ステップS42)。次に、コスト評価モジュール140は、選択されたテーブルフレームT10の各フィールド(各パターン)に対してコストCijを算出する(ステップS43)。そのコストCijは、次の式により与えられる。
ij=c+cK+1×i+cK+2×i×j
ここで、iは第2階層のノード数(1〜MK+1)であり、jは第3階層のCPU数(1〜MK+2)である。また、c,cK+1,cK+2は、各階層のノードのコストであり、図8に示されたコストデータ40から得られる。
このような計算により、選択されたテーブルフレームT10に対応するコストテーブルT40が生成される。図16は、本例において生成されるコストテーブルT40を示している。コストテーブルT40−a、T40−bは、それぞれテーブルフレームT10−a、T10−bに対応している。全てのテーブルフレームT10に関する処理が完了すると(ステップS44;Yes)、コストテーブルT40の作成処理が終了する(ステップS45)。
また、割引等の価格変動要因に対応するため、コストテーブルT40は、外部から直接与えられてもよい。その場合、ユーザーは、入力装置4を用いてコストテーブルT40を入力することができる。あるいは、コストテーブルT40は、ネットワークやメディアを介して提供されてもよい。与えられるコストテーブルT40は、図16に示されるようなフォーマットを有しており、記憶装置2に格納される。
ステップS50:
Kが2以上の場合、すなわち、処理階層に最上位階層が含まれていない場合、後述のステップS60が実行される。本動作例ではK=1なので(ステップS50;Yes)、処理は次のステップに移る。
ステップS70,S80:結果の出力
上述の処理により生成されたスケールテーブルT20、性能テーブルT30、及びコストテーブルT40は全て、適切なクラスタ構成を選択するにあたり重要なパラメータを定量的に示している。それらテーブルT20〜T40は、そのまま表示装置5に表示されてもよいし、メディアドライブ7によって記録媒体に記録されてもよい。ユーザーは、それらテーブルT20〜T40を参考にして、所望のシステムを実現できるクラスタ構成を決定することができる。
また、それらテーブルT20〜T40は、互いに関連付けられてユーザーに提示されてもよい。その関連付けを行うモジュールが、ユーザービュー作成モジュール170である。図2に示されるように、ユーザービュー作成モジュール170は、テーブルT20〜T40を互いに関連付けることによってユーザービューデータ70を作成する。例えば、ユーザービューデータ70は、クラスタが取り得る様々なパターンのそれぞれに対して性能とコストとの関係を示す。ユーザービューデータ70は、グラフ形式又はテーブル形式で与えられ、ユーザービュー作成モジュール170は、そのユーザービューデータ70を表示装置5に表示させる。
図17は、表示装置5によるユーザービューデータ70の表示の一例を示している。図17においては、クラスタの性能とコストとの関係がグラフ形式で表示されている。グラフの縦軸はクラスタのコストを示し、横軸はクラスタの性能を示している。縦軸は、性能あたりのコスト(コストを性能で割った値)を示していてもよい。グラフ中の点は、テーブルT20〜T40のフィールド値に対応している。また、グラフ中の点は、ノードの種類別に線で結ばれており、系列化されている。例えば、2個のCPU−Bを有する4−wayノードからクラスタが構成される場合の関係は、系列“4−way(2CPU)”で表されている。各系列において、最も左の点はノード数が1の場合を示し、右に行くに従ってノード数が1ずつ増える。
ユーザーは、このグラフを参照することによって、所望のクラスタを構築するためにはどの種類のノードを採用すればよいか、容易に判断することができる。例えば、最初に秒500リクエストを処理できるクラスタを構築して、将来的には秒1000リクエストまで処理できるようにクラスタを拡張するつもりであれば、ユーザーは、2−way(2CPU)、4−way(2CPU)、4−way(3CPU)、4−way(4CPU)のいずれかを採用すればよい。また、最も安価なクラスタを構築したければ、ユーザーは、2−way(2CPU)を採用すればよい。
また、秒1500リクエストまで処理できるようにクラスタを拡張したければ、ユーザーは、4−way(3CPU)、4−way(4CPU)のいずれかを採用すればよい。その中でも、安価にクラスタを拡張したければ、ユーザーは、4−way(4CPU)を選択すればよい。つまり、4−way(4CPU)に関しては、初期費用が高いものの、将来の拡張がコスト的に容易であることがわかる。一方、2−way(1CPU)に関しては、初期費用は安いが、将来拡張される時に価格がネックになることがわかる。
尚、このような性能とコストとの関係を示す表示は、2階層の階層的リソースに関しても可能である。その場合、図17に示された表示と比較して、線の本数が少なくなるだけである。
以上に説明されたように、所望のシステムを実現するために必要な階層的リソース構成を容易に決定することが可能となる。クラスタの構築前に、ユーザーは、将来の拡張性を予測でき、初期費用や拡張性の観点から最適なクラスタ構成を決定することができる。よって、リクエストが増加した時に、性能不足によりサービスが提供できなくなることが防止される。
2−2.第2の動作例
次に、サイジングの対象である階層的リソースが4階層以上である場合を考える。例として、4階層(n=4)のクラスタのサイジングが示される。その場合、図18に示されるように、第1階層のリソースがクラスタであり、第2階層のリソースがノードであり、第3階層のリソースがCPUであり、第4階層のリソースがコアである。クラスタは同種のノードから構成され、それぞれのノードは同種・同数のCPUから構成され、それぞれのCPUは同種・同数のコアから構成される。つまり、本例におけるサイジング対象であるクラスタは、均一な階層的リソースである。採用されるリソースの種類によって、様々なパターンのクラスタが構築され得る。本例の説明において、第1の動作例と重複する説明は適宜省略される。
ステップS1において最初にサイジング支援システム1に入力される基礎情報は、次の通りである。図19は、下位リソースデータ10の一例を示している。下位リソースデータ10は、各階層に対する下位リソースデータ10−1〜10−4を含んでいる。尚、最下位層である第4階層に対する下位リソースデータ10−4は参照されない。図20は、スケーラビリティデータ20の一例を示している。スケーラビリティデータ20は、各階層に対するスケーラビリティデータ20−1〜20−4を含んでいる。尚、最上位層である第1階層に対するスケーラビリティデータ20−1は参照されない。図21は、単位性能データ30の一例を示している。この単位性能データ30は、最下位層である第4階層に対してのみ与えられている。図22は、コストデータ40の一例を示している。コストデータ40は、各階層に対するコストデータ40−1〜40−4を含んでいる。尚、最上位層である第1階層のコストcは、“0”に設定されている。
初期設定(ステップS3)において、Kは“2(=n−2)”に設定される。よって、第1回目の処理における処理階層は、第2階層(第K階層)、第3階層(第K+1階層)、及び第4階層(第K+2階層)である。その後、第1の動作例と同様の処理が実行される(ステップS10、S20、S30、S40)。その結果、第K階層(第2階層)に関するスケールテーブルT20、性能テーブルT30、及びコストテーブルT40が生成される。
図23は、第1回目の処理により生成されるスケールテーブルT20を示している。スケールテーブルT20−aは、第3階層のリソースが「CPU−A」である場合に対応している。その行は、第3階層のCPU−Aの数を示し、その列は、第4階層のcore−Aの数を示している。一方、スケールテーブルT20−bは、第3階層のリソースが「CPU−B」である場合に対応している。その行は、第3階層のCPU−Bの数を示し、その列は、第4階層のcore−Bの数を示している。各テーブルにおいて、様々なパターンのそれぞれに対して算出された性能倍率が示されている。
同様に、図24は、第1回目の処理により生成される性能テーブルT30を示している。性能テーブルT30−a、T30−bは、それぞれ第3階層のリソースが「CPU−A」、「CPU−B」である場合に対応している。各テーブルにおいて、様々なパターンのそれぞれに対して算出された性能が示されている。また、図25は、第1回目の処理により生成されるコストテーブルT40を示している。コストテーブルT40−a、T40−bは、それぞれ第3階層のリソースが「CPU−A」、「CPU−B」である場合に対応している。各テーブルにおいて、様々なパターンのそれぞれに対して算出されたコストが示されている。
次に、ステップS50が実行される。ステップS50において、Kは1ではない、すなわち、処理階層に最上位階層が含まれていない(ステップS50;No)。その場合、処理階層更新モジュール160によって、処理階層の更新が行われる(ステップS60)。図18は、ステップS60におけるフローを詳細に示している。
第2回目の処理において、処理階層は第1〜第3階層に移る。その処理階層のうち最下位層は第3階層であり、その第3階層に関する単位性能データ30が必要となる。そのため、本実施の形態によれば、図24に示された性能テーブルT30から、第3階層のCPUの単位性能が抽出される。具体的には、図24に示された性能テーブルT30のうち、フィールドP11〜P1MK+2(図中の点線で囲まれた部分)の値が参照される。これらフィールド値は、第3階層のCPUの数が1である場合の性能、すなわち、第3階層の単位性能を示している。よって、3種類のフィールド値P11〜P1MK+2が、第3階層に対する単位性能データ30として設定されればよい。その単位性能データ30は、(CPU−A,1core−A)、(CPU−B,1core−B)、(CPU−B、2core−B)の3種類のそれぞれの単位性能を示している(ステップS61)。
同様に、図25に示されたコストテーブルT40から、第3階層のCPUのコストが抽出される。具体的には、図25に示されたコストテーブルT40のうち、フィールドC11〜C1MK+2(図中の点線で囲まれた部分)の値が参照される。これらフィールド値は、第3階層のCPUの数が1である場合のコストを示している。よって、3種類のフィールド値C11〜C1MK+2が、第3階層に対するコストデータ40−3として設定されればよい。そのコストデータ40−3は、(CPU−A,1core−A)、(CPU−B,1core−B)、(CPU−B、2core−B)の3種類のそれぞれのコストを示している(ステップS62)。
このように、処理階層更新モジュール160は、ある単位処理により作成された性能テーブルT30及びコストテーブルT40を参照することにより、次の単位処理で用いられる単位性能データ30及びコストデータ40−3を抽出する。コストテーブルT40が外部から与えられる場合は、処理階層更新モジュール160は、ある単位処理により作成された性能テーブルT30を参照することにより、次の単位処理で用いられる単位性能データ30を抽出する。このように、ある単位処理において作成されたデータは、次の単位処理にフィードバックされる。
次に、処理階層更新モジュール160は、Kをデクリメントする(ステップS63)。その結果、Kは1となり、処理階層は、第1〜第3階層にシフトする。
次に、新たな処理階層である第1階層(第K階層)、第2階層(第K+1階層)、及び第3階層(第K+2階層)に対して、第2回目の処理が実行される。ここで、最下位層である第3階層に関するデータとしては、上述の抽出データが利用される。第2回目の処理も、既出の動作例と同様に実行される(ステップS10、S20、S30、S40)。その結果、第1階層に関するスケールテーブルT20、性能テーブルT30、及びコストテーブルT40が生成される。Kは1であるので(ステップS50;Yes)、処理の繰り返しは終了する。そして、最終的に得られたテーブルT20〜T40に基づいてユーザービューデータ70が作成され(ステップS70)、結果が表示装置5に出力される(ステップS80)。
図27は、本例における表示の一例を示している。図27においては、クラスタの性能とコストとの関係がグラフ形式で表示されている。グラフ中には、ノードの種類毎に、「1.node−A,1CPU−A,1core−A」、「2.node−A,2CPU−A,1core−A」、「3.node−B,1CPU−B,1core−B」、「4.node−B,2CPU−B,1core−B」、「5.node−B,1CPU−B,2core−B」、「6.node−B,3CPU−B,1core−B」、「7.node−B,4CPU−B,1core−B」、「8.node−B,2CPU−B,2core−B」、「9.node−B,3CPU−B,2core−B」、及び「10.node−B,4CPU−B,2core−B」の10種類の系列が示されている。
サイジング対象が5階層以上である場合であっても、同様の処理が行われる。ある処理によって得られたデータは、次の処理における最下位層(第K+2階層)に関するデータとしてフィードバックされる。処理を繰り返すことによって、n階層全体の性能やコストを見積もることが可能となる。
2−3.第3の動作例
性能やコストの算出は、クラスタが有し得るパターンの全てに対して行われる必要はない。クラスタが有し得るパターンの一部に関してだけ、性能やコストが算出されてもよい。例えば、優れた性能が要求される場合、リソース数の少ないシステムでは要求される性能を達成できないと考えられる。よって、計算量を減らすために、リソース数の少ないパターンに対する計算は飛ばされてよい。図28は、本動作例において生成される性能テーブルT30の一例を示しており、第1の動作例で示された図14に対応している。図28において、第3階層のCPUの数が1である場合の性能は算出されていない。ユーザーは、比較的高い性能が得られるパターンだけを知ることができる。
また、比較的低コストのシステムが要求される場合、コストが高くなりすぎるパターンに対する計算が飛ばされてもよい。例えば、計算中にコストが所定の目標値を超えたら、その系列に対する計算は終了する。図29は、本動作例において生成されるコストテーブルT40の一例を示しており、第1の動作例で示された図16に対応している。図29においては、コストが8,000,000円を超えるパターンは示されていない。第3の動作例によれば、計算量が低減されるという効果が得られる。更に、要求されたシステムからかけ離れたパターンに関するプロットが表示されないため、ユーザーは、結果を見やすくなり、最適な構成を決定しやすくなる。
3.効果
以上に説明されたように、本実施の形態によれば、3階層以上の均一な階層的リソースの性能やコストを定量的に見積もることが可能となる。これにより、システム構築前に、階層的リソースのサイジングを精度良く行うことが可能となる。また、本実施の形態によれば、階層的リソースの性能とコストとの関係を、ユーザーにわかりやすく提示することが可能となる。ユーザーは、提示された情報を検討することによって、適切な階層的リソースの構成を容易に決定することができる。つまり、ユーザーは、システム構築前に将来の拡張性を予測でき、初期費用や拡張性の観点から最適な構成を決定することができる。よって、性能不足によりサービスが提供できなくなることが防止される。このようにして、サイジングが支援される。
上述の実施の形態において、各リソースの価格を示すコストデータ40が用いられていた。コストデータ40の代わりに、各リソースが放出する熱量を示す熱量データが用いられてもよい。その熱量データのフォーマットは、コストデータ40と同様であり、処理内容は変わらない。この場合、クラスタ等の階層的リソースの性能と熱量との関係を、ユーザーに定量的に提示することが可能となる。ユーザーは、要求性能を満たす熱放出の少ないクラスタを構築することができる。熱量以外にも性能と異なる指標を導入することによって、様々なサイジング支援が可能である。
図1は、本発明の実施の形態に係るサイジング支援システムの構成を示すブロック図である。 図2は、本発明の実施の形態に係るサイジング支援システムにおけるデータの流れを概念的に示すブロック図である。 図3は、本発明の実施の形態に係るサイジング支援方法を示すフローチャートである。 図4は、第1の動作例におけるサイジング対象であるクラスタの階層構造を示す概念図である。 図5は、下位リソースデータの一例を示す図である。 図6は、スケーラビリティデータの一例を示す図である。 図7は、単位性能データの一例を示す図である。 図8は、コストデータの一例を示す図である。 図9は、ステップS10を詳細に示すフローチャートである。 図10は、生成されるテーブルフレームの一例を示す図である。 図11は、ステップS20を詳細に示すフローチャートである。 図12は、生成されるスケールテーブルの一例を示す図である。 図13は、ステップS30を詳細に示すフローチャートである。 図14は、生成される性能テーブルの一例を示す図である。 図15は、ステップS40を詳細に示すフローチャートである。 図16は、生成されるコストテーブルの一例を示す図である。 図17は、ユーザービューデータの表示の一例を示す図である。 図18は、第2の動作例におけるサイジング対象であるクラスタの階層構造を示す概念図である。 図19は、下位リソースデータの一例を示す図である。 図20は、スケーラビリティデータの一例を示す図である。 図21は、単位性能データの一例を示す図である。 図22は、コストデータの一例を示す図である。 図23は、生成されるスケールテーブルの一例を示す図である。 図24は、生成される性能テーブルの一例を示す図である。 図25は、生成されるコストテーブルの一例を示す図である。 図26は、ステップS60を詳細に示すフローチャートである。 図27は、ユーザービューデータの表示の一例を示す図である。 図28は、第3の動作例において生成される性能テーブルの一例を示す図である。 図29は、第3の動作例において生成されるコストテーブルの一例を示す図である。
符号の説明
1 サイジング支援システム
2 記憶装置
3 プロセッサ
4 入力装置
5 表示装置
6 ネットワークインタフェース
7 メディアドライブ
10 下位リソースデータ
20 スケーラビリティデータ
30 単位性能データ
40 コストデータ
70 ユーザービューデータ
T10 テーブルフレーム
T20 スケールテーブル
T30 性能テーブル
T40 コストテーブル
100 サイジング支援プログラム
110 テーブル定義モジュール
120 スケール評価モジュール
130 性能評価モジュール
140 コスト評価モジュール
150 フィールド算出モジュール
160 処理階層更新モジュール
170 ユーザービュー作成モジュール

Claims (12)

  1. n階層(nは3以上の整数)の階層的リソースのサイジングを支援するサイジング支援システムであって、
    記憶装置と、
    テーブル定義モジュールと、
    フィールド算出モジュールと、
    処理階層更新モジュールと
    を備え、
    前記記憶装置は、
    前記n階層の各々のリソースが有し得る下位リソースの種類及び最大数を示す下位リソースデータと、
    前記n階層の各々のリソースに関するパラメータを示すリソースデータと
    を格納し、
    処理階層は、
    第1リソースから構成される第K階層(K=1〜n−2)と、
    第2リソースから構成される第K+1階層と、
    第3リソースから構成される第K+2階層と
    を含み、
    前記リソースデータは、
    前記各々の階層のリソースに関するスケーラビリティを示すスケーラビリティデータと、
    前記第3リソースの単位性能を示す単位性能データと、
    前記各々の階層のリソースのコストを示すコストデータと
    を含み、
    前記フィールド算出モジュールは、
    スケール評価モジュールと、
    性能評価モジュールと、
    コスト評価モジュールと
    を備え、
    前記処理階層に対する単位処理において、
    前記テーブル定義モジュールは、前記下位リソースデータを参照することによって、前記第1リソースがとり得るパターンを示すテーブルフレームを作成し、
    前記第1リソースがとり得るパターンは、前記第1リソースが有し得る前記第2リソースの種類及び数と、前記第2リソースが有し得る前記第3リソースの種類及び数との組み合わせにより規定され、
    前記スケール評価モジュールは、前記スケーラビリティデータを参照することによって、前記テーブルフレームが示すパターンに対する性能倍率を算出し、前記パターンのそれぞれに対して算出された前記性能倍率を示すスケールテーブルを生成し、
    ここで、前記性能倍率は、下位リソースの数が1の場合と比較して前記パターンの性能が何倍になるかを示し、
    前記性能評価モジュールは、前記スケールテーブルが示す前記性能倍率と前記単位性能データが示す前記単位性能の乗算を行うことによって、前記パターンのそれぞれの性能を示す性能テーブルを生成し、
    前記コスト評価モジュールは、前記コストデータを参照することによって、前記テーブルフレームが示すパターンのコストを算出し、前記パターンのそれぞれに対して算出された前記コストを示すコストテーブルを生成し、
    前記処理階層更新モジュールは、前記Kをn−2に初期設定し、
    前記単位処理が終了する度に、前記処理階層更新モジュールは、前記Kの値を1減らし、また、前記性能テーブル及び前記コストテーブルを参照することにより、次の前記単位処理で用いられる前記第3リソースに関する前記単位性能データ及び前記コストデータを抽出し、
    前記テーブル定義モジュール及び前記フィールド算出モジュールは、各Kに対応する前記処理階層に対して前記単位処理を繰り返し実行する
    サイジング支援システム。
  2. n階層(nは3以上の整数)の階層的リソースのサイジングを支援するサイジング支援システムであって、
    記憶装置と、
    テーブル定義モジュールと、
    フィールド算出モジュールと、
    処理階層更新モジュールと
    を備え、
    前記記憶装置は、
    前記n階層の各々のリソースが有し得る下位リソースの種類及び最大数を示す下位リソースデータと、
    前記n階層の各々のリソースに関するパラメータを示すリソースデータと
    を格納し、
    処理階層は、
    第1リソースから構成される第K階層(K=1〜n−2)と、
    第2リソースから構成される第K+1階層と、
    第3リソースから構成される第K+2階層と
    を含み、
    前記リソースデータは、
    前記各々の階層のリソースに関するスケーラビリティを示すスケーラビリティデータと、
    前記第3リソースの単位性能を示す単位性能データと
    を含み、
    前記フィールド算出モジュールは、
    スケール評価モジュールと、
    性能評価モジュールと
    を備え、
    前記処理階層に対する単位処理において、
    前記テーブル定義モジュールは、前記下位リソースデータを参照することによって、前記第1リソースがとり得るパターンを示すテーブルフレームを作成し、
    前記第1リソースがとり得るパターンは、前記第1リソースが有し得る前記第2リソースの種類及び数と、前記第2リソースが有し得る前記第3リソースの種類及び数との組み合わせにより規定され、
    前記スケール評価モジュールは、前記スケーラビリティデータを参照することによって、前記テーブルフレームが示すパターンに対する性能倍率を算出し、前記パターンのそれぞれに対して算出された前記性能倍率を示すスケールテーブルを生成し、
    ここで、前記性能倍率は、下位リソースの数が1の場合と比較して前記パターンの性能が何倍になるかを示し、
    前記性能評価モジュールは、前記スケールテーブルが示す前記性能倍率と前記単位性能データが示す前記単位性能の乗算を行うことによって、前記パターンのそれぞれの性能を示す性能テーブルを生成し、
    前記記憶装置には、前記パターンのそれぞれのコストを示すコストテーブルが格納されており、
    前記処理階層更新モジュールは、前記Kをn−2に初期設定し、
    前記単位処理が終了する度に、前記処理階層更新モジュールは、前記Kの値を1減らし、また、前記性能テーブルを参照することにより、次の前記単位処理で用いられる前記第3リソースに関する前記単位性能データを抽出し、
    前記テーブル定義モジュール及び前記フィールド算出モジュールは、各Kに対応する前記処理階層に対して前記単位処理を繰り返し実行する
    サイジング支援システム。
  3. 請求項1又は2に記載のサイジング支援システムであって、
    前記第2リソースの数がiで表され、
    前記第2リソースに関する前記スケーラビリティデータが配列sK+1[i]で表され、
    前記第3リソースの数がjで表され、
    前記第3リソースに関する前記スケーラビリティデータが配列sK+2[j]で表され、
    前記スケール評価モジュールは、前記パターンに対する前記性能倍率Sijを、次式:
    ij=sK+1[i]×i×sK+2[j]×j
    に基づいて算出する
    サイジング支援システム。
  4. 請求項1乃至3のいずれか一項に記載のサイジング支援システムであって、
    更に、表示装置を備え、
    前記Kが1である場合の前記単位処理が終了した場合、
    前記表示装置は、前記スケールテーブル、前記性能テーブル、及び前記コストテーブルのうち少なくとも1つを表示する
    サイジング支援システム。
  5. 請求項1乃至3のいずれか一項に記載のサイジング支援システムであって、
    更に、
    ユーザービュー作成モジュールと、
    表示装置と
    を備え、
    前記Kが1である場合の前記単位処理が終了した場合、
    前記ユーザービュー作成モジュールは、前記スケールテーブル、前記性能テーブル、及び前記コストテーブルのうち少なくとも2つを互いに関連付け、前記関連を示すユーザービューデータを作成し、
    前記表示装置は、前記ユーザービューデータの表示を行う
    サイジング支援システム。
  6. 請求項に記載のサイジング支援システムであって、
    前記ユーザービューデータは、前記性能テーブルが示す前記性能と前記コストテーブルが示す前記コストとの関連を示し、
    前記表示装置は、前記パターンのそれぞれに関する性能とコストとの関係を表示する
    サイジング支援システム。
  7. n階層(nは3以上の整数)の階層的リソースのサイジングを支援するサイジング支援方法であって、
    (A)コンピュータが、前記n階層の各々のリソースが有し得る下位リソースの種類及び最大数を示す下位リソースデータを記憶装置に格納するステップと、
    (B)前記コンピュータが、前記n階層の各々のリソースに関するパラメータを示すリソースデータを前記記憶装置に格納するステップと、
    (C)前記コンピュータが、処理階層を設定するステップと、
    ここで、前記処理階層は、
    第1リソースから構成される第K階層(K=1〜n−2)と、
    第2リソースから構成される第K+1階層と、
    第3リソースから構成される第K+2階層と
    を含み、
    (D)前記コンピュータが、前記処理階層に対して単位処理を実行するステップと
    ここで、前記リソースデータは、
    前記各々の階層のリソースに関するスケーラビリティを示すスケーラビリティデータと、
    前記第3リソースの単位性能を示す単位性能データと、
    前記各々の階層のリソースのコストを示すコストデータと
    を含み、
    前記単位処理は、
    前記記憶装置に格納された前記下位リソースデータを参照することによって、前記第1リソースがとり得るパターンを示すテーブルフレームを作成するステップと、
    ここで、前記第1リソースがとり得るパターンは、前記第1リソースが有し得る前記第2リソースの種類及び数と、前記第2リソースが有し得る前記第3リソースの種類及び数との組み合わせにより規定され、
    前記スケーラビリティデータを参照することによって、前記テーブルフレームが示すパターンに対する性能倍率を算出し、前記パターンのそれぞれに対して算出された前記性能倍率を示すスケールテーブルを生成するステップと、
    ここで、前記性能倍率は、下位リソースの数が1の場合と比較して前記パターンの性能が何倍になるかを示し、
    前記スケールテーブルが示す前記性能倍率と前記単位性能データが示す前記単位性能の乗算を行うことによって、前記パターンのそれぞれの性能を示す性能テーブルを生成するステップと、
    前記コストデータを参照することによって、前記テーブルフレームが示すパターンのコストを算出し、前記パターンのそれぞれに対して算出された前記コストを示すコストテーブルを生成するステップと
    を含み、
    (E)前記コンピュータが、前記Kをn−2に初期設定するステップと、
    (F)前記(D)ステップが終了する度に、前記コンピュータが、前記Kの値を1減らし、また、前記性能テーブル及び前記コストテーブルを参照することにより、次の前記単位処理で用いられる前記第3リソースに関する前記単位性能データ及び前記コストデータを抽出するステップと、
    (G)前記コンピュータが、各Kに対応する前記処理階層に対して前記単位処理を繰り返し実行するステップと
    を有する
    サイジング支援方法。
  8. 請求項に記載のサイジング支援方法であって、
    前記第2リソースの数がiで表され、
    前記第2リソースに関する前記スケーラビリティデータが配列sK+1[i]で表され、
    前記第3リソースの数がjで表され、
    前記第3リソースに関する前記スケーラビリティデータが配列sK+2[j]で表され、
    記パターンに関する前記性能倍率Sijは、次式:
    ij=sK+1[i]×i×sK+2[j]×j
    に基づいて算出される
    サイジング支援方法。
  9. 請求項7又は8に記載のサイジング支援方法であって、
    更に、(H)前記Kが1である場合の前記単位処理が終了した場合、前記コンピュータが、前記スケールテーブル、前記性能テーブル、及び前記コストテーブルのうち少なくとも1つを表示装置に表示させるステップを有する
    サイジング支援方法。
  10. 請求項7又は8に記載のサイジング支援方法であって、
    更に、
    (I)前記Kが1である場合の前記単位処理が終了した場合、前記コンピュータが、前記スケールテーブル、前記性能テーブル、及び前記コストテーブルのうち少なくとも2つを互いに関連付け、前記関連を示すユーザービューデータを作成するステップと、
    (J)前記コンピュータが、前記ユーザービューデータを表示装置に表示させるステップと
    を有する
    サイジング支援方法。
  11. 請求項10に記載のサイジング支援方法であって、
    前記ユーザービューデータは、前記性能テーブルが示す前記性能と前記コストテーブルが示す前記コストとの関連を示し、
    前記(J)ステップにおいて、前記パターンのそれぞれに関する性能とコストとの関係が前記表示装置に表示される
    サイジング支援方法。
  12. 請求項7乃至11のいずれか一項に記載のサイジング支援方法を前記コンピュータに実行させるための
    サイジング支援プログラム。
JP2006090016A 2006-03-29 2006-03-29 サイジング支援システム、方法、及びプログラム Expired - Fee Related JP4716259B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006090016A JP4716259B2 (ja) 2006-03-29 2006-03-29 サイジング支援システム、方法、及びプログラム
US11/727,171 US7716447B2 (en) 2006-03-29 2007-03-23 System, method and program for supporting a computer sizing having N level hierarchical resources

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006090016A JP4716259B2 (ja) 2006-03-29 2006-03-29 サイジング支援システム、方法、及びプログラム

Publications (2)

Publication Number Publication Date
JP2007265079A JP2007265079A (ja) 2007-10-11
JP4716259B2 true JP4716259B2 (ja) 2011-07-06

Family

ID=38560831

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006090016A Expired - Fee Related JP4716259B2 (ja) 2006-03-29 2006-03-29 サイジング支援システム、方法、及びプログラム

Country Status (2)

Country Link
US (1) US7716447B2 (ja)
JP (1) JP4716259B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5282908B2 (ja) 2007-10-03 2013-09-04 日本電気株式会社 階層型負荷推定システム、方法およびプログラム
JP6842447B2 (ja) * 2018-09-12 2021-03-17 株式会社日立製作所 リソース割当ての最適化を支援するシステム及び方法

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61245273A (ja) 1985-04-24 1986-10-31 Hitachi Ltd 部品展開集約方法および装置
JPS63259740A (ja) 1987-04-17 1988-10-26 Hitachi Ltd 性能推定装置
JPH02219138A (ja) 1989-02-21 1990-08-31 Nec Corp コンピュータ性能予測装置
JPH03108036A (ja) 1989-09-20 1991-05-08 Fujitsu Ltd データベース管理システムの性能見積もり方法
JPH0438522A (ja) 1990-06-05 1992-02-07 Mitsubishi Electric Corp ソフトウェアプログラムシミュレータ
JPH0553878A (ja) * 1991-08-29 1993-03-05 Toshiba Corp マンマシンシステム評価支援装置
JP2699738B2 (ja) 1991-11-29 1998-01-19 日本電気株式会社 オーバーヘッド情報算出方式
JPH06139065A (ja) 1992-10-29 1994-05-20 Hokuriku Nippon Denki Software Kk プログラム性能見積もり装置
JPH08202541A (ja) 1995-01-24 1996-08-09 N T T Data Tsushin Kk システム設計方法及びシステム設計支援装置
JPH10198641A (ja) * 1996-12-28 1998-07-31 Nec Corp 分散処理型計算機システム性能評価方法
JPH11265306A (ja) 1998-03-16 1999-09-28 Ntt Data Corp 処理能力概算装置、処理能力概算方法及び記録媒体
JP3137082B2 (ja) 1998-07-10 2001-02-19 日本電気株式会社 階層的資源競合を持つシステムの性能評価装置及び方法
US6347366B1 (en) * 1998-12-10 2002-02-12 Genuity Inc. System and method for automatically optimizing software performance
JP3185884B2 (ja) 1999-01-11 2001-07-11 日本電気株式会社 オブジェクト指向プログラム性能予測方法
JP2002183416A (ja) * 2000-12-15 2002-06-28 Hitachi Ltd システム提案方法及びその実施装置並びにその処理プログラムを記録した記録媒体
JP3806609B2 (ja) * 2001-04-27 2006-08-09 株式会社日立製作所 並列データベースシステムおよび分散ファイルシステム
JP2003223335A (ja) 2002-01-30 2003-08-08 Nec Corp アウトソーシングシステム、アウトソーシング方法およびアウトソーシング用プログラム
JP2004054680A (ja) * 2002-07-22 2004-02-19 Fujitsu Ltd 並列効率計算方法
US7389435B2 (en) 2002-08-12 2008-06-17 Hewlett-Packard Development Company, L.P. System and method for the frequency management of computer systems to allow capacity on demand
JP4787460B2 (ja) 2003-01-17 2011-10-05 日本電気株式会社 ソフトウェア・コンポーネントの性能測定を基にしたシステム性能予測方式および方法
US7451183B2 (en) 2003-03-21 2008-11-11 Hewlett-Packard Development Company, L.P. Assembly and method for balancing processors in a partitioned server
JP4526774B2 (ja) 2003-03-28 2010-08-18 株式会社野村総合研究所 コンピューターシステムの構成装置の性能バランス評価とサイジングを行う装置と方法
JP4093483B2 (ja) 2003-12-26 2008-06-04 インターナショナル・ビジネス・マシーンズ・コーポレーション 解析システム、解析方法、解析プログラム、及び記録媒体
JP4592325B2 (ja) * 2004-04-28 2010-12-01 株式会社東芝 Itシステムの設計支援システムおよび設計支援方法
JP4606333B2 (ja) * 2005-09-20 2011-01-05 富士通株式会社 ルーティング制御方法
JP2007207173A (ja) * 2006-02-06 2007-08-16 Fujitsu Ltd 性能分析プログラム、性能分析方法、および性能分析装置
JP5088668B2 (ja) * 2007-03-08 2012-12-05 日本電気株式会社 計算機負荷見積システム、計算機負荷見積方法、計算機負荷見積プログラム

Also Published As

Publication number Publication date
US20070233996A1 (en) 2007-10-04
US7716447B2 (en) 2010-05-11
JP2007265079A (ja) 2007-10-11

Similar Documents

Publication Publication Date Title
US20030033132A1 (en) Technique and interface for storage system resource assignment
WO2009154479A1 (en) A method of optimizing a tree structure for graphical representation
CN110168546A (zh) 用于增材制造过程的热-结构模拟的自适应域约简的系统与方法
JP6094593B2 (ja) 情報システム構築装置、情報システム構築方法および情報システム構築プログラム
JP4716259B2 (ja) サイジング支援システム、方法、及びプログラム
WO2012023625A1 (ja) 拡張性評価装置、拡張性評価方法および拡張性評価プログラム
WO2019234898A1 (ja) 工程決定支援装置、工程決定支援方法、工程決定支援プログラムおよび記憶媒体
JP2011192049A (ja) 仮想マシンシステム、自動マイグレーション方法および自動マイグレーションプログラム
WO2012147825A1 (ja) アプリケーションアーキテクチャ設計方法、アプリケーションアーキテクチャ設計装置、および記録媒体
JP7378990B2 (ja) 構成表示装置、構成表示方法、及び構成表示プログラム
JP5790270B2 (ja) 構造解析システム,構造解析プログラムおよび構造解析方法
JP6649128B2 (ja) 監視制御装置、監視制御装置に適用される情報表示方法、情報表示モジュール、および情報表示プログラム、ならびに情報表示テーブル
WO2010038259A1 (ja) ファイル格納装置及び方法
JP2007128382A (ja) クラスタシステムの性能予測方法および装置
JP7509234B2 (ja) 計算資源クラスタ管理装置、計算資源クラスタ管理方法、および、計算資源クラスタ管理プログラム
JP5871018B2 (ja) 性能予測装置、性能モデル生成方法およびプログラム
JP2009199367A (ja) 計算機システム、i/oスケジューラ及びi/oスケジューリング方法
JP7559601B2 (ja) 分析装置管理システムおよびプログラム
JP2002245097A (ja) 連成解析方法、その解析条件設定方法、その記憶媒体及びそのプログラム
JP3987059B2 (ja) 最適値探索支援装置、最適値探索支援方法、及び記録媒体
JP6842502B2 (ja) 障害解析支援システム、障害解析支援方法、及び、コンピュータプログラム
JP5900341B2 (ja) 構成管理装置、構成管理方法、及び構成管理プログラム
JP2017146899A (ja) 歩留り予測装置および歩留り予測方法
JP6418537B1 (ja) 説明変数に確率密度関数を適用した回帰分析によるデータ予測システム、データ予測方法、及びデータ予測プログラム
JP4126323B2 (ja) Lsiフロアプラン決定装置及び方法並びにプログラム記録媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090212

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101201

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101221

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110218

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110307

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110320

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140408

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees