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

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

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

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

05/01/14-15:59:34:191 (6528) 0 System routine buffer (4 KB) shortage is detected, 300 routine buffers configured, adjusted per process cached rtn to 75
05/01/14-16:05:37:834 (7080) 1 System routine buffer (4 KB) shortage is detected, 300 routine buffers configured, adjusted per process cached rtn to 54


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

Caché/Ensemble インストール時点のルーチンキャッシュ用メモリのデフォルト値は 24MB に設定されています。(4KB/16KB/64KB のそれぞれに300バッファを割り当てた合計値が設定されます。)

各バッファに通常は 300バッファ割り当てられる設定となっているところ、足りないために調整する旨が記録されています。
(2015.1以降では、各バッファへ割り当てるバッファ数が430バッファに変わり、初期値が36MBに変更されています。)

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

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

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

対策としては、ルーチンキャッシュ用メモリを増加させることで、ログが表示されなくなります。
【注意】 ルーチンキャッシュ用メモリの変更には、Caché/Ensembleの再起動が必要です。

Ensembleの開発環境では、コンポーネント作成時に上記メッセージが出力されるケースがあります。

インストール後、初期値の 24MB(2015.1以降は36MB) を 64MB 程度に増やして様子を見てください。

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

 [管理ポータル] > [システムオペレーション] > [システム使用] 
 または
 ^GLOSTATルーチン/^mgstatルーチン

上記ツールをアプリケーション稼働中 60 秒間計測します。(1度の計測だけではなく、時間間隔をあけ数回計測します。)
「ルーチンバッファ読み込みと保存」 または 「Routine buffer loads and saves 」の値が 20以下であれば、設定値したメモリで十分と言えます。(最適値は 0 で、実行用ルーチンが全てキャッシュ上にある状態を示します。)

キャッシュの設定については、Caché管理概要についてもご参照ください。


関連トピック: Cachéのプロセスが使用するメモリ量を教えてください。
関連トピック:コンソールログに、システムルーチンバッファ不足の警告があります
関連トピック:データベースキャッシュおよびルーチンキャッシュの最適値を設定したいです
添付ファイル:

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

FAQトップに戻る