- Очистка Ubuntu от лишних приложений
- Очистка системы Debian
- Очистка Debian 10
- 1. Найдите большие пакеты
- 2. Удалите конфигурационные файлы
- 3. Очистка лишних пакетов
- 4. Очистка рекомендуемых пакетов
- 5. Удалите лишние файлы
- 6. Удаление файлы логов
- 7. Удалите большие файлы
- Выводы
- Как освободить память Linux
- Как освободить кэш память в Linux
- Виды кэша в Linux
- Нужно ли очищать кэш вообще?
- Автоматическая очистка кэша
- Настройка размера кэша памяти
- Как очистить память подкачки
- Как освободить память занимаемую процессами
- Выводы
Очистка Ubuntu от лишних приложений
Как известно, наполнение CD-образа Убунты формируется по принципу «одна задача — одно приложение», и ничего сверх этого. Однако и приложения, которые находятся на CD, тоже нравятся не всем, и иногда возникает непреодолимое желание их удалить. Сразу возникает вопрос: а не потянет ли случайно эта программа за собой большую часть системы?
Это можно легко узнать. В описании к метапакету ubuntu-desktop (который сам по себе ничего не содержит, а просто имеет большое число зависимостей, которые и устанавливаются при установке системы), имеется строчка «Recommends», которая содержит пакеты, которые хоть и устанавливаются при установке системы, но которые можно безболезненно удалить, и они не потянут за собой жизненно необходимые пакеты.
Увидеть эту строчку можно так:
apt-cache show ubuntu-desktop | grep Recommends
Но в таком случае перед нами предстанет обширный довольно неудобный список пакетов, и в нем очень легко запутаться.
Сделаем проще. Наберем команду:
apt-cache show ubuntu-desktop | grep Recommends | grep ИМЯ_ПАКЕТА >/dev/null; echo $?
где ИМЯ_ПАКЕТА — это собственно имя пакета, которого мы хотим удалить.
Если в выводе команды будет 0, то программу можно удалить; если 1, то либо все-таки не стоит (так как оно, скорее всего, указано в зависимостях ubuntu-desktop), либо вы его вообще сами ставили.
Подобным образом я уже удалил gnome-games, rhythmbox, evolution и transmission. Полет нормальный.
Внимание! Перед удалением пакета внимательно посмотрите зависимости, которые могут удалиться вместе с ним. Если там указано какое-то другое важное приложение, то все-таки лучше пакет не трогать.
Источник
Очистка системы Debian
Любая, даже самая совершенная операционная система со временем накапливает в себе мусор в виде неиспользуемых пакетов, ненужных файлов, давних логов, кеша уже устаревших пакетов и т д. Не исключение и зарекомендовавшая себя как самую стабильную систему — Debian. Этот дистрибутив Linux чаще всего используется на серверах, поэтому и проблемы с засорением здесь немного иные. Здесь меньше пользовательских файлов, но зато больше внимания нужно уделять безопасности и работе с пакетами.
В этой инструкции мы рассмотрим как выполняется очистка системы Debian 8. Сконцентрируемся на работе с пакетами, поиску ненужных, больших, рассмотрим удаление неиспользуемых программ.
Очистка Debian 10
1. Найдите большие пакеты
Одно дело когда ненужная программа занимает несколько мегабайт, тогда ее можно и оставить, на случай если вдруг когда пригодится, но вот если программа не нужна и занимает много, ситуация совсем другая, это ведь все таки очистка Debian от мусора. Чтобы найти все самые большие пакеты выполните команду:
dpkg —get-selections | cut -f1 | while read pkg; do dpkg -L $pkg | xargs -I’<>‘ bash -c ‘if [ ! -d «<>» ]; then echo «<>«; fi’ | tr ‘\n’ ‘\000’ | du -c —files0-from — | tail -1 | sed «s/итого/$pkg/»; done
Если запустить команду от root, а именно это нужно сделать, то в директории /root появится файл packages.log со списком всех пакетов, упорядоченных по размеру.
Также вы можете использовать команду:
Но здесь также будет учитываться размер баз данных и дополнительных файлов.
2. Удалите конфигурационные файлы
Это важный процесс, когда проводится очистка Debian 8. Если вы устанавливали много пакетов с помощью apt-get, то скорее всего, их конфигурационные файлы не были удаленны и все еще занимают место на диске. Конечно, можно использовать для удаления команду apt-get purge, но многие просто забывают об этом. Следующая команда выведет список всех пакетов, которые были удаленны, но оставили конфигурационные файлы в вашей системе:
dpkg —list | grep ‘^rc ‘
Теперь, вы можете отфильтровать вывод и удалить все эти конфигурационные файлы, такой командой:
dpkg —list | grep ‘^rc ‘ | awk ‘< print $2 >‘ | xargs dpkg -P
3. Очистка лишних пакетов
С зависимостями в систему устанавливается большое количество пакетов. Но при удалении ранее установленных пакетов их зависимости не удаляются. Таким образом, все это может накапливаться в системе. Чтобы удалить лишние пакеты и освободить место на диске выполните:
apt-get autoremove
apt-get clean
Опция autoremove используется для удаления ненужных пакетов, как раз тех, которые были установлены раньше как зависимости, но больше не нужны в вашей системе. А вторая команда просто удаляет все пакеты из кеша apt.
4. Очистка рекомендуемых пакетов
На удалении зависимостей очистка Debian 8 не заканчивается. Кроме зависимостей, вместе с программой устанавливаются рекомендуемые пакеты. Но поскольку они не находятся в зависимостях, то не удаляются вышеописанным способом. Такие пакеты можно найти с помощью следующей команды:
aptitude search ‘?and( ?automatic(?reverse-recommends(?installed)), ?not(?automatic(?reverse-depends(?installed))))’
Утилита отобразит список пакетов с описаниями:
Пересмотрите список и если все правильно удалите все, только будьте осторожны, здесь могли оказаться полезные программы:
aptitude search ‘?and( ?automatic(?reverse-recommends(?installed)), ?not(?automatic(?reverse-depends(?installed))))’ | awk ‘< print $3 >‘ | xargs dpkg -P
5. Удалите лишние файлы
Очистка системы Debian 8 не будет полной, если не удалить засоряющие систему файлы. Дело в том, что не все файлы в файловой системе Linux принадлежат каким-либо пакетам. Файлы могли быть созданы вручную вами самими и забыть о них, а могли остаться после установки программ через make install. Так или иначе, многие из них больше не нужны.
Чтобы найти все такие файлы используйте утилиту cruft. Она сравнивает вашу файловую систему с базой данных менеджера пакетов и выводит файлы которых там нет.
Чтобы проверить файловую систему исключая /home, /tmp и /var используйте команду:
sudo cruft -d / -r report —ignore /home —ignore /var —ignore /tmp
Результат работы команды будет сохранен в файле report. Обратите внимание, что обработка выполняется только в пределах одной файловой системы, и если ваш /usr примонтирован как другой раздел используйте опцию -d /usr/.
Теперь вы можете переходить к анализу отчета. Но будьте аккуратны не удаляйте файлы, если не знаете откуда они там взялись, многие файлы будут создаваться служебными программами и библиотеками, например Grub создает несколько файлов в каталоге /boot, а openssl сохраняет свои сертификаты в /etc/.
6. Удаление файлы логов
Со временем в системе накапливаются файлы логов. Они могут занимать по несколько сотен мегабайт, поэтому логи тоже нужно вовремя удалять. Все логи находятся в папке /var/log. Просто удалите те, которые занимают много места и вам не нужны:
7. Удалите большие файлы
Нам нужно оценить насколько успешно прошла очистка диска Debian. Сначала давайте посмотрим сколько места занимают все файлы на жестком диске вашего сервера:
Теперь отсортируем все файлы по размеру, с помощью одной из следующих команд:
du -h | grep ^[0-9.]*M | sort -rn
du -h | grep ^[0-9.]*G | sort -rn
Первая отбирает файлы, размер которых исчисляется в мегабайтах, а вторая — в гигабайтах. Кроме того, вы можете воспользоваться утилитой ncdu. Но её надо сначала усстановить:
sudo apt install ncdu
Выводы
С помощью описанных здесь команд вы можете держать свою систему в чистоте и порядке, но будьте готовы, что если удалите, что-то не то, например, пакет libc6, systemd, apt-get, coreutils или что-то подобное будьте готовы потратить вечер, на то, чтобы все исправить. Как видите, очистка сиcтемы Debian 10 выполняется не так уж сложно. Но обратите внимание, что все команды, описанные в этой статье выполняются от имени суперпользователя, иначе ничего работать не будет.
Источник
Как освободить память 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 и освободить память. Не забудьте, что все команды, приведенные в этой статье нужно выполнять от имени суперпользователя, иначе ничего работать не будет. Если остались вопросы, спрашивайте в комментариях!
Источник