Ми вбудували систему 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)
є непридатним, оскільки результат може бути негативним.