Как очистить память linux
Linux ест вашу оперативную память? Как управлять вашей памятью
Таким образом, вы установили Linux, обещая, что он требует меньше системных ресурсов, чем Windows. Тогда почему в вашей системе вдруг не хватает оперативной памяти?
Не паникуйте! Linux не ест вашу оперативную память. Чтобы понять, что происходит, нам нужно взглянуть на то, как Linux управляет памятью.
Как просмотреть бесплатную оперативную память в Linux
Как и в любом другом случае в Linux, существует несколько способов проверить, сколько ОЗУ используется. Если вы работаете в коммерческой операционной системе, вам может быть проще открыть приложение, похожее на диспетчер задач Windows или монитор активности macOS. Название этой программы зависит от того, какую среду рабочего стола Linux вы используете.
В GNOME, наиболее широко используемой опции, откройте программу под названием Системный монитор. В KDE, аналогичной полнофункциональной альтернативе, используйте Konsole вместо. В других средах рабочего стола есть похожие инструменты под разными именами.
Для подхода, который работает независимо от среды вашего рабочего стола, вы можете обратиться к командной строке. Откройте Терминал приложение и введите следующую команду.
Вы увидите результаты, которые выглядят примерно так. Числа будут меняться в зависимости от объема оперативной памяти, установленной на вашем компьютере, и количества активных программ.
Для более тщательного изучения вашей оперативной памяти попробуйте следующее:
Приведенная выше команда загружает тот же файл, что свободно Команда использует, чтобы увидеть, сколько памяти доступно на вашем компьютере.
Если ваши цифры кажутся серьезными, может показаться, что Linux съел вашу оперативную память. Допустим, у вас есть 4 ГБ ОЗУ, и используется 3,9 ГБ. Только 0,1 ГБ, кажется, бесплатно для дополнительных приложений! Похоже, что вы находитесь в одной программе от остановки вашего компьютера.
Посмотри снова. На этот раз обратите внимание на колонку «доступно». Там вы можете обнаружить, что у вас есть 1 ГБ данных, открытых для приложений. Но как? Все сводится к тому, как Linux управляет и использует RAM
Как Linux использует оперативную память
То, как Linux использует ОЗУ, не сильно отличается от Windows и других операционных систем. Но разные системы представляют то, что происходит по-разному.
Когда ваш компьютер обнаруживает, что в настоящее время ОЗУ не используется, он выделяет часть этого пространства для кэширования диска. Таким образом, приложения хранят данные в более быстром доступе, благодаря чему система работает быстрее и более плавно. Когда другим приложениям требуется больше памяти, они берут необходимое количество из этого дискового кэша, как если бы он оставался без использования.
Другими словами, Linux хорошо использует это пустое пространство в свободное время. Зачем тратить всю эту свободную память впустую?
Чтобы узнать, сколько места используется таким образом, посмотрите на столбец «buff / cache». Это объем оперативной памяти, выделенной для буферов и кеша во время выполнения команды. Идея, что очистка этого пространства может помочь производительности, является распространенным заблуждением об оперативной памяти.
Разница между свободной и доступной оперативной памятью
Теперь, когда вы все схвачены, все еще легко запутаться. Я понимаю. Вот как Linux просматривает вашу оперативную память.
Бесплатные и доступные могут показаться синонимами, но есть техническое отличие. Первое — это память, которая вообще не используется. Последнее — это память, которая используется в данный момент, но при необходимости может легко открыться. Для повседневного использования, последнее действительно важно.
Как очистить кэш и буфер оперативной памяти
Допустим, по какой-то причине вы все еще хотите очистить ОЗУ, которое ядро Linux использует для своих буферов и кеша. Чтобы было ясно, это негативно повлияет на производительность. Если вы хотите, чтобы ваша система работала оптимально, оставьте все как есть.
Вы собираетесь запускать эти команды как системный администратор.
Чтобы очистить кэш страницы, введите следующую команду:
Чтобы очистить зубные протезы и иноды, измените число на 2:
Чтобы очистить кеширование страниц, dentries и inode вместе, измените число на 3:
Если эти команды не улучшают работу вашего ПК, зачем их запускать? Это позволяет сравнить производительность вашего компьютера после внесения изменений без перезагрузки. Если вы не тестируете и не тестируете свой компьютер, нет особых причин для беспокойства.
Как просмотреть и закрыть программы
Означает ли все это, что вам не нужно проверять ОЗУ и управлять памятью в Linux? Не совсем.
Хотя Linux знает, как оптимизировать ОЗУ, это не означает, что ваши приложения это делают. Иногда ваш браузер забирает всю вашу память. Игра может зависнуть, не освобождая системные ресурсы. Средство просмотра изображений может зависнуть при попытке загрузить очень большое изображение.
Чтобы узнать, какие программы доставляют вашему компьютеру затруднения, попробуйте Топ команда:
Результаты будут выглядеть примерно так.
Теперь, когда вы обнаружили проблемную программу, что вы можете с этим поделать? Одним из вариантов является использование убийство команда. Для этого запишите номер PID, который появился рядом с программой при вводе Топ. Вам это понадобится.
Кроме того, вы можете использовать убить всех Команда закрыть программу, используя ее имя.
Повышение производительности системы Linux еще больше
В отличие от многих вещей в жизни, память вашего компьютера более или менее управляет собой. Здесь мы рассмотрели способы увидеть, что происходит, и, когда необходимо принять меры, вступить. Теперь вы знаете, как узнать, сколько памяти используется и какие программы ее используют. Вы также можете предпринять несколько шагов, чтобы остановить деятельность, занимающую много места.
Но вышеперечисленные инструменты вряд ли соответствуют тому, что доступно в наборе инструментов Linux. Смотрите наши статьи по ускорению медленного компьютера с Linux
и обновление ядра Linux для повышения производительности
Очищаем буфер и кеш в системе Linux
Прежде чем приступить к практике, сперва поговорим о буферизации и кэш памяти в операционных системах Linux. Очистка кешей и буферов в Linux снижает производительность системы и в основном полезно только для бенчмаркинга.
Свободная память — неиспользуемая память — это потраченная память впустую.
Очистка кеша и буфер в Linux
Если вы хотите очистить в системе кеш и буфер, то вы можете использовать эту цепочку команд:
Вы можете сигнализировать ядру Linux, чтобы удалить различные аспекты кешированных элементов, изменив числовой аргумент на указанную выше команду.
ПРИМЕЧАНИЕ. Вышеупомянутые команды должны выполняться от root пользователя.
Либо в таком формате:
Увидеть, что находится в буферах и кеше
fincore
С помощью этого инструмента вы можете видеть, какие файлы кэшируются в директории give.
Очистка swap в Linux
первым делом смотрим сколько занимает наш swap места:
В данном случае swap занимает 26 Мб из 8 Гб
Очистим swap следующей командой:
Затем используйте команду, чтобы посмотреть освободился ли swap:
Из вывода видно что swap теперь занимает 0 Мб.
Очистка memcached в Linux
Есть несколько путей очистить кеша memcached.
Первый — это очистка с помощью подключения через telnet. Используем следующие команды:
Чтобы узнать порт и IP-адрес в терминале где установлен memcached наберите следующее:
Второй — перезапустить сервис memcached:
Третий — установить утилиту memcflush для очистки кешей:
Теперь очищаем кеш memcached
Если есть вопросы, то пишем в комментариях.
Также можете вступить в Телеграм канал, ВК или подписаться на Twitter. Ссылки в шапки страницы.
Заранее всем спасибо.
7 способов освободить место на диске в Ubuntu и Linux Mint
Со временем любая операционная система может засоряться по мере установки и удаления программ. Если ваш диск более 1 Тб, вы можете не утруждать себя очисткой Ubuntu, чтобы освободить место на диске. Но если ваш жесткий диск имеет ограниченное пространство, например, у меня 128 ГБ SSD в ноутбуке, освобождение дискового пространства становится необходимостью.
В этой статье я покажу вам некоторые из самых простых трюков, чтобы очистить вашу систему Ubuntu и получить больше места. Я также поделюсь некоторыми продвинутыми трюками, чтобы у вас был выбор.
Но перед этим давайте посмотрим, как найти свободное место, оставшееся на Ubuntu.
Проверьте свободное место на Убунту
Всегда полезно сначала проверить свободное дисковое пространство в Linux. Сделать это в Ubuntu довольно просто. Просто используйте инструмент Disk Usage Analyzer. Выполните поиск в меню и запустите программу. Здесь вы должны увидеть используемое дисковое пространство, а также оставшееся свободное место:
Как только вы узнали о состоянии свободного места на диске, пришло время очистить систему и освободить здесь еще немного свободного места.
Как освободить дисковое пространство в Ubuntu и Linux Mint
Существует несколько способов очистки дискового пространства в Ubuntu и других системах на базе Ubuntu. Здесь я покажу несколько трюков из командной строки, а также некоторые опции GUI.
Хоть я и упомянул несколько способов здесь, если вы новичок, избегайте тех, которые помечены как «для экспертов». Не то, чтобы вы не можете их использовать, но лучше избегать, если вы не знаете, что делаете.
Я использую Ubuntu 16.04 во время написания этой статьи, но вы можете использовать те же шаги для Ubuntu 18.04 и других версий Ubuntu, Linux Mint, Elementary OS и других дистрибутивов Linux на основе Ubuntu.
Вы также можете посмотреть видео, если не хотите читать.
1. Избавьтесь от пакетов программ, которые больше не требуются [Рекомендуется]
Если вы читали руководство по командам apt-get, вы могли наткнуться на опцию apt-get command ‘autoremove’.
Эта опция удаляет библиотеки и пакеты, которые были установлены автоматически для создания зависимостей устанавливаемого пакета. Если пакет был удален, то эти автоматически установленные пакеты бесполезны в системе.
Эта команда также удаляет старые ядра Linux, которые были автоматически установлены при обновлении системы.
Это простая команда, которую вы можете запускать время от времени, чтобы освободить место в системе Ubuntu:
Как видите, эта она освободила 300 Мб свободного пространства в моей системе.
2. Удалите ненужные приложения [Рекомендуется]
У всех нас есть несколько игр и/или приложений, которые мы почти не используем. Думаете, это не так? Попробуйте найти всё установленное программное обеспечение в вашей системе Ubuntu.
Скорее всего, у вас установлено несколько приложений, которые вы редко используете. Может быть, вы установили их после просмотра какого-либо крутого обзора, из любопытства или для выполнения определенной задачи.
Вы можете удалить программы в Ubuntu прямо в центре программного обеспечения или с помощью приведенной ниже команды, если знаете правильное название приложения:
3. Очистка APT-кэша в Ubuntu
Ubuntu использует APT (Advanced Package Tool) для установки, удаления и управления программным обеспечением в системе, при этом он сохраняет кэш ранее загруженных и установленных пакетов даже после их удаления.
Система управления пакетами APT хранит кэш DEB пакетов в /var/cache/apt/archives. Со временем этот кэш может увеличиваться и содержать множество пакетов, которые вам не нужны.
Вы можете увидеть размер этого кэша с помощью команды du ниже:
Как видите, у меня более 500 Мб кэш-памяти. Когда у вас почти нет места, эти 500 Мб могут быть очень полезными.
Теперь у вас есть два способа очистить APT кэш.
Либо удалить только устаревшие пакеты, как те, которые были заменены недавним обновлением, что делает их совершенно ненужными.
Либо удалить кэш apt целиком (освобождает больше дискового пространства):
4. Очистка логов системных журналов [Средний уровень]
Каждый дистрибутив Linux имеет механизм протоколирования, который поможет Вам исследовать, что происходит в Вашей системе. В Ubuntu у вас будут данные журнала ядра, сообщения системного журнала, стандартный вывод и ошибки в различных службах.
Проблема в том, что с течением времени эти журналы занимают значительное место на диске. Вы можете проверить размер журнала с помощью этой команды:
5. Удаление старых версии Snap-приложений [Средний уровень]
Вы, наверное, уже знаете, что Snap-пакеты больше по размеру. Кроме того, в Snap хранятся как минимум две старые версии приложения (в случае, если вы хотите вернуться к предыдущей версии). Это съедает огромную часть пространства. В моем случае эта часть составляла более 5 GB.
Алан Поуп (Alan Pope), член команды Snapcraft в Canonical, создал небольшой скрипт, который вы можете использовать и запускать для очистки всех старых версий ваших snap приложений.
Здесь вам нужно создать новый shell скрипт и использовать следующие строки в нем:
Дайте ему разрешение на выполнение, запустите скрипт оболочки с помощью sudo и увидите магию. Скрипт удалил старые пакеты Snap и освободил более 2,5 ГБ пространства, используемого Snap.
6. Очистка кэша эскизов [Средний уровень]
Ubuntu автоматически создает эскизы для просмотра в файловом менеджере. Эти эскизы хранятся в скрытом каталоге в вашем аккаунте пользователя в каталоге
Со временем количество эскизов будет резко возрастать. Более того, кэш эскизов со временем будет содержать множество лишних элементов, которые больше не существуют.
Вы можете проверить размер кэша эскизов с помощью следующей команды:
В моей системе кэш эскизов размером более 300 Мб.
7. Поиск и удаление дубликатов файлов
Иногда у вас могут быть дубликаты файлов в разных местах вашей системы. Избавление от дубликатов, безусловно, освободит некоторое пространство и очистит вашу систему Ubuntu.
Для этой задачи можно использовать графический интерфейс, такой как FSlint, или инструмент командной строки, такой как FDUPES.
Другие методы очистки системы [Для экспертов]
Удаление старых ядер Linux, которые были установлены вручную [Для экспертов].
Команда, рассмотренная в пункте 1, удаляет старое ядро Linux. Но она не сработает, если вручную установить ядро в Ubuntu. Но удаление старого, неиспользуемого ядра Linux все равно сэкономит Вам много места.
Поэтому, если Вы вручную установили ядро Linux, возможно, Вы сможете вручную и удалить его.
Сначала перечислите все установленные ядра Linux:
Замечание: Замените VERSION на версию ядра, которую хотите удалить.
Я рекомендую хранить как минимум два или, желательно, три ядра, включая самые последние. Таким образом, у вас будет по крайней мере одно/два других ядра для загрузки, если по какой-то причине последнее ядро не может быть загружено.
Удаление осиротевших пакетов [Для экспертов]
Этого шага лучше всего избегать, если вы новичок. Я не являюсь поклонником этого метода и советую вам избегать его.
Во-первых, давайте посмотрим, что такое осиротевший пакет в Ubuntu.
Предположим, вы установили пакет «myprogram». Но у этого пакета есть зависимость от библиотеки ‘mylib’. Эта библиотека обычно устанавливается автоматически с помощью ‘myprogram’. Когда вы удаляете ‘myprogram’, mylib может остаться в системе. Таким образом, mylib, в данном случае, становится сиротским пакетом.
Теперь команда, перечисленная в пункте 1, удаляет такие осиротевшие пакеты. Но представьте себе случай, когда вы вручную установили mylib перед установкой myprogram. Команда ‘apt autoremove’ в данном случае может не удалить осиротевший пакет. Следовательно, вам придется удалить его вручную.
Сначала вы должны найти все осиротевшие пакеты, а затем удалить их. К счастью, у нас есть GUI-инструмент для этого: gtkorphan, графическая оболочка для deborphan.
Установите gtkorphan через терминал:
А чтобы удалить осиротевшие пакеты, найдите инструмент Removed Orphaned Package и запустите его:
Честно говоря, я бы не рекомендовал этот вариант, если конечно тебе действительно не нужен каждый Мб свободного пространства.
Бонус: Использование графических инструментов GUI для освобождения пространства в Ubuntu
Мы видели несколько вариантов работы с командной строкой, чтобы освободить место в системе Linux, но я пойму, если вы не хотите использовать команды.
Запоминать все команды или использовать их все по очереди может быть неудобно. И именно поэтому у нас есть ряд GUI инструментов, которые помогут вам сделать это за несколько кликов с помощью простого в использовании интерфейса.
Завершение
Итак, вы видели несколько способов очистки системы Ubuntu. Лично я использую apt-get autoremove чаще, чем любые другие команды, показанные здесь. Регулярное использование этой команды освобождает систему от лишних файлов.
Надеюсь, эта статья помогла Вам освободить место в Ubuntu, Linux Mint и других подобных дистрибутивах. Дайте мне знать, сработало ли это для Вас, или у Вас есть другой совет, которым Вы можете поделиться.
Как освободить память 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
А теперь давайте рассмотрим виды кэша, которые позволяют очищать эти команды, а также как все это работает.
Такой кэш чистить эффективнее и безопаснее всего.
Кэш 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
Не забудьте, что это очень сильно снизит производительность вашей системы, потому что вместо кэша данные будут читаться из диска.
Как очистить память подкачки
Пространство подкачки очистить очень просто. Для этого выполните:
Имейте в виду, что при очистке swap, все данные будут перенесены обратно в оперативную память.
Как освободить память занимаемую процессами
Если в вашей системе нет памяти и кэш здесь ни при чём, следует завершить несколько процессов, потребляющих больше всего памяти. Для этого сначала надо вычислить такие процессы. Чтобы это сделать можно воспользоваться утилитой ps:
Как видите, больше всего здесь памяти занимает chromium. Теперь вам надо его завершить. Идентификатор процесса, по которому его можно завершить отображается в первой колонке. Поэтому:
Более подробно о том как завершить процесс читайте в этой статье. Таким образом, вы можете освободить память от процессов, которые занимают больше всего памяти, а потом уже настроить zram или swap для того, чтобы память не переполнялась.
Выводы
Вот и все. Вы уже знаете очистить кэш linux и освободить память. Не забудьте, что все команды, приведенные в этой статье нужно выполнять от имени суперпользователя, иначе ничего работать не будет. Если остались вопросы, спрашивайте в комментариях!