データベースキャッシュおよびルーチンキャッシュをモニターし、最適値を調べる方法をご紹介します。
(1) データベースキャッシュ
現状の設定値で問題ないかは、^GLOSTAT ユーティリティ のCache Efficency値(キャッシュ効率)でモニターします。
Cache Efficency 値は大きければ大きいほど良いですが、目安として100 以上であれば、設定サイズは問題ありません。
実行例)
%SYS>do ^GLOSTAT
Should detailed statistics be displayed for each block type? No =>
Statistics Local Remote Total
------------------------- ----------- ------------- -------------
Global references (all): 207,538 0 207,538
(略)
Cache Efficiency: 134 no gets <--- この値
(略)
Continue (c), zero statistics (z), timed stats (# sec > 0), quit?
こちらの値は、管理ポータルのシステムダッシュボードでも参照可能です。
[システムオペレーション] > [システムダッシュボード]
また、グローバル変数毎のデータベースバッファの使用量を確認できる ^GLOBUFFユーティリティがあります。
実行例)
%SYS>do ^GLOBUFF
Find which globals are using the most buffers.
Display the top <25>:
Total buffers: 19584 Buffers in use:4412
Item Global Database Percentage (Count)
1 rOBJ CACHELIB 24.320 (1073)
2 rOBJ CACHESYS 16.772 (740)
3 perf.TestD PERF 13.101 (578)
(略)
^GLOSTAT と ^GBLBUFF の結果をファイルに出力するものを用意しています。(zglobufreport.zip)
添付ファイルをネームスペース %SYSにインポートします。
ルーチンの以下の箇所を環境に合わせて変更してください。
実行例)
%SYS>Do ^ZGLOBUFREPORT
添付ファイルが出力ファイルの例になります。
(2) ルーチンキャッシュ
現状の設定値で問題ないかは、^GLOSTAT ユーティリティの Routine buffer loads and saves 値(ルーチンのデータベースへのI/O数)でモニターします。
60秒間の集計で20以下であれば、設定サイズは、問題ありません。
実行例)
%SYS>d ^GLOSTAT
Should detailed statistics be displayed for each block type? No =>
Statistics Local Remote Total
-------------------------- ------------- ------------- -------------
Global references (all): 479,434 0 479,434
(略)
Continue (c), zero statistics (z), timed stats (# sec > 0), quit? 60
ルーチンキャッシュの使用状況をファイルに出力するものを用意しています。(zroubufreport.zip)
添付ファイルをネームスペース %SYSにインポートします。
ルーチンの以下の箇所を環境に合わせて変更してください。
実行例)
%SYS>Do ^ZROUBUFREPORT