- Сброс кэша в Linux
- Очищаем буфер и кеш в системе Linux
- Очистка кеша и буфер в Linux
- Увидеть, что находится в буферах и кеше
- fincore
- Очистка swap в Linux
- Очистка memcached в Linux
- Как очистить файлы кеша программ в Linux
- Расположение файла кеша
- Установить анализатор использования диска
- Ubuntu
- Debian
- Arch Linux
- Fedora
- OpenSUSE
- Просмотр размера папки кэша
- Очистить файлы и папки кеша
- Как очистить кеш в Linux
- Как работает кэш файловой системы Linux
- Использование команды Free для просмотра использования кеша
- Команда Proc Sys VM Drop Caches
- Экспериментальная проверка работы Drop Cache
- Заключение
Сброс кэша в Linux
Суббота, 28 Март 2015 00:00
Пока в Интернете ведутся войны на тему «надо ли вообще сбрасывать кэш в Linux», я для себя ответил на этот вопрос. Да, иногда это необходимо. Предположим, есть сервер, который работает под CentOS и выполняет монотонные несложные задачи ежедневно. Но раз в неделю он единовременно выполняет весьма ресурсоёмкую задачу, которая сильно нагружает процессор и «съедает» всю память (под кэш). Конечно, грамотные люди знают, что такое буфер, и как он работает. Но смысл хранить в памяти файловые данные, которые в лучшем случае потребуются через неделю, а скорее всего — просто устареют уже через пару дней!?
Моё предложение: дополнять скрипты редких ресурсоёмких задач командами очистки кэша.
К ресурсоёмким задачам, забивающим кэш лишней информацией я отношу следующие задачи, при условии их редкого выполнения:
- Архивация (в моём случае tar способен «съесть» всю свободную память)
- Обновление через yum
- Анализ статистики веб-сервера и построение отчётов
Как известно, в версии ядра 2.6.16 (и более свежих) появился механизм, который вынуждает ядро сбросить страничный кэш и/или кэши inode+dentry. После выполнения команды высвобождается существенный объем ОЗУ. Ходят легенды, что издревле несчастные администраторы писали специальные скрипты, которые пытались выделить тонны памяти с единственной целью: чтобы изгнать кэш из памяти 🙂
Для использования /proc/sys/vm/drop_caches достаточно передать число.
Чтобы сбросить страничный кэш:
Чтобы сбросить кэши dentry и inodes:
Чтобы сбросить страничный кэш, dentry и inodes:
Теперь выполним лабораторную работу.
На веб-сервере, работающем под CentOS 6.6, было замечено, что в обычном режиме достаточно 1 Гб ОЗУ для выполнения всех задач, причем этот лимит никогда не превышается, а файл подкачки постоянно держится на величине 0 Kb. Однако, после выполнения тяжелых задач память целиком забивается, и — самое обидное! — сервер начинает своппить на обычных простых задачах, постепенно забивая файл подкачки и постоянно напрягая жесткий диск. Проведём мониторинг памяти до (красным) и после (синим) выполнения сброса.
Выигрыш очевиден. Если раньше было свободно 87 Мб, то стало свободно 1456 Мб даже при условии, что в качестве параметра сброса мы передавали единицу.
Теперь сервер в состоянии проработать ещё неделю, совершенно не напрягая жесткий диск.
This is a non-destructive operation and will only free things that are completely unused. Dirty objects will continue to be in use until written out to disk and are not freeable. If you run «sync» first to flush them out to disk, these drop operations will tend to free more memory.
Источник
Очищаем буфер и кеш в системе Linux
Прежде чем приступить к практике, сперва поговорим о буферизации и кэш памяти в операционных системах Linux. Очистка кешей и буферов в Linux снижает производительность системы и в основном полезно только для бенчмаркинга.
Свободная память — неиспользуемая память — это потраченная память впустую.
Очистка кеша и буфер в Linux
Если вы хотите очистить в системе кеш и буфер, то вы можете использовать эту цепочку команд:
Вы можете сигнализировать ядру Linux, чтобы удалить различные аспекты кешированных элементов, изменив числовой аргумент на указанную выше команду.
- Чтобы освободить pagecache:
- Чтобы освободить иноды:
- Чтобы освободить pagecache, dentries и inodes:
ПРИМЕЧАНИЕ. Вышеупомянутые команды должны выполняться от root пользователя.
Если вы пытаетесь сделать это с помощью sudo , вам нужно немного изменить синтаксис, примерно так:
Либо в таком формате:
Увидеть, что находится в буферах и кеше
Посмотрите linux-ftools , если вы хотите анализировать содержимое буферов и кэша в вашей системе. В частности, если вы хотите посмотреть, какие файлы в настоящее время кэшируются.
fincore
С помощью этого инструмента вы можете видеть, какие файлы кэшируются в директории give.
Очистка swap в Linux
первым делом смотрим сколько занимает наш swap места:
В данном случае swap занимает 26 Мб из 8 Гб
Очистим swap следующей командой:
Затем используйте команду, чтобы посмотреть освободился ли swap:
Из вывода видно что swap теперь занимает 0 Мб.
Очистка memcached в Linux
Есть несколько путей очистить кеша memcached.
Первый — это очистка с помощью подключения через telnet. Используем следующие команды:
- localhost — хост где находится memcached (можно указывать и IP-адрес хоста).
- 11211 — порт который использует memcached.
Чтобы узнать порт и IP-адрес в терминале где установлен memcached наберите следующее:
Второй — перезапустить сервис memcached:
Третий — установить утилиту memcflush для очистки кешей:
Теперь очищаем кеш memcached
Если есть вопросы, то пишем в комментариях.
Также можете вступить в Телеграм канал, ВК или подписаться на Twitter. Ссылки в шапки страницы.
Заранее всем спасибо.
Источник
Как очистить файлы кеша программ в Linux
Если вы заметили, что в домашней папке вашего ПК с Linux не хватает места, возможно, вам необходимо очистить файлы кеша. Но как очистить файлы кеша в Linux?
Расположение файла кеша
Многие файлы кеша хранятся в .cache папку в домашнем каталоге. У каждого пользователя ОС Linux есть .cache папка, и со временем она может накапливаться и занимать место. В этом руководстве мы покажем вам, как очистить эту папку. Однако, прежде чем мы перейдем к вопросу о том, как очистить .cache папку, нам необходимо установить Disk Usage Analyzer.
Установить анализатор использования диска
Disk Usage Analyzer — полезный инструмент, который пользователи Linux могут использовать для быстрого получения графического обзора размеров папок в системе. Мы можем использовать это приложение, чтобы определить, насколько велик .cache папка, которая поможет очистить файлы кеша из системы.
Чтобы установить инструмент 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 установлена в Linux, мы можем использовать ее, чтобы узнать, насколько велик ваш .cache папка, чтобы определить, нужно ли удалить всю папку или нам просто нужно удалить отдельные папки.
Откройте Disk Usage Analyzer на рабочем столе, выполнив поиск в меню приложения. Или откройте панель быстрого запуска с помощью Alt + F2 на клавиатуре и введите baobab команда для запуска. Затем следуйте пошаговым инструкциям ниже.
Шаг 1: В анализаторе использования диска найдите значок «Домашняя папка». В Disk Usage Analyzer он находится в разделе «Этот компьютер». Когда вы щелкнете по нему, приложение Disk Usage Analyzer начнет сканировать ваш домашний каталог на предмет файлов и папок. Наберитесь терпения и позвольте ему сканировать.
Шаг 2: После того, как Disk Usage Analyzer завершит сканирование вашего ПК с Linux на наличие файлов, вы увидите кольцевой график справа и древовидную структуру папок слева. Найдите .cache в древовидной структуре папок и щелкните по нему.
Шаг 3: Как только вы нажмете на .cache папки, вы увидите точный ее размер на кольцевом изображении справа. Вы также сможете узнать размер .cache папка.
Чтобы увидеть размер отдельных папок внутри .cache папку, щелкните стрелку рядом с .cache в древовидной структуре слева. Он отсортирует папки по размеру.
Очистить файлы и папки кеша
Очистить папку кэша можно прямо в Анализаторе использования диска. Чтобы очистить кеш, следуйте пошаговым инструкциям ниже.
Шаг 1: Щелкните «Главная» в анализаторе использования диска, затем щелкните .cache , после того, как приложение Disk Usage Analyzer завершит сканирование.
Шаг 2: Щелкните стрелку рядом с .cache папка для просмотра всех вложенных папок внутри. Анализатор использования диска отсортирует все подпапки по их размеру.
Шаг 3: Найдите подпапки в .cache каталог внутри Disk Usage Analyzer, который вы хотите удалить. Затем щелкните их правой кнопкой мыши и выберите «Переместить в корзину», чтобы отправить их в корзину.
Или щелкните правой кнопкой мыши на .cache саму папку с помощью мыши и выберите «Переместить в корзину», чтобы полностью удалить все файлы кеша на вашем ПК с Linux. Не переживай! Удаление этой папки совершенно безопасно, и программы создадут ее заново, когда потребуется.
Шаг 4: Откройте файловый менеджер Linux. Затем, открыв файловый менеджер на рабочем столе, нажмите «Корзина», чтобы получить доступ к удаленным файлам вашего ПК.
Шаг 5: Очистите «Корзину», чтобы удалить все файлы кеша, которые вы ранее удалили с помощью Disk Usage Analyzer, и удалите их без возможности восстановления. Или выберите «восстановить», чтобы отменить удаление кеша.
Источник
Как очистить кеш в Linux
Главное меню » Linux » Как очистить кеш в Linux
Как работает кэш файловой системы Linux
Ядро резервирует определенный объем системной памяти для кэширования обращений к диску файловой системы, чтобы повысить общую производительность. Кеш в Linux называется кешем страниц. Размер кэша страницы можно настроить, при этом по умолчанию можно кэшировать большие объемы дисковых блоков. Максимальный размер кеша и правила удаления данных из кеша регулируются параметрами ядра. Подход кеширования linux называется кешем обратной записи. Это означает, что если данные записываются на диск, они записываются в память в кэш и помечаются как грязные в кэше, пока не будут синхронизированы с диском. Ядро поддерживает внутренние структуры данных, чтобы оптимизировать, какие данные удалять из кеша, когда в кеше требуется больше места.
Во время системных вызовов чтения Linux ядро проверяет, хранятся ли запрошенные данные в блоках данных в кэше, что будет успешным попаданием в кеш, и данные будут возвращены из кеша без выполнения каких-либо операций ввода-вывода в дисковую систему. В случае промаха кеша данные будут извлечены из системы ввода-вывода, и кэш будет обновлен на основе политик кэширования, поскольку эти же данные, вероятно, будут запрошены снова.
При достижении определенных пороговых значений использования памяти фоновые задачи начнут записывать грязные данные на диск, чтобы убедиться, что он очищает кеш памяти. Они могут повлиять на производительность приложений, интенсивно использующих память и ЦП, и требуют настройки администраторами и/или разработчиками.
Использование команды Free для просмотра использования кеша
Мы можем использовать команду free из командной строки, чтобы проанализировать системную память и объем памяти, выделенной для кеширования. См. Команду ниже:
Из приведенной выше команды free мы видим, что в этой системе 7,5 ГБ ОЗУ. Из них используется только 209 МБ, а 6,5 МБ свободно. 667 МБ используется в буферном кэше. Теперь давайте попробуем увеличить это число, выполнив команду для создания файла размером 1 гигабайт и прочитав файл. Приведенная ниже команда сгенерирует примерно 100 МБ случайных данных, а затем добавит 10 копий файла в один large_file .
Теперь мы обязательно прочитаем этот 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.
Источник