Wir haben Linux-System ohne Swap eingebettet.
Derzeit müssen wir einen Alarm auslösen, wenn die Speichernutzung% über einen Threashold steigt. Und starten Sie neu, wenn die Speichernutzung% über einen (höheren) Schwellenwert steigt.
Warum wir das tun möchten: Wenn ein Programm ausläuft, können wir einen Sicherheitsneustart durchführen, bevor der Kernel unsere Prozesse beendet (was zu Datenbeschädigung oder Nichtverfügbarkeit führen kann).
Aber wir haben ein Problem:
Wie zählt man die Speichernutzung in%, die für unseren Zweck verwendet werden kann?
Wir haben versucht, die Speichernutzung mithilfe der Werte von / proc / meminfo zu zählen:
/ # cat /proc/meminfo
MemTotal: 126744 kB
MemFree: 58256 kB
Buffers: 16740 kB
Cached: 31308 kB
SwapCached: 0 kB
Active: 37580 kB
Inactive: 24000 kB
Ohne Erfolg:
(MemTotal - MemFree) ist nicht verwendbar, da es beispielsweise Caches enthält.
(MemTotal - MemFree - Buffers - Cached)ignorierte den Effekt von Inactive. Es gibt also auch zu große Werte für die Speichernutzung.
(MemTotal - MemFree - Buffers - Cached - Inactive) ist unbrauchbar, da das Ergebnis negativ sein kann.