概要
Cognos TM1はインメモリーベースのOLAP製品のため、メモリーの使用量に常に気をつける必要があります。
こちらのTechnoteの和訳がほとんどですが、TM1のメモリー使用動作について、知っておくと役に立つ基本的な内容を記載します。
Understanding TM1 Memory Usage and Windows Paging
http://www-01.ibm.com/support/docview.wss?uid=swg21665507
内容
TM1はCubeのデータ等をメモリーに上げ、高速な処理を行いますが、物理メモリーが枯渇した場合、お構いなしに仮想メモリー(ページング領域)を使用し、とてつもなくパフォーマンスが低下します。
ページングを使用しない LockPagesInMemory=T という設定がありますが、TM1ノード上の他のアプリケーションに悪影響を及ぼす事も考えられるので、あまり推奨されません。
※LockPagesInMemoryに関しては、こちらのTechnoteもご参照下さい。
LockPagesInMemory - TM1 server configuration parameter
http://www-01.ibm.com/support/docview.wss?uid=swg27024038
そういう訳で、TM1のメモリー使用量を常にモニターし、物理メモリーの範囲で、できれば80%くらいに抑えておくことが重要です。
TM1が使用したメモリー領域は、TM1サーバーのサービスをシャットダウンするまで、OSに対して開放されません。
TM1の中には、GC(Garbage Collection)の機能もありますが、TM1のGCにより開放されたメモリーは、TM1のためにのみ再利用されます。
一度仮想メモリーを使用すると、GCで開放されても仮想メモリー領域も再利用してしまいます。これはTM1サーバーのシャットダウンまで開放されません。
TM1サーバーの使用メモリー総量は、Windowsのタスクマネージャーからtm1sd.exeプロセスを確認すればわかります。
Cube単位で確認したい場合は、簡易的には、TM1 Architectから「キューブ」をクリックすると、表示メニューで「プロパティ・ウィンドウ」がチェックされていれば、下のようにCube毎のメモリー使用量が確認できます。
もっと詳細に確認したい場合、TM1パフォーマンス・モニターの使用が有効です。
TM1 ArchitectでTM1サーバーを右クリックし「パフォーマンス・モニターの起動」でモニターを開始します。
モニター結果は、}StatsByCubeのような、コントロールキューブを確認する事により可能です。
Cube毎のTotal Memory Used以外にも、Viewのメモリー使用、Feedersのメモリー使用など、細かく確認する事が可能です。
基本的な内容ですが、とても重要なので覚えておいて頂ければと思います。