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