Задание CRON для выполнения команды при нехватке памяти

Вы, вероятно, запускаете файловый менеджер наутилуса или другой файловый менеджер, который накладывает видимый рабочий стол. Я имею, столкнулся с этой проблемой при использовании Openbox. Отключите наутилус или файловый менеджер, вызывающий проблему, и это должно устранить проблему.

2
20.03.2019, 14:25
2 ответа

Можно использовать awk для вычисления процента и test utillity для определения, например, превышает ли значение 90%. Работа может выглядеть следующим образом:

/usr/bin/test 90 -le $(/usr/bin/awk '$1=="MemTotal:"{t=$2} $1=="MemFree:"{f=$2} END{printf "%d", (t-f)/(t/100)}' /proc/meminfo) && command-to-cleanup

часть awk извлекает нужные значения из /proc/meminfo, а затем вычисляет процент использованной памяти. Тест test utillity проверяет, меньше или равно ли 90 (-le) вычисленному значению. Часть после && будет вашим инструментом для очистки памяти (... && command-to-cleanup). Это задание может выполняться каждую минуту, например:

* * * * * root /usr/bin/test 90 -le $(/usr/bin/awk '$1=="MemTotal:"{t=$2} $1=="MemFree:"{f=$2} END{printf "%d", (t-f)/(t/100)}' /proc/meminfo) && command-to-cleanup
3
27.01.2020, 21:56

IMHO Процент свободной памяти в системе Linux - это не хороший индикатор в этой ситуации из-за того, как работает Minux Memory Memory Management (память также используется для буферизации и кэширования, Там есть также умение, и т. Д.) - Есть много информации на тему. Что означает использование такого индикатора, вызвало бы уборку кеша раньше, чем на самом деле, необходимое, которое я представляю, поставляется с ценой в общей производительности.

Я обнаружил, что процент использованного подкачки обычно является гораздо лучшим указанием системы, находящейся в короткой памяти, при принятии всех этих данных: до тех пор, пока она все еще может выделить память, это типично не будет использовать своп.

В качестве бонуса это удваивается в качестве индикатора производительности, а также система, использующая более 4 г свопа, например, обычно едва ползает (подумайте, насколько это нужно, чтобы скопировать файл диска 4G из одного места в другое).

Информация об сумме можно найти в / proc / meminfo , поэтому подход, который предлагал Хаос, может быть соответственно адаптирован:

SwapTotal:      16777212 kB
SwapFree:       16777212 kB

Вам может потребоваться немного экспериментировать, чтобы узнать, какое значение использования обмена Лучше подходит для вашего конкретного случая.

2
27.01.2020, 21:56

Теги

Похожие вопросы