我们有没有交换的嵌入式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)
无法使用,因为结果可能为负。