Как очистить кэш RAM, буфер и swap в Linux

Как и в любой другой операционной системе, в Linux управление памятью реализовано эффективно и даже более чем. Однако если какой-либо процесс пожирает вашу память и вы хотите очистить его, Linux предоставляет возможность очистить кэш оперативной памяти.

В этой статье мы рассмотрим, как очистить кэш памяти RAM буфер и пространство подкачки в системе Linux для повышения общей производительности.

Понимание кэша памяти, буфера и swap

Кэш памяти

RAM memory cache – это механизм, используемый ядром для хранения регулярно используемых данных. Хотя это повышает отзывчивость системы, перегруженный кэш может привести к сохранению устаревших данных, что сказывается на производительности.

Буфер

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

Пространство подкачки

Пространство подкачки – это выделенная область на жестком диске, которая выполняет роль виртуальной памяти, когда физическая оперативная память исчерпана. Хотя оно предотвращает сбои системы из-за нехватки памяти, при чрезмерном использовании может замедлить работу системы.

Очистка кэша, буфера и пространства подкачки в Linux

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

Как очистить кэш памяти RAM в Linux?

В каждой системе Linux есть три варианта очистки кэша без прерывания каких-либо процессов или служб.

Очистка PageCache

Чтобы очистить только PageCache, вы можете использовать следующую команду, которая специально очистит PageCache, помогая освободить ресурсы памяти.

sudo sync; echo 1 >/proc/sys/vm/drop_caches

Очистка дентри и инодов

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

sudo sync; echo 2 >/proc/sys/vm/drop_caches

Очистка PageCache, Dentries и Inodes

Чтобы очистить pagecache, dentries и inodes, вы можете использовать следующую команду, которая синхронизирует файловую систему и очистит pagecache, dentries и inodes, помогая освободить память и повысить производительность системы.

sudo sync; echo 3 >/proc/sys/vm/drop_caches 

Вот объяснение каждой части приведенной выше команды:

  • sudo используется для выполнения команды от имени суперпользователя.
  • sync очищает буфер файловой системы.
  • “;” используется для разделения нескольких команд в одной строке.
  • code>echo 3 > /proc/sys/vm/drop_caches используется для сброса кэша страниц, временной области хранения недавно просмотренных файлов.

Примечание: Файл drop_caches определяет, какой тип кэшированных данных должен быть очищен, значения следующие:

  • 1 – Очищает только страничный кэш.
  • 2 – Очищает дентри и иноды.
  • 3 – Очищает страничный кэш, дентри и иноды.

Как упоминается в документации по ядру, запись в drop_caches очистит кэш, не убивая ни одно приложение/сервис, команда echo выполняет работу по записи в файл.

Если вам нужно очистить дисковый кэш, первая команда наиболее безопасна в корпоративных и производственных системах, поскольку ...echo 1 > …. очистит только PageCache.

Не рекомендуется использовать третий вариант выше ...echo 3 > в производстве, пока вы не знаете, что делаете, поскольку он очистит pagecache, dentries, и inodes.

Как очистить пространство подкачки в Linux?

Чтобы очистить пространство подкачки, вы можете использовать команду swapoff с опцией -a, которая отключит все разделы подкачки.

sudo swapoff -a

Потом верните его обратно, выполнив следующую команду, которая активирует все разделы подкачки.

sudo swapon -a

Рекомендуется ли освобождать буфер, кэш и своп в Linux?

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

Однако могут быть редкие ситуации, когда вам необходимо очистить Буфер и Кэш, например, если вы испытываете сильную нехватку памяти и не можете освободить память другими способами. В таких случаях следует действовать осторожно и помнить о потенциальном влиянии на производительность.

Аналогичным образом, очистка пространства подкачки в Linux обычно не является рутинной или целесообразной практикой при нормальных обстоятельствах.

Автоматизация оптимизации памяти

Чтобы автоматизировать процесс и регулярно очищать память, вы можете настроить задание cron для выполнения команд через определенные промежутки времени.

Откройте конфигурацию crontab.

crontab -e

Добавьте следующие строки, чтобы очищать кэш, буфер и пространство подкачки ежедневно в полночь:

0 0 * * * sudo sync; echo 3 > /proc/sys/vm/drop_caches
0 0 * * * sudo echo 1 > /proc/sys/vm/drop_caches
0 0 * * * sudo sync; echo 2 > /proc/sys/vm/drop_caches
0 0 * * * sudo swapoff -a; sudo swapon -a

Рекомендуется ли очищать RAM Cache на сервере Linux в продакшене?

Нет, не рекомендуется. Рассмотрим сценарий, в котором вы запланировали сценарий для очистки кэша оперативной памяти каждый день в 2 часа ночи. Каждый день в 2 часа ночи сценарий выполняется, очищая кэш оперативной памяти. Однако в один прекрасный день на ваш сайт заходит неожиданно много пользователей, что создает значительную нагрузку на ресурсы сервера.

Одновременно запускается запланированный сценарий и очищает все содержимое кэша. Теперь все пользователи будут получать данные с диска, что может привести к падению сервера и повреждению базы данных Поэтому очищать кэш оперативной памяти следует только в случае необходимости, внимательно следя за своими действиями. В противном случае вы рискуете превратиться в системного администратора культа Карго.

Заключение

Эффективное управление памятью имеет решающее значение для бесперебойной работы системы Linux. Регулярная очистка кэш-памяти, буфера и пространства подкачки может значительно повысить производительность системы. Понимая эти механизмы и используя предложенные команды, вы сможете поддерживать свою Linux-систему на должном уровне.

Зарубин Иван Эксперт по Linux и Windows

Парашютист со стажем. Много читаю и слушаю подкасты. Люблю посиделки у костра, песни под гитару и приближающиеся дедлайны. Люблю путешествовать.

Вдохновлен www.tecmint.com

Похожие статьи

Комментарии (0)