Как очистить кэш linux

Как освободить память Linux

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

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

Как освободить кэш память в Linux

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

Затем выполните одну из команд. Очистка кэша PageCache:

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

Очистка inode и dentrie:

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

Очистка inode и dentrie и PageCache:

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

А теперь давайте рассмотрим что происходит при выполнении этих команд.

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

Если не выполнить команду sync мы тоже освободим немного места, но после ее выполнения результат будет лучше.

Символ разделения ; дает знать оболочке, что перед тем как выполнить другую команду, нужно дождаться завершения работы первой. Последняя команда echo 1 > /proc/sys/vm/drop_caches записывает значение 1 в файл /proc/sys/vm/drop_caches. Это дает сигнал ядру, что нужно очистить выбранный нами вид кэша.

Виды кэша в Linux

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

Как очистить кэш linux. cache. Как очистить кэш linux фото. Как очистить кэш linux-cache. картинка Как очистить кэш linux. картинка cache.

Такой кэш чистить эффективнее и безопаснее всего.

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

Этот кэш занимает очень мало памяти. Данные представлены в байтах, и как видите, это очень мало. Посмотреть его можно командой:

cat /proc/slabinfo | egrep dentry\|inode

Как очистить кэш linux. cache2. Как очистить кэш linux фото. Как очистить кэш linux-cache2. картинка Как очистить кэш linux. картинка cache2.

Очищать его чтобы освободить память linux не рекомендуется, так как памяти потребляется немного, а на новое сканирование файловой системы идет относительно много времени.

Нужно ли очищать кэш вообще?

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

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

Автоматическая очистка кэша

Давайте рассмотрим как автоматически очистить кэш памяти ежедневно в два часа ночи с помощью планировщика заданий cron.

Сначала создадим bash скрипт со следующим содержимым:

sudo vi /usr/local/bin/clearcache.sh

!/bin/bash
sync ; echo 1 > /proc/sys/vm/drop_caches

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

Дальше сделайте скрипт исполняемым:

sudo chmod 755 /usr/local/bin/clearcache.sh

Осталось добавить задание в планировщик cron. Для этого выполните команду:

И в открывшемся редакторе добавьте строчку:

0 2 * * * /usr/local/bin/clearcache.sh

Теперь этот скрипт будет выполняться каждую ночь и выполнять очистку памяти, чтобы сервер мог работать нормально.

Настройка размера кэша памяти

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

За это отвечает файл /proc/sys/vm/vfs_cache_pressure. Он содержит относительный показатель, насколько агрессивно нужно удалять страницы из кэша. По умолчанию установлен параметр 100. Если его уменьшить ядро будет реже удалять страницы и это приведет к очень быстрому увеличению кэша. При нуле страницы вообще не будут удаляться. Если значение больше 100, размер кэша будет увеличиваться медленнее и неиспользуемые страницы будут сразу удаляться.

Например, сделаем минимальный размер кэша:

echo 1000 > /proc/sys/vm/vfs_cache_pressure

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

Как очистить память подкачки

Пространство подкачки очистить очень просто. Для этого выполните:

Имейте в виду, что при очистке swap, все данные будут перенесены обратно в оперативную память.

Как освободить память занимаемую процессами

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

Как очистить кэш linux. Snimok ekrana ot 2020 09 30 19 47 29. Как очистить кэш linux фото. Как очистить кэш linux-Snimok ekrana ot 2020 09 30 19 47 29. картинка Как очистить кэш linux. картинка Snimok ekrana ot 2020 09 30 19 47 29.

Как видите, больше всего здесь памяти занимает chromium. Теперь вам надо его завершить. Идентификатор процесса, по которому его можно завершить отображается в первой колонке. Поэтому:

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

Выводы

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

Источник

Linux: утилита free и очистка кеша памяти

Утилита free – один из основных инструментов администратора, позволяющая отобразить статистику используемой и свободной памяти сервера.

Информацию free получает из файла /proc/meminfo – динамически изменяющего в процессе работы системы.

О разделе proc и файловой системе procfs более подробно можно почитать в статье Linux: описание и назначение файловой системы proc и каталога /proc.

Рассмотрим информацию, которую выводит free :

Будучи запущенной без ключей – она отобразит статистику в килобайтах.

Для вывода информации в других единицах – используются ключи:

-b – в байтах;
-m – мегабайтах;
-g – гигабайтах.

Например – обновлять каждые 5 секунд:

Mem – физическая память;
Swap – виртуальная память, или Paging.

total – общее количество памяти;
used – реально использующая в данный момент и зарезервированная системой память;
free – свободная память ( total минус used );
shared – Shared memory или Разделяемая память, можно посмотреть командой ipcs ;
buffers – буферы в памяти – страницы памяти, зарезервированные системой для выделения их процессам, когда они затребуют этого, так же известна как heap-memory;
cached – файлы, которые недавно были использованы системой/процессами и хранящиеся в памяти на случай если вскоре они снова потребуются.

Тут used = 4745 megabytes. Общее количество buffers и cached памяти – 3331 мегабайт. Итого, реально занятая процессами и системой память – лишь

1413 (1 мегабайт “потерялся” из-за подсчёта в мегабайтах, а не байтах/килобайтах).

Аналогично подсчитывается и реально свободная память, только buffers и cached добавляются к ней (так как на самом деле – это не занятые страницы):

Что бы отобразить реально свободную память одной командой – можно воспользоваться такой командой:

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

Можно выполнить такую команду:

Увы, показать насколько реально можно освободить таким образом памяти не получится, т.к. машина совсем не нагружена. Тем не менее – разница видна:

Однако, смысл выполнять такую очистку есть лишь в случае реальных проблем с памятью.

Для FreeBSD есть аналогичная утилита freecolor :

UPD Нагуглил ссылку на этот пост, в треде>>> есть еще пример:

Источник

Как очистить кеш в Linux

Главное меню » Linux » Как очистить кеш в Linux

Как очистить кэш linux. lazy placeholder. Как очистить кэш linux фото. Как очистить кэш linux-lazy placeholder. картинка Как очистить кэш linux. картинка lazy placeholder.

Как работает кэш файловой системы Linux

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

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

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

Использование команды Free для просмотра использования кеша

Мы можем использовать команду free из командной строки, чтобы проанализировать системную память и объем памяти, выделенной для кеширования. См. Команду ниже:

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

Мы видим, что использование буферного кеша увеличилось с 667 до 1735 мегабайт, что примерно на 1 гигабайт увеличилось в использовании буферного кеша.

Команда Proc Sys VM Drop Caches

Ядро linux предоставляет интерфейс для удаления кеша, давайте попробуем эти команды и посмотрим, как это повлияет на настройку free.

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

Экспериментальная проверка работы Drop Cache

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

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

Бум! Чтобы прочитать его, потребовалось всего 0,2 секунды по сравнению с 8,4 секундами, когда файл не был кэширован. Чтобы проверить, давайте повторим это еще раз, сначала очистив кеш, а затем прочитав файл 2 раза.

Он работал отлично, как и ожидалось. 8,5 секунды для некэшированного чтения и 0,2 секунды для кэшированного чтения.

Заключение

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

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

Источник

Настройка ядра Linux для повышения производительности памяти

Как очистить кэш linux. image loader. Как очистить кэш linux фото. Как очистить кэш linux-image loader. картинка Как очистить кэш linux. картинка image loader.

Контекст

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

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

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

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

Объяснение

В Linux есть несколько видов кэшей:

dirty cache — блоки данных, которые еще не записаны на диск (в файловых системах, поддерживающих кэширование, например, ext4). Этот кэш можно очистить командой sync. Очистка этого кэша может привести к снижению производительности. При обычном режиме работы не стоит этого делать, если только вам не нужно сбросить данные на жесткий диск, например, при аварии.

clean cache — блоки данных, которые для ускорения доступа находятся и на жестком диске и в памяти. Очистка clean cache может привести к снижению производительности, поскольку все данные будут считываться с диска.

inode cache — кэш информации о местоположении inode. Его можно очистить аналогично clean cache, но также с последующим снижением производительности.

slab cache — хранит объекты, выделенные приложениям с помощью malloc, таким образом, что в будущем они могут быть повторно выделены с уже заполненными данными объекта, что ускоряет выделение памяти.

С dirty cache мало что можно сделать, но другие типы кэшей можно очистить. Их очистка может привести к двум результатам. В приложениях, потребляющих много памяти, таких как Aerospike, задержки уменьшатся. Но с другой стороны, замедлится скорость ввода-вывода, так как все данные придется считывать с диска.

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

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

Большую часть памяти занимает page cache, поэтому если очищаете кэш, то рекомендуется очищать его (echo 1).

Для исправления проблемы можно установить минимальное количество свободной памяти. Рассмотрим следующий пример:

Настройка выполняется следующим образом:

Чтобы на компьютере со 100 ГБ оставить 3% памяти незанятыми, выполните следующую команду:

При установке этого параметра следует проявлять осторожность: слишком маленькое или слишком большое значение может отрицательно сказаться на производительности системы. Слишком низкое значение min_free_kbytes не позволит системе освободить память. Что может привести к зависанию системы или уничтожению процессов через OOM.

Слишком большое значение (5-10% от общей памяти) приведет к тому, что в системе быстро закончится память. Linux для кэширования данных файловой системы использует всю доступную оперативную память. Установка высокого значения min_free_kbytes может привести к тому, что система будет тратить слишком много времени на восстановление памяти.

RedHat рекомендует поддерживать min_free_kbytes на уровне 1-3% от объема памяти в системе. При этом Aerospike рекомендует оставлять не менее 1,1 ГБ, даже если это выше официально рекомендуемого значения.

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

Примечания

Добавьте следующие строки:

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

Для проверки, что zone_reclaim отключен используйте следующую команду:

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

Источник

Как очистить файлы кеша программ в Linux

Если вы заметили, что в домашней папке вашего ПК с Linux не хватает места, возможно, вам необходимо очистить файлы кеша. Но как очистить файлы кеша в Linux?

Расположение файла кеша

Установить анализатор использования диска

Чтобы установить инструмент Disk Usage Analyzer в Linux, вам необходимо установить пакет Baobab. Откройте окно терминала, нажав Ctrl + Alt + T или Ctrl + Shift + T на клавиатуре. Затем следуйте инструкциям по установке из командной строки, приведенным ниже, чтобы запустить Disk Usage Analyzer.

Ubuntu

Чтобы установить Disk Usage Analyzer в Linux, используйте следующее Квартира команда в окне терминала.

Debian

В Debian Linux вы сможете установить и запустить Disk Usage Analyzer со следующими Apt-get команда в терминале.

Arch Linux

Те, кто использует Arch Linux (а также Manjaro), смогут довольно легко установить приложение Disk Usage Analyzer с помощью следующих Pacman команда ниже.

Fedora

Вы используете Fedora Linux? Возможно, у вас уже установлен Disk Usage Analyzer. Если нет, вы сможете заставить его работать с Dnf команда ниже.

OpenSUSE

Те, кто использует OpenSUSE Linux, смогут установить программу Disk Usage Analyzer, используя следующие Zypper команда ниже.

Просмотр размера папки кэша

Откройте Disk Usage Analyzer на рабочем столе, выполнив поиск в меню приложения. Или откройте панель быстрого запуска с помощью Alt + F2 на клавиатуре и введите baobab команда для запуска. Затем следуйте пошаговым инструкциям ниже.

Шаг 1: В анализаторе использования диска найдите значок «Домашняя папка». В Disk Usage Analyzer он находится в разделе «Этот компьютер». Когда вы щелкнете по нему, приложение Disk Usage Analyzer начнет сканировать ваш домашний каталог на предмет файлов и папок. Наберитесь терпения и позвольте ему сканировать.

Очистить файлы и папки кеша

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

Как очистить кэш linux. home folder dua e1592726088152. Как очистить кэш linux фото. Как очистить кэш linux-home folder dua e1592726088152. картинка Как очистить кэш linux. картинка home folder dua e1592726088152.

Как очистить кэш linux. cache folder dua e1592726122793. Как очистить кэш linux фото. Как очистить кэш linux-cache folder dua e1592726122793. картинка Как очистить кэш linux. картинка cache folder dua e1592726122793.

Как очистить кэш linux. move to trash dua e1592726141326. Как очистить кэш linux фото. Как очистить кэш linux-move to trash dua e1592726141326. картинка Как очистить кэш linux. картинка move to trash dua e1592726141326.

Шаг 4: Откройте файловый менеджер Linux. Затем, открыв файловый менеджер на рабочем столе, нажмите «Корзина», чтобы получить доступ к удаленным файлам вашего ПК.

Шаг 5: Очистите «Корзину», чтобы удалить все файлы кеша, которые вы ранее удалили с помощью Disk Usage Analyzer, и удалите их без возможности восстановления. Или выберите «восстановить», чтобы отменить удаление кеша.

Источник

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

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