Очистить оперативную память Linux

Обновлено: 21.11.2024

Почему Linux внезапно стал работать медленнее? Вот как можно проверить использование ОЗУ и снова ускорить работу на ПК или ноутбуке с Linux.

Итак, вы установили Linux, обещая, что он требует меньше системных ресурсов, чем Windows. Почему же тогда вашей системе внезапно не хватает оперативной памяти?

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

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

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

В GNOME, наиболее широко используемом варианте, откройте программу под названием «Системный монитор». В KDE, аналогичной полнофункциональной альтернативе, вместо этого используйте Konsole. В других средах рабочего стола есть аналогичные инструменты под разными именами.

Подход, который работает независимо от среды рабочего стола, можно использовать в командной строке. Откройте приложение «Терминал» и введите следующую команду.

Вы увидите примерно такие результаты. Цифры будут меняться в зависимости от объема оперативной памяти вашего компьютера и количества активных программ.

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

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

Если ваши цифры кажутся абсолютными, может показаться, что Linux съел вашу оперативную память. Допустим, у вас 4 ГБ ОЗУ, а используется 3,9 ГБ. Только 0,1 ГБ бесплатно для дополнительных приложений! Кажется, вы в шаге от программы, которая полностью остановит ваш компьютер.

Посмотрите еще раз. На этот раз обратите внимание на колонку «доступно». Там вы можете обнаружить, что на самом деле у вас есть 1 ГБ данных, открытых для приложений. Но как? Все сводится к тому, как Linux управляет оперативной памятью и использует ее.

Как Linux использует оперативную память

То, как Linux использует оперативную память, мало чем отличается от Windows и других операционных систем. Но разные системы представляют происходящее по-разному.

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

Другими словами, Linux использует это пустое пространство с пользой в свободное от работы время. Зачем тратить всю эту свободную память впустую?

Чтобы узнать, сколько места используется таким образом, посмотрите на столбец "бафф/кеш". Это объем ОЗУ, выделенный для буферов и кеша на момент запуска команды. Представление о том, что очистка этого пространства может повысить производительность, является распространенным заблуждением относительно оперативной памяти.

Разница между свободной и доступной оперативной памятью

Теперь, когда вы все поняли, все еще легко запутаться. Я понимаю. Вот как Linux видит вашу оперативную память.

  • Используется: оперативная память, которая в данный момент используется приложением.
  • Доступно: ОЗУ, которое может использоваться для кэширования диска, но может быть освобождено для приложений.
  • Свободная: оперативная память, которая не используется приложением или дисковым кэшированием.

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

Как очистить кэш и буфер оперативной памяти

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

Вы собираетесь выполнять эти команды от имени системного администратора.

Чтобы очистить кэш страниц, введите следующую команду:

Чтобы очистить dentries и inode, измените число на 2:

Чтобы очистить кэш страниц, dentries и индексные дескрипторы вместе, измените число на 3:

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

Как просматривать и закрывать программы

Означает ли все это, что вам не нужно проверять оперативную память и управлять памятью в Linux? Не совсем.

Хотя Linux и знает, как оптимизировать ОЗУ, это не значит, что ваши приложения умеют это делать. Иногда ваш браузер занимает всю вашу память. Игра может зависнуть без освобождения системных ресурсов. Средство просмотра изображений может зависнуть при попытке загрузить очень большое изображение.

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

Результаты будут выглядеть примерно так.

Теперь, когда вы обнаружили проблемную программу, что вы можете с ней сделать? Один из вариантов — использовать команду kill. Для этого запишите номер PID, который появится рядом с программой при вводе top. Вам это понадобится.

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

Еще большее повышение производительности системы Linux

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

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

Автор Rahul, 26 июля 2015 г. Чтение: 3 минуты Обновлено: 23 сентября 2021 г.

Иногда системе не хватает памяти из-за того, что огромный объем оперативной памяти используется кэшированными объектами. В этом случае вам нужно либо увеличить физическую память в системе, либо добавить больше пространства подкачки. Вы также можете указать ядру очистить кэш оперативной памяти в системе, добавив число в файл /proc/sys/vm/drop_caches.

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

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

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

  • Очистите PageCache, dentries и inodes в кэш-памяти. Короче говоря, он очистит весь кеш памяти:
  • Очистить dentries и inodes только в кэш-памяти
  • Очистить кэш страниц только в кэш-памяти

Здесь первая команда sync используется для синхронизации всех файлов кэша в памяти с постоянным хранилищем. Следующая команда отделяется знаком «;». После завершения первой команды будет запущена следующая команда для очистки кэш-памяти.

Планирование очистки кэша памяти с помощью Crontab

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

Откройте терминал и выполните команду «crontab -e» для редактирования crontab:

Добавить следующую запись в файл:

Приведенный выше cron будет выполняться каждый час и очищать кеш памяти в вашей системе.

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

Как найти кэшированную память в Linux

Используйте команду free, чтобы узнать, как кеш-память использует система Linux. Вывод бесплатной команды показан ниже

Здесь последний столбец показывает кэшированную память (12953 МБ) в системе Linux. Параметр -m используется для отображения выходных МБ.

Хотите мгновенно очистить оперативную память вашего компьютера? Вот как запустить скрипт для очистки оперативной памяти при необходимости!

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

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

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

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

Очистка оперативной памяти в Ubuntu, Linux Mint и их производных

Запустите Терминал и введите следующую команду.

Команда «sync» очищает буфер файловой системы.Команда «echo» выполняет запись в файл, и, кроме того, drop_cache удаляет кеш, не убивая какое-либо приложение/службу. Вы должны немедленно увидеть освобождение оперативной памяти.

Совет: автоматизируйте освобождение оперативной памяти с помощью задания Cron

Теперь, когда вы знаете, как освободить память на своем компьютере, вы можете автоматизировать процесс очистки памяти с определенной частотой. Это можно быстро сделать, применив процесс cron. Обратите внимание, что я настоятельно рекомендую НЕ применять задание cron на серверных машинах! Это может повредить данные сервера. Его можно использовать только на настольных ПК и ноутбуках.

ШАГ 1. Чтобы начать работу, запустите терминал и введите следующую команду для установки vim. Это предпочтительный текстовый редактор для создания файлов sh.

Обратите внимание на терминал и введите пароль root и «Y» по запросу.

ШАГ 2. Теперь давайте создадим sh-файл с именем clearram.sh, куда мы добавим скрипт.

ШАГ 3: В редакторе vim вам нужно нажать клавишу «esc», а затем нажать «i», чтобы войти в режим INSERT. Затем добавьте в него следующий скрипт. Первая строка ниже — это Shebang, а затем команда, которую мы использовали для очистки оперативной памяти.

Сохраните файл sh и выйдите из текстового редактора vim. Для этого введите :wq и нажмите Enter. Vim сохранит файл sh и выйдет в терминал.

ШАГ 4. Теперь введите в терминале следующую команду, чтобы предоставить права на чтение/запись.

ШАГ 5. Пришло время вызвать команду crontab:

ШАГ 6. Предположим, мы хотим очищать оперативную память каждый день в 13:00.

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

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

Для очистки страницы кэша

Для очистки dentries и inode

Для очистки PageCache, dentries и inode

В приведенной выше команде команда sync сбрасывает и записывает все данные кэша на диск. Точка с запятой (;) после синхронизации разделит две команды и задержит второй командный блок, первый полностью выполнен. Кэши страниц — это данные кеша, которые сохраняются системой после чтения файлов.

Аналогично dentry и inode_cache — это данные кэша, которые сохраняются в памяти после чтения атрибутов/каталогов файлов. В соответствии с ядром Linux запись в drop_caches очистит кеш, не затрагивая запущенные программы.

В приведенном выше примере вы можете видеть, что данные в кеше уменьшились до 138 МБ с 249 МБ.

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

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

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

Команда swapoff отключит своп, а swapon включит своп. При желании вы можете выполнить обе команды по отдельности без использования операторов.

Заключение

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

Карим Буздар имеет степень инженера в области телекоммуникаций и несколько сертификатов системного администратора, включая CCNA RS, SCP и ACE. Как ИТ-инженер и технический автор, он пишет для различных веб-сайтов.

Читайте также: