2022年12月30日(金) [長年日記]
■ [dev] Linuxでのメモリの使用量と空き容量
手元のLinux環境でfreeコマンドを実行すると次のように表示される。
% free -b total used free shared buff/cache available Mem: 40298315776 914223104 39214383104 65536 169709568 38992666624 Swap: 10737418240 0 10737418240
ここに表示されるusedの値は、この環境のfreeのmanに
used Used memory (calculated as total - free - buffers - cache)
と説明されており、確かにこの計算式の値になっている。
しかし、buffersやcacheの中には直ちには解放できない領域が含まれているようで、実際には「total - available」の値をメモリ使用量と考える方がいいらしい。
- 参考: 【RHEL】linuxメモリのfreeとmeminfoの関係を図解し利用率の計算方法を説明してみる (のぴぴのメモ)
であるならfreeコマンドのused欄にも total - available の値を表示すればいいのに、と思ったら最新のmanでは
used Used or unavailable memory (calculated as total - available)
と説明されていた。今年の六月に変更が入っており、procpsのバージョン4.0.1から変わっているようだ。
- doc: Note new Used behavour (procps-ng/procps)
- library: modify calculation of 'MEMINFO_MEM_USED' item (procps-ng/procps)