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

26.07.2025
Как очистить кэш оперативной памяти, буферы и раздел подкачки в Linux без перезагрузки

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

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

 

Что такое кэш оперативной памяти, буфер и пространство подкачки

Давайте рассмотрим кэш оперативной памяти, буфер и пространство подкачки в системе Linux.

Оперативная память кэш-память

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

Буфер

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

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

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

 

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

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

Прежде чем начать, вы можете проверить текущее использование памяти с помощью:

free -h

 

или

vmstat -s

 

Это поможет вам убедиться, что очистка памяти действительно даёт видимый эффект.

 

Как очистить кэш оперативной памяти в Linux?

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

Читать  Планирование заданий в Linux с помощью команды at

 

Очистка кэша страниц

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

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

 

Примечание: в некоторых системах команда echo может не работать из-за ограничений доступа. В этом случае используйте:

echo 1 | sudo tee /proc/sys/vm/drop_caches

 

Удаление дендритов и инодов

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

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

 

Очистка PageCache, записей и индексных дескрипторов

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

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

 

Опять же, если описанный выше способ не работает из-за отсутствия разрешений, используйте:

echo 3 | sudo tee /proc/sys/vm/drop_caches

 

После очистки вы можете повторно проверить использование памяти с помощью:

free -h

 

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

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

 

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

  • 1 — Очищает только кэш страницы.
  • 2 — Очищает зубные протезы и иноды.
  • 3 — Очищает кэш страниц, данные и индексные дескрипторы.
Читать  Время выполнения сценария оболочки в Linux

 

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

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

Не рекомендуется использовать третий вариант “...echo 3 >” в рабочей среде, пока вы не поймёте, что делаете, так как он очищает pagecachedentries, и 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

 

Читать  Как освободить место в разделе /boot в Ubuntu Linux

Примечаниеsudo может не работать в crontab, если не используется crontab пользователя root или для этих команд не настроено sudo без пароля. Рассмотрите возможность размещения команд в скрипте и планирования его выполнения.

 

Стоит ли очищать кэш оперативной памяти на рабочем сервере Linux?

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

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

 

Заключение

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

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

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Редактор: AndreyEx

Рейтинг: 4 (1 голос)
Если статья понравилась, то поделитесь ей в социальных сетях:

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Это может быть вам интересно


Загрузка...

Спасибо!

Теперь редакторы в курсе.

Прокрутить страницу до начала