Вы, вероятно, запускаете файловый менеджер наутилуса или другой файловый менеджер, который накладывает видимый рабочий стол. Я имею, столкнулся с этой проблемой при использовании Openbox. Отключите наутилус или файловый менеджер, вызывающий проблему, и это должно устранить проблему.
Можно использовать 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
IMHO Процент свободной памяти в системе Linux - это не хороший индикатор в этой ситуации из-за того, как работает Minux Memory Memory Management (память также используется для буферизации и кэширования, Там есть также умение, и т. Д.) - Есть много информации на тему. Что означает использование такого индикатора, вызвало бы уборку кеша раньше, чем на самом деле, необходимое, которое я представляю, поставляется с ценой в общей производительности.
Я обнаружил, что процент использованного подкачки обычно является гораздо лучшим указанием системы, находящейся в короткой памяти, при принятии всех этих данных: до тех пор, пока она все еще может выделить память, это типично не будет использовать своп.
В качестве бонуса это удваивается в качестве индикатора производительности, а также система, использующая более 4 г свопа, например, обычно едва ползает (подумайте, насколько это нужно, чтобы скопировать файл диска 4G из одного места в другое).
Информация об сумме можно найти в / proc / meminfo , поэтому подход, который предлагал Хаос, может быть соответственно адаптирован:
SwapTotal: 16777212 kB
SwapFree: 16777212 kB
Вам может потребоваться немного экспериментировать, чтобы узнать, какое значение использования обмена Лучше подходит для вашего конкретного случая.