この付録では、計算対象の多数のコンポーネントの記録に役立つ、ワークシートによるアプローチを使用します。このドキュメントの印刷版をご使用の場合は、ワークシートをコピーできます。それ以外の場合は、別紙でワークシートをシミュレートできます。DAやMAなどのラベルは、計算済の様々なディスクおよびメモリーのコンポーネント値の記録に役立ちます。
データベースのサイズを決定するには、Essbaseで使用されるストレージのユニットを理解する必要があります。ここでは、次の基本的な概念に精通していることを前提として説明します:
Essbaseでのデータの保管方法(多次元データベースの理解を参照)
Essbase KernelコンポーネントによるEssbaseデータベースの管理方法(データベース設定の管理を参照)
Essbaseのデータベースは多数のコンポーネントで構成されています。Essbaseでは、アウトライン・ファイルとデータ・ファイルに加え、いくつかのタイプのファイルとメモリー構造を使用して、データ・ストレージ、計算および取得操作の管理を行います。
表243で、データベースのディスクとメモリーの要件を見積るときに考慮すべき主要コンポーネントについて説明します。「はい」は示されているタイプのストレージに関連があることを意味し、「いいえ」は関連がないことを意味します。
表 243. ディスクとメモリーの要件の計算で考慮すべきストレージ・ユニット
Essbaseでは、そのサーバー・ソフトウェア用と各データベース用にディスク・スペースを使用します。データベースのディスク・ストレージ要件を見積る前に、データベースに含まれている次元の数、次元の疎と密の度合い、各次元内のメンバーの数、および保管済メンバーであるメンバーの数がわかっている必要があります。
データベースに必要なディスク・スペースを計算するには:
ディスク要件のサイズ設定に使用される要素の計算に示されている要素を計算します。
1つのデータベースのディスク・スペース要件の見積りを参照してください。
Essbaseサーバーで必要な合計ディスク・スペースを計算します。
Essbaseサーバーの合計ディスク・スペース要件の見積りを参照してください。
この章で示すデータベースのサイズ設定の計算は、データベース設計が最適でディスク・スペースに制限のない、理想的なシナリオを想定しています。ほとんどの多次元アプリケーションは疎のため、必要なスペースを正確に特定するのは困難です。 |
データベースのディスク・スペース要件を見積る前に、見積りの計算に使用される要素を計算する必要があります。この章の後のほうでは、これらの値を使用してデータベースのコンポーネントを計算します。データベースごとに、そのコンポーネントのサイズを合計します。
表244に、これらの要素の計算方法について説明している項のリストを示します。示されている項に進んで、計算を実行してから、「値」列に計算された値を記入します。
潜在的なデータ・ブロック数とは、データベースに格納できるデータ・ブロックの最大数のことです。
データベースがすでにロードされている場合、Administration Servicesの「データベース・プロパティ」ダイアログ・ボックスの「統計」タブにブロックの潜在数が表示されます。
データベースがまだロードされていない場合は、その値を計算する必要があります。
潜在的なデータ・ブロック数を決定する場合には、保管済メンバーのすべての組合せに対してデータ値が存在するものと仮定します。
潜在的なブロック数と比較すると、既存のブロックとは、それらのデータ・ブロックのうち、Essbaseで実際に作成されるブロックのことです。Essbaseでブロックを作成するには、疎次元からの保管済メンバーの組合せに対して少なくとも1つの値が存在する必要があります。多数の組合せが欠落している可能性があるため、通常、既存のデータ・ブロック数は潜在的なデータ・ブロック数よりもかなり少なくなります。
すでにロードされているデータベースの既存のブロック数を確認するには、Administration Servicesの「データベース・プロパティ」ダイアログ・ボックスの「統計」タブで既存のブロック数を探します。その値を、表244のDBとラベル付けされたセルに記入します。
データベースがまだロードされていない場合は、値を見積る必要があります。
既存のデータ・ブロックの数を見積るには:
number of existing blocks = estimated density * potential number of blocks
実際のブロック数を、表244のDBとラベル付けされたセルに記入します。
次に、疎のレベルが異なる3つの例を示します。潜在的なデータ・ブロック数は100,000,000と仮定しています:
きわめて疎: 潜在的なデータ・セルのうち5パーセントが存在します。
.05 (estimated density) * 100,000,000 (potential blocks) = 5,000,000 existing blocks
疎: 潜在的なデータ・セルのうち15パーセントが存在します。
.15 (estimated density) * 100,000,000 (potential blocks) = 15,000,000 existing blocks
密: 潜在的なデータ・セルのうち50パーセントが存在します。
.50 (estimated density) * 100,000,000 (potential blocks) = 50,000,000 existing blocks
各データ・ブロックの潜在的な拡張(非圧縮)サイズは、ブロック内のセルの数と、各セルに使用されるバイト数に基づきます。セルの数は、密次元内の保管済メンバーの数に基づきます。Essbaseでは、ブロック内の交差する値のそれぞれを保管するため、8バイトを使用します。
ロードされているデータベースの既存のブロック数を確認するには、Administration Servicesの「データベース・プロパティ」ダイアログ・ボックスの「統計」タブで展開済データ・ブロックのサイズを探します。
データベースがロードされていない場合は、その値を見積る必要があります。
展開済データ・ブロックのサイズを決定するには:
表246をワークシートとして使用し、それぞれの密次元と、その保管済メンバーの数を入力します。8つ以上の密次元が存在する場合は、次元を他の場所にリストして、計算にすべての密次元を含めてください。
最初の密次元の保管済メンバーの数(a行)に、2番目の密次元の保管済メンバーの数(b行)を乗算し、さらに3番目の密次元の保管済メンバーの数(c行)を乗算し、これを繰り返して、ブロック内のセルの総数を決定します:
a * b * c * d * e * f * g (and so on) = the total number of cells
結果のセル数に8バイトを乗算して、拡張ブロック・サイズを決定します:
(Total number of cells) * 8 bytes per cell = expanded block size
その結果の値を、表244のDCとラベル付けされたセルに記入します。
Sample.Basicデータベースには、次の密次元が含まれます:
次の計算を行い、Sample.Basicデータベース内のデータ・ブロックの潜在的なサイズを決定します:
12 * 8 * 2 = 192 data cells 192 data cells * 8 bytes = 1,536 bytes (potential data block size)
圧縮は、データ・ファイルで使用される実際のディスク・スペースに影響します。4つのタイプの圧縮(ビットマップ、ランレングス符号化(RLE)、zlibおよびインデックス値)は、ディスク・スペースに対してそれぞれ異なる影響を与えます。サイズ要件の見積りに関係のないデータ圧縮の詳細は、データ圧縮を参照してください。
圧縮を使用しない場合や、RLE圧縮を使用可能にしている場合は、この計算を飛ばして保管済データ・ファイルに進んでください。
ビットマップ圧縮が使用可能な場合の平均圧縮ブロック・サイズを計算するには:
expanded block size * block density = compressed block size
結果のブロック・サイズを、表244のDDとラベル付けされたセルに記入します。
拡張ブロック・サイズを1,536バイト、ブロック密度を25% (.25)と仮定します:
1,536 bytes * .25 = 384 bytes (compressed block size)
データベースのディスクスペース要件を見積るには、表247のコピーを作成するか、1つのデータベース用のワークシートとして別個の用紙を使用します。サーバーに複数のデータベースがある場合は、データベースごとにこのプロセスを繰り返します。ワークシートにデータベースの名前を記入します。
このワークシートの各行は、そのコンポーネントのサイズ設定方法が記載されている項を示します。それぞれの計算を実行し、その結果を「サイズ」列の適切なセルに記入します。この計算では、表244に記入された要素を使用します。
表 247. ワークシート: データベースのディスク要件の見積り
作業領域: DE + DF + DG + DH | |
リンク・レポート・オブジェクトに関する考慮事項(必要な場合) | |
DI + DJ このデータベースの名前および必要な合計ディスク・スペースを、表248に入力します。このワークシートによって、サーバーのすべてのデータベースで必要なディスク・スペースが決定されます(データベース用に、aからgまでの7つのプレースホルダが用意されています)。 |
サーバー上のデータベースごとにこれを繰り返します。サーバー上のすべてのデータベースのディスク・スペースの見積りが完了した後で、Essbaseサーバーの合計ディスク・スペース要件の見積りに進みます。
保管済データベースのサイズは、データベースが圧縮されているかどうか、およびそのデータベースの圧縮方法によって異なります。Essbaseには、ビットマップ、ランレングス符号化(RLE)、zlib、インデックス値および圧縮なしの5つの圧縮方法があります。
圧縮データベースのサイズの計算は、次のような数多くの理由により複雑です:
サイズ要件の見積りに関係のないデータ圧縮の包括的な説明は、データ圧縮を参照してください。ここで説明する計算は、見積りのみを目的としています。
圧縮データ・ファイル(essxxxxx.pag)の保管に必要なスペースの計算には、次の要素を使用します:
既存のブロック数(表244の値DB)
展開済データ・ブロックのサイズ(表244の値DC)
データベースの密度: 値を持つ疎次元の保管済メンバーの組合せの割合。(計算には、既存のデータ・ブロック数を参照。)
この結果を、表247のDEとラベル付けされたセルに記入します。インデックス・ファイルに進んでください。
使用される圧縮方法はブロックごとに異なる可能性があるため、次の計算式は一般的なデータベース・サイズの見積りです。実際の実装は、この計算よりも大きい数や小さい数になることがあります。
圧縮オプションがビットマップの場合にデータベース・サイズを見積るには、次の式を使用します:
Number of blocks * (72 bytes + (average size in bytes of an expanded data block) * (1/64 + proportion of cells that are not #MISSING))
たとえば、1000ブロックあり、拡張ブロックの平均サイズが2000バイトで、セルの30%が#MISSINGの場合、結果は次のようになります:
1000 * (72 + 2000 * (1/64 + 0.7) ) = 1000 * 1503 = 1,503,000 bytes (approximately)
この結果を、表247のDEとラベル付けされたセルに記入します。インデックス・ファイルに進んでください。
圧縮オプションがインデックス値の場合にデータベース・サイズを見積るには、次の式を使用します:
Number of blocks * (72 bytes + (1.5 * database density * expanded data block size)
この結果を、表247のDEとラベル付けされたセルに記入します。インデックス・ファイルに進んでください。
圧縮オプションがRLEの場合にデータベース・サイズを見積るには、ビットマップ圧縮の計算式を使用します。
圧縮方法がRLEの場合、Essbaseでより適切に圧縮されると判断できる場合は、ブロックに対して自動的にビットマップまたはインデックス値の方法が使用されます。ビットマップ計算を使用した見積りでは、最大サイズが見積られます。
この結果を、表247のDEとラベル付けされたセルに記入します。インデックス・ファイルに進んでください。
圧縮オプションがzlibの場合にデータベース・サイズを見積るには、ビットマップ圧縮の計算式を使用します。
zlib圧縮を使用した場合、データ・ブロックのサイズの決定は困難です。個々のブロックは、他の圧縮タイプを使用した圧縮に比べ、大きくなることも小さくなることもあります。いずれにせよビットマップ圧縮を使用して計算すれば、この演習で使用するための近似値が得られます。
この結果を、表247のDEとラベル付けされたセルに記入します。インデックス・ファイルに進んでください。
インデックス・ファイル(essxxxxx.ind)の保管に必要な容量の計算には、次の要素を使用します:
既存のブロック数(表244の値DB)
インデックスの最小サイズは8,216,576バイト(8 MB)です。すべてのインデックス・ファイルを含むデータベース・インデックスのサイズを計算するには、次の計算を実行します:
number of existing blocks * 112 bytes = the size of database index
表247のDFとラベル付けされたセルに、計算の結果か8,216,576のどちらか大きい方の数を記入します。
次の例では、15,000,000ブロックのデータベースを想定しています。
15,000,000 blocks * 112 = 1,680,000,000 bytes
ビットマップ圧縮またはRLE圧縮を使用している場合は、ある程度の断片化が発生します。その量はデータベースとオペレーティング・システムの個々の構成に基づき、正確に予測できません。
おおまかな見積りとして、圧縮されたデータベース・サイズ(表247の値DE)の20%を計算し、その結果を同じ表のDGとラベル付けされたセルに記入します。
圧縮データベース・サイズを5,769,000,000バイトと仮定した、断片化許容量の計算:
5,769,000,000 bytes * .2 = 1,153,800,000 bytes
アウトラインに必要なスペースには、2つのコンポーネントが格納されることがあります。
アウトラインの主要領域。ディスク要件およびメモリー要件の両方に関係するコンポーネントであり、次の要素を使用して計算します:
アウトライン内のメンバー数
メンバー名および別名の長さ(シングル・バイト換算での文字数)
アウトラインの属性の関連付けにかかわる領域。ディスク・スペースのみに関係するコンポーネントであり、次の要素を使用して計算します:
各基本次元内のメンバー数
各属性次元内のメンバー数
アウトライン・ファイルのサイズを見積るには:
アウトラインの主要領域を見積るには、メンバー数にメンバー名の長さ(350 - 450バイト)を掛けます。
データベースに含まれている別名が少ない場合や、非常に短い別名と短いメンバー名が含まれている場合は、この範囲内でより小さい数を使用します。メンバー名や別名が非常に長いことがわかっている場合は、この範囲内でより大きい数を使用します。
名前の長さは概算平均であるため、次の式で求められる値は、アウトラインの主要領域のおおまかな見積りにすぎません:
number of members * name-length factor = size of main area of outline
注: | メンバー名および別名の最大サイズは、制限、を参照してください。 |
この章で後述するメモリー容量要件の計算に、アウトラインの主要領域のサイズを使用します。
ディスク・スペース要件を求めるには、アウトラインに属性次元が含まれている場合は、データベースの属性関連付けの領域のサイズを計算します。この領域のサイズは、基本次元ごとに計算します。基本次元のメンバー数に、基本次元に関連付けられているすべての属性次元のメンバー数の合計を掛け、8で割ります:
(number of base-dimension members * sum of count of attribute-dimension members)/8 = size of attribute association area for a base dimension
注: | メンバー数には、ラベルのみメンバーおよび共有メンバーは含めないでください。 |
アウトラインに必要な合計ディスク容量を求めるには、アウトラインの主要領域と属性の関連付け領域を加算します:
main area of outline + total attribute association area
この計算の結果を、表247のDHとラベル付けされたセルに記入します。
アウトラインに次の特性があると仮定します:
メンバー数は26,000
メンバー名の長さは400バイト
基本次元「Product」(ラベルのみメンバーと共有メンバーを除いたメンバー数が23,000)には、「Ounces」(メンバー数20)と「Pkg Type」(メンバー数50)の2つの属性次元が関連付けられています
基本次元「Market」(ラベルのみメンバーと共有メンバーを除いたメンバー数が2,500)には、属性次元「Population」(メンバー数12)が関連付けられています
次の計算を行います:
アウトラインの主要領域を計算します:
name-length factor of 400 bytes * 26,000 members = 10,400,000 bytes
属性の関連付け領域を計算します:
基本次元「Product」について:
(23,000 * (20 + 50)) bits / 8 bits per byte = 201,250 bytes
基本次元「Market」について:
(2,500 * 12) bits / 8 bits per byte = 3,750 bytes
これらの領域を合計し、データベースの属性の関連付け領域の合計を求めます:
201,250 bytes + 3,750 bytes = 205,000 bytes
アウトライン・ディスク・スペースの概算合計を求めるには、アウトラインの主要領域と属性の関連付け領域の合計を足します:
10,400,000 bytes + 205,000 bytes = 10,605,000 bytes (outline disk space requirement)
注: | この手順は、アウトラインのメモリー・スペース要件の計算には使用しないでください。メモリー内で使用するアウトライン・サイズのアウトラインで説明するプロセスを使用してください。 |
ディスク上の一時作業領域は、次の3つのプロセスで作成されます:
これらの一時作業領域を作成するには、Essbaseでデータベース全体のサイズに等しいディスク・スペースが必要になる場合があります。再構築と移行には、アウトラインのサイズに追加の作業スペースが必要です。これらのアクティビティは同時に発生することはないため、単一の割当てによって3つの要件すべてに対応できます。
再構築、移行およびリカバリに使用される作業領域のサイズを計算するには、表247から次のデータベース・コンポーネントのサイズの合計を計算します:
work area = size of compressed data files + size of index files + fragmentation allowance + outline size
この計算の結果を、表247のDIとラベル付けされたセルに記入します。
リンク・レポート・オブジェクト(LRO)機能を使用して、オブジェクト(アーティファクトともいう)をデータ・セルと関連付けることができます。オブジェクトには、フラット・ファイル、HTMLファイル、グラフィック・ファイルおよびセル・ノートがあります。Essbaseデータへのオブジェクトのリンク。を参照してください。
オブジェクトのサイズ。EssbaseではLROとして使用されるファイルがサーバーにコピーされるため、LROとして使用しているすべてのファイルのサイズ合計がわかっている必要があります。
リンク・オブジェクトがファイルである場合(セル・ノートではない場合)、リンク・オブジェクトのサイズに対して制限を設定できます。LROファイル・サイズの制限を参照してください。 |
LROカタログには、Essbase KernelでLROに関する情報が保管されます。セル・ノートとURLもこのカタログ内に保管されます。カタログ・エントリはインデックス・ページとして保管されます。Essbaseでは、カタログ・エントリごとに8KBを使用します。
LROのディスク・スペース要件を見積るには:
オブジェクトのサイズを見積ります。制限が設定されている場合は、LROの数にその制限を掛けます。設定されていない場合は、予想されるすべてのLROのサイズを合計します。
2つの領域を合計し、この計算の結果を、表247のDJとラベル付けされたセルに記入します。
データベースで、次のような構成の1,500個のLROを使用していると仮定します:
ブロック・ストレージ・データベースの制限で、リンク・レポート・オブジェクトに関する考慮事項も参照してください。
この章の前述の計算は、単一データベースのデータ・ストレージ要件を見積るものです。多くの場合、サーバーには複数のデータベースが存在します。
サーバー上のEssbaseデータ・ストレージ要件の合計には、各データベースに必要なデータ・ストレージ以外に、Essbaseソフトウェアも含まれます。Essbaseソフトウェアおよびサンプル・アプリケーションの基本インストール用に、約200 MB (209,715,200バイト)を確保します。この容量はプラットフォームおよびファイル・システムによって異なります。
サーバーの合計ディスク・スペース要件を見積るには:
表248のワークシートに、データベース名と、各データベースについて計算したディスク・スペース要件をリストします。
DMとラベル付けされたセルに、サーバー上にインストールするソフトウェアのディスク・スペース要件(たとえば209,715,200バイト)を記入します。
バイト単位の合計サーバー・ディスク・スペース要件について、セルDLおよびDMの値を合計します。この値をDNとラベル付けされたセルに記入します。
この値を1,048,576バイトで割ることで、セルDNの合計をMBに変換します。この値をDOとラベル付けされたセルに記入します。
Essbaseを実行するための最小メモリー要件は、64 MBです。UNIXシステムの場合、最小要件は128 MBです。アプリケーションおよびデータベースの数と、サーバーでのデータベース操作に基づいて、必要なメモリーが多くなる場合があります。
データベースに必要なメモリーを計算するには:
メモリー要件のサイズ計算に使用される要素に示されている要素を計算します。
アプリケーションの起動用メモリー要件の見積りを参照してください。
データベースの起動用メモリー要件の見積りを参照してください。
Essbaseサーバーに複数のデータベースが含まれている場合、各データベースに対してこれらの計算を実行します。
Essbaseサーバーの合計ディスク・スペース要件の見積りを参照してください。
見積りを始める前に、見積りの計算に使用する要素を計算します。
表249に、サイズを決定する要素と、これらのサイズ決定についての情報が記載されている参照先(この章と他の章の項)をリストします。指定されたセクションに移動して計算を実行し、表249に戻ります。このワークシートの「値」列に、バイト単位でサイズを書き込みます。
表249の値は、この章で後述する様々な計算に使用できます。
表 249. ワークシート: データベースのメモリー要件の計算に使用する要素
論理ブロック内のセル数を参照してください。 | |
SERVERTHREADS ESSCMDによって割り当てられたスレッドの数 『Oracle Essbaseテクニカル・リファレンス』を参照してください。 | |
展開済データ・ブロックのサイズを参照してください。 |
この章の計算は、使用されるメモリー量に複雑に影響する次の要素には対応していません。これらはここでの説明には含まれていません:
キャッシュ・メモリーのロック。キャッシュ・メモリーのロックが使用可能かどうかは、オペレーティング・システムとEssbaseでメモリーがどのように管理されるかに影響します。キャッシュ・メモリーのロックを使用するかどうかの決定を参照してください。
様々な操作のタイプとそれらに関連するキャッシュ割当て。データ・ロード操作、データ取得操作および計算操作では、データ・ファイル、データ、計算キャッシュのためのメモリー、そしてキャッシュに関連したオーバーヘッド用のメモリーが確保されます。
取得バッファおよび取得ソート・バッファのサイズ。取得バッファおよび取得ソート・バッファのサイズの重要性の説明は、バッファのサイズの変更を参照してください。
essbase.cfgファイル内のCALCLOCKBLOCK設定をSET LOCKBLOCK設定(使用するCALCLOCKBLOCK設定を指定)と組み合せて使用して定義されたデータ・ブロックの数。
アプリケーションの起動時に使用される全メモリーに加え、各データベースのメモリー要件を計算する必要があります。
起動される各アプリケーションには、起動時に次のメモリー要件があります:
サーバーで同時に実行されるアプリケーションの数に起動要件を掛けて、その結果の値を表252のMLとラベル付けされたセルに記入します。
Essbaseサーバーの各データベースのメモリー要件を計算します。
データベースごとに、表250のコピーを作成するか、1つのデータベース用のワークシートとして別個の用紙を使用します。Essbaseサーバーに複数のデータベースがある場合は、データベースごとにこのプロセスを繰り返します。ワークシートにデータベース名を記入します。
各行は、そのコンポーネントのサイズ設定方法を説明する情報にリンクします。それぞれの計算を実行し、その結果を「サイズ(MB)」列の該当のセルに記入します。計算によっては、表249に記入した要素を使用します。「サイズ」列にすべてのサイズを記入した後、それらのサイズを合計して、そのデータベースのメモリー要件を決定します。
表 250. ワークシート: データベースのメモリー要件の見積り
データベース名: |
サイズ(MB) |
---|---|
メモリー要件:
|
|
1つのデータベースの起動要件: | |
データベース・アウトライン メモリー内で使用するアウトライン・サイズを参照してください。 | |
インデックス・キャッシュ キャッシュのサイズ設定を参照してください。 | |
キャッシュに関連するオーバーヘッド キャッシュに関連するオーバーヘッドを参照してください。 | |
データ構造用領域 データ構造用メモリー領域を参照してください。 | |
操作要件: | |
データ取得に使用するメモリー データ取得用の追加メモリー要件の見積りを参照してください。 | |
計算に使用するメモリー 計算用の追加メモリー要件の見積りを参照してください。 | |
MA + MB + MC +MD + ME + MF | |
MG / 1,048,576 bytes このデータベースの名前と必要な合計メモリーを表252に入力します。このワークシートで、サーバー上のすべてのデータベースのメモリー要件が決定されます(aからgまでの7つのプレースホルダがデータベース向けに用意されています)。 |
サーバー上のデータベースごとにこれを繰り返します。サーバー上のすべてのデータベースで必要なメモリーの見積りが完了した後、Essbaseサーバーの合計ディスク・スペース要件の見積りに進みます。
ディスク・スペースの計算に含まれる属性の関連付け領域は、メモリーのサイズ決定の要素ではありません。アウトラインの主要領域のみを計算します。
メモリー・サイズ要件を求めるには、次の要素を使用してアウトライン・サイズを計算します:
アウトライン内のメンバー数
メンバー名および別名の長さ(シングル・バイト換算での文字数)
アウトラインのメモリー要件を計算するには、メンバーの数を300バイト-400バイトの名前の長さで乗算し、その結果を表250のMAとラベル付けされたセルに記入します。
データベースに含まれている別名が少ない場合や、非常に短い別名と短いメンバー名が含まれている場合は、300バイト-400バイトの範囲内でより小さい数を使用します。名前や別名が非常に長いことがわかっている場合は、この範囲内でより大きい数を使用します。
名前の長さは概算平均であるため、次の式で求められる値は、アウトラインの主要領域のおおまかな見積りにすぎません:
memory size of outline = number of members * name-length factor
注: | メンバー名および別名の最大サイズは、制限、を参照してください。 |
次の例では、アウトラインのメンバー数が26,000、メンバー名の長さは、メジアンであると仮定しています。次の計算によって、メモリー内で使用するアウトライン・サイズを見積ります:
26,000 members * 350 bytes per member = 9,100,000 bytes
Essbaseでは、起動時にインデックス・キャッシュ用のメモリーが確保されます。インデックス・キャッシュのサイズはユーザーが指定できます。インデックス・キャッシュのサイズを決定するには、キャッシュのサイズ設定を参照し、サイズを表250のMBとラベル付けされたセルに記入します。
Essbaseでは、キャッシュを操作している間は追加のメモリーを使用します。
このキャッシュに関連するオーバーヘッドの計算には、次の要素を使用します:
起動時にキャッシュ関連のオーバーヘッドを計算するには:
インデックス・キャッシュ・サイズの半分をバイト単位で計算します。
index cache size * .5 = index cache-related overhead
次の式を使用して、追加キャッシュのオーバーヘッドをバイト単位で計算します:
((# of server threads allocated to the Essbase Server process * 3) * 256) + 5242880 bytes = additional cache overhead
インデックス・キャッシュのオーバーヘッドと追加キャッシュのオーバーヘッドを合計します。
cache-related overhead = index cache-related overhead + additional cache overhead
結果を、表250のMCとラベル付けされたセルに記入します。
論理ブロックという用語は、メモリー内の拡張ブロックを指します。
ラベルのみメンバーと共有メンバーを除き、Sample.Basicの密次元には、17個(年)、14個(メジャー)および4個(シナリオ)のメンバーが含まれています。Sample.Basicの論理ブロックのセル数の計算は、次のとおりです:
17 * 14 * 4 = 952 cells
Essbaseでは、アプリケーションの起動時に、次の要素に基づいてメモリーの領域が確保されます:
メモリー内のデータ構造領域を計算するには:
Number of threads * ((Number of members in the outline * 26 bytes) + (Logical block cell count * 36 bytes))
結果を、表250のMDとラベル付けされたセルに記入します。
この例では、Sample.Basicデータベース用に20のスレッドがあると仮定しています。データ構造に必要なメモリー内の起動領域は、次のように計算します:
20 threads * ((79 members * 26 bytes) + (952 cells * 36 bytes)) = 726,520 bytes 726,520 bytes / 1,048,576 bytes = .7 MB
起動時のメモリー要件に加え、クエリーや計算などの操作に追加のメモリーが必要です。多数の変数があるため、操作のメモリー要件を見積る唯一の方法は、サンプルの操作を実行し、その間に使用されるメモリーを監視することです。次の項でガイドラインを示します。
Essbaseでは、様々なソースからのデータベース情報に対する要求(クエリー)が処理されます。たとえば、EssbaseではOracle Essbase Spreadsheet Add-inやレポート・ライターからのクエリーを処理します。Essbaseではこれらのクエリーでデータが取得される際(特に、データ取得のためにEssbaseで動的計算を実行する必要がある場合)は、追加メモリーを使用します。この項では、クエリー処理に対するEssbaseのメモリー要件について説明します。
Essbaseはマルチスレッド・アプリケーションであり、クエリーにはスレッドが割り当てられます。スレッドは、Essbaseの起動時に自動的に作成されます。通常、スレッドは、Essbaseサーバーをシャット・ダウンするまで存在します。マルチスレッド処理を参照してください。
Essbaseでクエリーが処理されるたびに、使用可能なスレッドが循環します。たとえば、起動時に20個のスレッドが使用可能であると仮定します。各クエリーが処理されると、Essbaseにより、それに続く各クエリーが次の順番のスレッドに割り当てられます。20番目のスレッドが割り当てられた後、Essbaseは循環して初めに戻り、最初のスレッドに21番目のクエリーを割り当てます。
クエリーの処理中、スレッドには一定のメモリーが割り当てられ、クエリーが完了すると、このメモリーのほとんどが解放されます。オペレーティング・システムに対して解放されるメモリーと、データベースが使用する動的計算キャッシュに対して解放されるメモリーがあります。ただし、以降のクエリーの処理に使用できるように、スレッドではこのメモリーの一部が保持されます。結果として、スレッドでその最初のクエリーが処理された後、そのスレッドによって保持されるメモリーは、Essbaseの最初の起動時と比較して大きくなります。
Essbaseでは、次の両方の条件に当てはまる場合は、クエリー処理に最大のメモリーが使用されます:
起動時に少なくとも20個のスレッドが使用可能なこの例では、少なくとも20個のクエリーが処理されており、かつ最大数の同時クエリーが処理中である場合に、クエリーで使用されるメモリー量は最大になります。
クエリー処理の前後における最大メモリー使用率の見積りの式を計算する際は、次の変数を使用します:
使用可能なスレッドの潜在数は、購入したライセンス・ポートの数に基づきます。使用可能なスレッドの実際の数は、エージェントまたはサーバーで定義する設定に依存します。以降の計算では、システム上のスレッドの数をTotal#Threadsの値として使用します。
同時クエリーの最大数を決定し、この値を以降の計算のMax#ConcQueriesに使用します。この値はTotal#Threadsを上回ることはありません。
個々のクエリーのメモリー使用率は、各クエリーのサイズと、Essbaseで各クエリーを処理するためにアクセスする必要のあるデータ・ブロックの数によって決まります。メモリー使用率を見積るには、Essbaseで各クエリーの処理中と処理後に使用される追加メモリーを計算します。
最も多くのメモリーを使用すると予想されるクエリーをいくつか選びます。多数のメンバーを処理する必要があるクエリー(たとえば、範囲やランクの処理を実行するクエリー)を考えます。
クエリーのメモリー使用率を見積るには:
essbase.cfg設定のDYNCALCACHEMAXSIZEを0 (ゼロ)に設定して、動的計算キャッシュをオフにします。動的計算キャッシュをオフにすると、クエリー完了後に、動的計算中にブロックに使用されるメモリーがESSSVRプロセスによってオペレーティング・システムに確実に解放されることで、スレッドで保持されたままのメモリーの測定が可能になります。
オペレーティング・システムのメモリー監視ツールを使用して、クエリーの処理前にEssbaseサーバーで使用されるメモリーを調べます。ESSSVRプロセスに関連付けられた値を使用します。
オペレーティング・システムのメモリー監視ツールを使用して、クエリー処理中のEssbaseサーバーのピーク・メモリー使用率を調べます。この値はESSSVRプロセスに関連付けられます。
オペレーティング・システムのメモリー監視ツールを使用して、クエリー完了後のEssbaseのメモリー使用率を調べます。この値はESSSVRプロセスに関連付けられます。
次のステートメントに手順7で得た2つの値を挿入します。
データ取得のために必要な追加メモリーは、次の量を上回ることはありません:
Max#ConcQueries * MAXAdditionalMemDuringP + ( Total#Threads - Max#ConcQueries ) * MAXAdditionalMemAfterP
表250のMEとラベル付けされたセルに、この計算の結果をバイト単位で記入します。
この計算方法では、すべての同時クエリーが最大サイズのクエリーと仮定しているため、結果が実際の要件を上回る場合もあります。同時に実行される実際のクエリーのタイプを推定するのは困難です。
クエリー中に使用されるメモリーを調整するため、取得バッファおよび取得ソート・バッファの値を設定できます。取得バッファのサイズの設定および取得ソート・バッファのサイズの設定を参照してください。
このテストを実際のクエリーで実行できない場合は、クエリーの操作要件のおおまかな見積りを計算できます。要件は取得ごとにかなりの違いがあります。通常、この見積りでは、次の固定要素が使用されます:
動的に計算される値に使用されるメモリー。これは次の数に基づきます:
論理ブロック内のセル数。これには、動的計算メンバーが含まれます。表250の値MHを参照してください。
データ・キャッシュのサイズ。データ・キャッシュ・サイズの設定を参照してください。
直接I/Oが使用される場合は、データ・ファイル・キャッシュのサイズ。データ・ファイル・キャッシュ・サイズの設定を参照してください。
次の2つの計算式を使用すると、取得に必要なメモリーを計算できます:
retrieval buffer (10,240 bytes) + retrieval sort buffer (20,480 bytes) + formatting buffer (144,000 bytes) + each selected member in the retrieval (40 bytes) + each member of the largest dimension (8 bytes) + dynamic calc area + data cache size + data file cache size
Member storage area for the largest dimension + (number of retrievals * sum of buffer and work areas used in each retrieval)
計算を合計し、その結果をバイト単位で、表250のMEとラベル付けされたセルに記入します。
同時クエリーに必要な最大メモリー量を見積るために、この例の次の値を想定します:
184,000 bytes + (20 concurrent inquiries * (10,240 bytes + 20,480 bytes + 144,000 bytes + 761,600 bytes + 3,145,728 bytes + 400,000 bytes)) = 75,824,960 bytes
既存の計算スクリプトの場合は、サーバーのオペレーティング・システムで提供されるメモリー監視ツールを使用して、メモリー使用率を監視できます。最も複雑な計算を実行し、計算の実行前と実行中のメモリー使用率を確認します。この差異を計算し、その数字を計算スクリプトの追加メモリー要件として使用します。
計算パフォーマンスの包括的な説明は、計算の最適化。を参照してください。
計算スクリプトを使用したテストを実行できない場合は、次の値を合計することによって、計算操作の操作要件の、非常におおまかな見積りを計算できます:
計算機キャッシュのサイズ設定を参照してください。
データ・キャッシュ・サイズの設定を参照してください。
アウトラインのサイズ。計算には、データベース・アウトラインのメンバー当たり約30バイトの追加メモリーがEssbaseで使用されます。同時計算の詳細は、キャッシュの管理によるパフォーマンスの改善を参照してください。
ブロックによって使用されるメモリーのサイズは、SET LOCKBLOCKコマンドによって確保されます。
メモリー要件をバイト単位で計算するには、指定した数のデータ・ブロックにデータ・ブロックの論理サイズを掛けます。
論理ブロック・サイズを求めるには、セルの数(表249の値MI)に、セル当たり8バイトを掛けます。
合計計算要件の場合は、同時に実行するすべての計算に必要なメモリーを合計し、その合計を表250のMFとラベル付けされたセルに記入します。
サーバー上で必要な合計メモリーを見積るために、表252をワークシートとして使用できます。
表 252. ワークシート: 合計サーバー・メモリー要件
アプリケーションの起動用メモリー要件の見積りを参照してください。 | |
行aからgに、同時データベース(表250のコピーから)をリストし、右の列に各メモリー要件(MH)を記入します。 | |
サーバーのEssbase合計メモリー要件を見積るには:
アプリケーションの起動用メモリー要件の見積りで説明しているように、MLとラベル付けされたセルに、アプリケーションの起動用合計メモリー要件を記録します。
サーバー上で同時に実行されるデータベースの最大のセットをリストします。各データベースのMH値に対して、「必要なメモリー」列に、表250のデータベース要件ワークシートで見積ったメモリー要件を記入します。
オペレーティング・システムのメモリー要件を決定し、表252のMNとラベル付けされたセルに、MB単位で値を記入します。
さらに、Essbaseサーバーのコンピュータにインストールされている可能性のある、Administration Servicesなどのクライアント・ソフトウェアのメモリー要件も考慮してください。Oracle Enterprise Performance Management System Installation and Configuration Guideを参照してください。 |
キャッシュ・メモリーのロックが使用可能な場合は、合計メモリー要件が使用可能なRAMの3分の2を上回らないようにしてください。3分の2を上回ると、システム・パフォーマンスが著しく低下する可能性があります。キャッシュ・メモリーのロックが使用不可の場合は、合計メモリー要件が使用可能なRAMを上回らないようにしてください。
使用可能なメモリーが不十分な場合は、キャッシュ設定を再定義し、メモリー要件を再計算できます。このプロセスは繰り返し実行できます。キャッシュ設定の微調整を参照してください。場合によっては、追加のRAMの購入が必要になることもあります。