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

Если вы когда-либо использовали команду free -m, то вы, скорее всего, знакомы с выводом, который предоставляет информацию об общем объеме памяти системы, используемой памяти, свободной памяти, общей памяти и буферной/кэш-памяти.

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

Что такое буферная и кэш-память?

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

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

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

Когда следует вручную очищать буферы и кэш-память.

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

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

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

Сначала рассмотрим, как очистить кеш диска, затем как очистить кеш dentries и inodes и, наконец, как очистить кэш страниц, dentries и inodes в Linux.

Очистить кэш страниц или кэш диска в Linux.

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

Вывод приведенной выше команды:

В этом выводе видим, что 1,1 гигабайт занят buff/cache, давайте попробуем его очистить.

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

  • sudo sync: команда используется для синхронизации данных в памяти с данными на диске, гарантируя, что любые изменения на диске будут зафиксированы перед их удалением.
  • echo 1: параметр, за которым следует команда синхронизации, можно использовать для очистки кэша страниц.
  • sudo tee: команда запишет данные, предоставленные предыдущей командой, в /proc/sys/vm/drop_caches.

Проверим результат предыдущей команды:

В результате видим, что buff/cache теперь занимает 540 МБ, то есть почти в половину меньше от изначального.

Команда для очистки кэша Dentries и Inodes.

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

Для этого выполните следующую команду:

Теперь видим, что buff/cache еще чуть-чуть освободился:

Команда для очистки кэша страниц, Dentries и Inodes.

Следующая команда удалит все, например кеш страниц, dentries и inodes, которые не рекомендуется запускать на рабочих серверах, если вы не осведомлены о последствиях, но вы можете запустить ее, чтобы освободить память на вашем личном ПК с Linux.

Итак, чтобы очистить кэш страниц, dentries и inodes на сервере Linux, выполните следующую команду:

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

Команда очистки файла подкачки.

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

Для этого вам необходимо переключить свою учетную запись на права root и выполнить команду.

Эта команда — способ очистить файл подкачки и освободить оперативную память в системе. Проверим ее работу.

Как можем увидеть, файл подкачки очистился полностью, вместе с ним и освободилось небольшое количество оперативной памяти.

Заключение.

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

Если у вас есть какие-либо вопросы или комментарии, пожалуйста, оставляйте их в разделе комментариев ниже.

Добавить комментарий