Очистку буфера, кеша и файла подкачки в Linux можно легко выполнить с помощью нескольких простых команд.
Если вы когда-либо использовали команду free -m, то вы, скорее всего, знакомы с выводом, который предоставляет информацию об общем объеме памяти системы, используемой памяти, свободной памяти, общей памяти и буферной/кэш-памяти.
В статье рассмотрим, как очистить буфер/кеш и файл подкачки в Linux, почему это важно и как лучше их освободить.
Что такое буферная и кэш-память?
Термины «буфер» и «кэш-память» часто используются как синонимы, поскольку они оба выполняют одну и ту же функцию временного хранения часто используемых данных для быстрого доступа.
Если говорить конкретно о буферной памяти, то это часть оперативной памяти, которая используется для временного хранения метаданных о файлах, которые считываются с диска или записываются на диск, что позволяет быстро получить доступ к данным без необходимости проходить через более медленный процесс, дисковых операций ввода-вывода.
Кэш-память — это форма памяти быстрого доступа, в которой хранятся недавно использованные инструкции и данные (с фактическим содержимым файлов или блочных устройств), так что к ней можно быстро получить доступ, когда запрашиваются те же данные.
Когда следует вручную очищать буферы и кэш-память.
Как вы знаете, буферы и кэши памяти используются для хранения данных и инструкций, чтобы к ним можно было быстро получить доступ. Однако их размер ограничен, поэтому Linux спроектирован таким образом, что он пытается сохранить как можно больше последних использованных инструкций и данных в буферах и кэшах памяти, удаляя старые данные и инструкции, которые не использовались в течении некоторого времени.
Но иногда вам нужно вручную очистить буферы и кэши, чтобы освободить место для других процессов, интенсивно использующих память.
Для этого вы можете использовать набор команд, которые заставят систему очистить буферы и кэши памяти и сбросить их в состояния по умолчанию, не затрагивая другие процессы, работающие в данный момент.
Сначала рассмотрим, как очистить кеш диска, затем как очистить кеш dentries и inodes и, наконец, как очистить кэш страниц, dentries и inodes в Linux.
Очистить кэш страниц или кэш диска в Linux.
Сначала проверим текущее состояние памяти, выполнив приведенную ниже команду, которая поможет вам получить представление о том, сколько свободной памяти доступно, а также сколько буферной и кэш-памяти в настоящее время используется системой.
$ free -h
Вывод приведенной выше команды:
В этом выводе видим, что 1,1 гигабайт занят buff/cache, давайте попробуем его очистить.
Чтобы очистить кэш страниц или кэш диска в Linux, вы можете использовать приведенную ниже команду, которая очистит весь кэш страниц системы (используемый ядром Linux во время чтения и записи на диск), не затрагивая буферный кэш.
$ sudo sync; echo 1 | sudo tee /proc/sys/vm/drop_caches
- sudo sync: команда используется для синхронизации данных в памяти с данными на диске, гарантируя, что любые изменения на диске будут зафиксированы перед их удалением.
- echo 1: параметр, за которым следует команда синхронизации, можно использовать для очистки кэша страниц.
- sudo tee: команда запишет данные, предоставленные предыдущей командой, в /proc/sys/vm/drop_caches.
Проверим результат предыдущей команды:
В результате видим, что buff/cache теперь занимает 540 МБ, то есть почти в половину меньше от изначального.
Команда для очистки кэша Dentries и Inodes.
Мы уже очистили кэш страниц с помощью echo 1. Теперь, используем echo 2 для очистки dentries (которые представляют собой записи данных в файловой системе компьютера, которые относятся как к каталогам, так и к файлам) и inodes.
Для этого выполните следующую команду:
$ sudo sync; echo 2 | sudo tee /proc/sys/vm/drop_caches
Теперь видим, что buff/cache еще чуть-чуть освободился:
Команда для очистки кэша страниц, Dentries и Inodes.
Следующая команда удалит все, например кеш страниц, dentries и inodes, которые не рекомендуется запускать на рабочих серверах, если вы не осведомлены о последствиях, но вы можете запустить ее, чтобы освободить память на вашем личном ПК с Linux.
Итак, чтобы очистить кэш страниц, dentries и inodes на сервере Linux, выполните следующую команду:
$ sudo sync; echo 3 | sudo tee /proc/sys/vm/drop_caches
В результате, можем увидеть, как у нас освободилось немного памяти.
Команда очистки файла подкачки.
Может возникнуть ситуация, когда вам потребуется очистить файл подкачки, чтобы освободить больше памяти в системе. В этом случае вы можете использовать приведенную ниже команду, которая освободит память подкачки и позволит вам эффективно использовать системные ресурсы.
Для этого вам необходимо переключить свою учетную запись на права root и выполнить команду.
# swapoff -a && swapon -a
Эта команда — способ очистить файл подкачки и освободить оперативную память в системе. Проверим ее работу.
Как можем увидеть, файл подкачки очистился полностью, вместе с ним и освободилось небольшое количество оперативной памяти.
Заключение.
Вот и все, где рассмотрели, как очистить буферный кэш и файл подкачки. Можно настроить приведенную выше команду как alias или короткий сценарий для автоматического запуска при необходимости с помощью команды Curl.
Если у вас есть какие-либо вопросы или комментарии, пожалуйста, оставляйте их в разделе комментариев ниже.
Was this helpful?
0 / 0