私は常にファイルをRAM(/ tmp /の下)に保存して処理し、削除するシステムを持っています。
RAMに保存する必要があるファイルもあり、そうでないファイルもあります。
私の問題は、ファイルを保存するために使用できるRAMの量を報告したいということです。
「無料」を使用すると、次のレポートを受け取ることができます。
free: 10000 (KB)
しかし、走るとcat /proc/meminfo
他の/より意味のある話を聞くことになります。
memfree: 10000 (KB)
Cached: 100000 (KB)
SwapCached: 0 (KB)
Active: 59000 (KB)
Inactive: 41000 (KB)
いいですね。明確にするために、これらの値をおおよそ計算/丸めました。
この記事では:Linuxの非アクティブメモリ、「非アクティブ」メモリが利用可能であることがわかるので – 私が知っている限り – それは無料です。
したがって、10000KB + 41000KBの空きメモリ(「無料」ではありませんが使用可能)メモリを報告できる必要があります。
合計「使用可能な」メモリを報告するために使用できるコマンド(または他の方法)はありますか?
私が理解したのは、利用可能な総スペースは「無料」+「非アクティブ」だと思います。
ありがとう
答え1
3.14 以降、Linux カーネルは使用可能な物理メモリ量を追跡します。つまり回収可能なメモリを含む割り当てのためにスワップを実行する必要はありません。これにはMemAvailable
、/proc/meminfo
すでに非アクティブに追跡されている回復可能なメモリが含まれているため、追加する必要もありません。
以前のコアでは、回答で提供された式を使用できますディストリビューションで移植可能な使用可能なメモリ量を取得するには?:
awk -v low=$(grep low /proc/zoneinfo | awk '{k+=$2}END{print k}') \
'{a[$1]=$2}
END{
print a["MemFree:"]+a["Active(file):"]+a["Inactive(file):"]+a["SReclaimable:"]-(12*low);
}' /proc/meminfo