- Очищаем буфер и кеш в системе Linux
- Очистка кеша и буфер в Linux
- Увидеть, что находится в буферах и кеше
- fincore
- Очистка swap в Linux
- Очистка memcached в Linux
- Как очистить файлы кеша программ в Linux
- Расположение файла кеша
- Установить анализатор использования диска
- Ubuntu
- Debian
- Arch Linux
- Fedora
- OpenSUSE
- Просмотр размера папки кэша
- Очистить файлы и папки кеша
- Как освободить память Linux
- Как освободить кэш память в Linux
- Виды кэша в Linux
- Нужно ли очищать кэш вообще?
- Автоматическая очистка кэша
- Настройка размера кэша памяти
- Как очистить память подкачки
- Как освободить память занимаемую процессами
- Выводы
Очищаем буфер и кеш в системе 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. Причем вам не придется завершать никаких процессов. Сначала войдите в консоль от имени суперпользователя:
Затем выполните одну из команд. Очистка кэша 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
А теперь давайте рассмотрим виды кэша, которые позволяют очищать эти команды, а также как все это работает.
PageCache или страничный кэш — это место, куда ядро складывает все данные, которые вы записывали или читали из диска. Это очень сильно ускоряет работу системы, так как если программе во второй раз понадобятся те же данные, они просто будут взяты из оперативной памяти. Но по этой причине этот кэш занимает больше всего места.
Посмотреть размер страничного кэша можно с помощью утилиты free. Здесь он показан в последней колонке — cached:
Такой кэш чистить эффективнее и безопаснее всего.
Кэш inode и dentrie тоже относится к файловой системе. Только в него записываются не сами данные, а структура файловой системы, расположение файлов и папок. При запросе расположения файла или содержимого папки ядро формирует специальные структуры, в которых есть вся эта информация. При следующем запросе структуры будут уже сохранены в памяти. Для каждой файловой системы существует свой кэш inode и общий кэш dentrie.
Этот кэш занимает очень мало памяти. Данные представлены в байтах, и как видите, это очень мало. Посмотреть его можно командой:
cat /proc/slabinfo | egrep dentry\|inode
Очищать его чтобы освободить память 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
Не забудьте, что это очень сильно снизит производительность вашей системы, потому что вместо кэша данные будут читаться из диска.
Как очистить память подкачки
Пространство подкачки очистить очень просто. Для этого выполните:
swapoff -a && swapon -a
Имейте в виду, что при очистке swap, все данные будут перенесены обратно в оперативную память.
Как освободить память занимаемую процессами
Если в вашей системе нет памяти и кэш здесь ни при чём, следует завершить несколько процессов, потребляющих больше всего памяти. Для этого сначала надо вычислить такие процессы. Чтобы это сделать можно воспользоваться утилитой ps:
ps -e -o pid,user,%mem,command —sort %mem
Как видите, больше всего здесь памяти занимает chromium. Теперь вам надо его завершить. Идентификатор процесса, по которому его можно завершить отображается в первой колонке. Поэтому:
Более подробно о том как завершить процесс читайте в этой статье. Таким образом, вы можете освободить память от процессов, которые занимают больше всего памяти, а потом уже настроить zram или swap для того, чтобы память не переполнялась.
Выводы
Вот и все. Вы уже знаете очистить кэш linux и освободить память. Не забудьте, что все команды, приведенные в этой статье нужно выполнять от имени суперпользователя, иначе ничего работать не будет. Если остались вопросы, спрашивайте в комментариях!
Источник