実現したいこと
RHEL環境で常駐稼働しているシェルの処理で、どこでメモリが消費されているかを確認したいです。
"while true"でkillされるまでループし続ける常駐シェルなのですが、ループ内では主に以下の処理を実施しています。
① 定義ファイルの読み込み
※ ループ内で読み込んでいること自体良くないですが、本質問においては前提とさせて下さい。
② SQLの発行(単純なSELECT文)
③ 変数の設定
④ ログ出力
このシェルを夜間9時間程稼働させてvmstatで監視したところ、断続的にfreeが減少し、比例してcacheが上昇していました。
他アプリ等は停止させているので常駐シェルが原因とみています。
常駐シェル内の何の処理が原因かを検証する方法をご教示いただけませんでしょうか。
最終的な目標は常駐シェルが稼働していてもメモリのfreeの水位が横ばいになること(メモリリースしていないこと)です。
前提
CUI環境で、GUIは非対応です。
試したこと
常駐シェル内の処理を部分オミットし、①だけのケース、②④だけのケースでも検証してみましたが、メモリ消費の傾向は変わりませんでした。
処理を削っての検証も効率が悪く終わりが見えないため、本質問をさせていただいております。
0 コメント