Version 2015.1.x ~
  System routine buffer (# KB) shortage is detected.... のメッセージの意味と対処方法について

コンソールログファイル (※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 バッファを割り当てが合計値が設定されます。


該当する製品: Caché, Ensemble, HealthShare/Caché Based, IRIS Data Platform, HealthShare/IRIS Based, IRIS for Health
関連トピック: InterSystems製品のプロセスが使用するメモリ量を教えてください。
関連トピック:データベースキャッシュおよびルーチンキャッシュの最適値を設定したいです
添付ファイル:

アンケートにご協力をお願いします
このトピックは参考になりましたか?
このトピックに関するお問い合わせ

FAQトップに戻る