スワップなしの組み込みLinuxシステムがあります。
現在、メモリ使用量がしきい値を超えて%増加すると、アラームを発生させる必要があります。また、メモリ使用率が(より高い)しきい値を超えたときに再起動します。
なぜそれを行いたいのか:プログラムがリークした場合、カーネルがプロセスを強制終了する前に安全な再起動を行うことができます(データの破損や利用不能につながる可能性があります)。
しかし、問題があります。
私たちの目的に使用できるメモリ使用率-%を数える方法は?
/ proc / meminfoの値を使用してメモリ使用量をカウントしようとしました:
/ # cat /proc/meminfo
MemTotal: 126744 kB
MemFree: 58256 kB
Buffers: 16740 kB
Cached: 31308 kB
SwapCached: 0 kB
Active: 37580 kB
Inactive: 24000 kB
成功なし:
(MemTotal - MemFree)
たとえばキャッシュが含まれているため、使用できません。
(MemTotal - MemFree - Buffers - Cached)
の影響は無視しましたInactive
。そのため、メモリ使用量が多すぎます。
(MemTotal - MemFree - Buffers - Cached - Inactive)
結果は負になる可能性があるため、使用できません。