У нас встроенная система 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)
непригоден, потому что результат может быть отрицательным.
Назовите это как alert.sh и выполните команду:
chmod +x alert.sh
Сконфигурируйте cron для запуска этого скрипта каждые 10 минут
Обязательно замените «512» на общий объем памяти сервера в МБ, а «admin@domain.com» - на реальный адрес электронной почты. Это отправит уведомление по электронной почте, когда использование памяти превысит 95%, и перезапустит службу «service_name», если оно достигнет 90%.
источник
Вы можете использовать сценарий оболочки в cron с командой free, чтобы отслеживать память и действовать в соответствии с ее значениями. Например, для мониторинга оперативной памяти:
Вместо того, чтобы выводить вывод, вы можете оценить значения в желаемых пределах и отправить по почте, перезагрузиться или выполнить любое другое действие:
Затем вы добавляете его в crontab для запуска в нужные вам интервалы.
источник
Еще одна полезная утилита из пакета sysstat - это sar.
Для информации о памяти используйте:
Я определенно мог бы использовать больше оперативной памяти на этой коробке.
источник