CRON ジョブは、メモリー不足時にコマンドを実行します。

CRON ジョブは、メモリー不足時にコマンドを実行します。

hdbsqlメモリが不足しているときにSAPコマンドラインツール(HANAテーブルキャッシュのクリーンアップを支援するため)を実行する必要がある状況が発生しました。

この問題をどのように最適に解決できますか?スケジュールを使用してシェルスクリプトのコマンドから空きメモリ値を抽出するアイデアがありますがtop(または%を取得するためにfree / max * 100を取得する方が良いです)、crontabどこでも可能な方法を見つけることができません。何も始められません。

ベストアンサー1

awkパーセントを計算するために使用できます。testたとえば、値が90%を超えることを確認するユーティリティです。 cronjobは次のとおりです。

/usr/bin/test 90 -le $(/usr/bin/awk '$1=="MemTotal:"{t=$2} $1=="MemFree:"{f=$2} END{printf "%d", (t-f)/(t/100)}' /proc/meminfo) && command-to-cleanup

このawkセクションでは、必要な値を抽出し、使用された/proc/meminfoメモリの割合を計算します。このユーティリティは、90が計算された値test以下であることを確認します。-le次の部分は&&メモリをクリーンアップするツールです(.. && command-to-cleanup)。このcronjobは1分ごとに実行できます。たとえば、次のようになります。

* * * * * root /usr/bin/test 90 -le $(/usr/bin/awk '$1=="MemTotal:"{t=$2} $1=="MemFree:"{f=$2} END{printf "%d", (t-f)/(t/100)}' /proc/meminfo) && command-to-cleanup

おすすめ記事