記事
Hiroshi Sato · 2021年10月13日 3m read

System routine buffer (# KB) shortage is detected.... のメッセージの意味と対処方法

これはInterSystems FAQ サイトの記事です。

コンソールログファイル (※1) に、以下のメッセージが表示されることがあります。

05/14/19-09:32:14:056 (6888) 0 System routine buffer (64 KB) shortage is detected, 430 routine buffers configured, adjusted per process cached rtn to 71

(※1)
コンソールログファイルは、[管理ポータル] > [システムオペレーション] > [システムログ] > [コンソール・ログ] から参照できます。
または、以下ファイルを直接参照することもできます。


 

<インストールディレクトリ>\mgr\cconsole.log 

 

上記メッセージでは、ルーチンバッファサイズのうちの 64KB バッファの不足が検出されています。


弊社製品インストール時点のルーチンキャッシュ用メモリのデフォルト値は 35MB に設定されていて、各バッファ(4KB/16KB/64KB)にそれぞれに 430 バッファを割り当てた合計値で設定されています(※補足)。

「adjusted per process cached rtn to 71」については、1プロセスあたりに参照できるルーチン個数が 71個に調整されています。

初期値の30%以下になると上記のメッセージがコンソールログに記録されるようになっています。

上記メッセージが出ているまま使用し続けた場合、ディスクアクセスが増えパフォーマンスが落ちる可能性もあります。

対策としては、ルーチンキャッシュ用メモリを増加させることで、ログが表示されなくなります。

【注意】 ルーチンキャッシュ用メモリの変更には、InterSystems製品の再起動が必要です。

IRISの Interoperabilityメニュー、または Ensembleメニュー では、コンポーネント作成時に上記メッセージが出力されるケースがあります。

インストール後、初期値の 35MB を 64MB 程度に増やして様子を見てください。

なお、ルーチンキャッシュ用メモリが実行環境で過不足ないかどうか、については実稼働環境で確認するツールがあります。

[管理ポータル] > [システムオペレーション] > [システム使用]


 または

 ^GLOSTATルーチン/^mgstatルーチン 上記ツールをアプリケーション稼働中 60 秒間計測します。

(1度の計測だけではなく、時間間隔をあけ数回計測します。)

「ルーチンバッファ読み込みと保存」 または 「Routine buffer loads and saves 」の値が 20以下であれば、設定値したメモリで十分と言えます。

(最適値は 0 で、実行用ルーチンが全てキャッシュ上にある状態を示します。)

キャッシュの設定については、下記の技術資料もご確認ください。


Caché管理概要

(※補足)
バージョン2010.1~2014.1では、初期サイズは24MBで、各バッファ(4KB/16KB/64KB)に 300 バッファを割り当てが合計値が設定されます。

00
1 0 0 7
Log in or sign up to continue