Найти в Дзене

Пять команд для проверки оперативной памяти в Линукс

Оглавление

Помните, когда-то на канале выходил материал по командам для проверки жестких дисков на Линукс-серверах? Если не помните, то можете пройти по прикрепленной ниже ссылке и прочитать.

Команды для отображения жестких дисков в терминале Linux

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

Чтобы получить уведомления о выходе новых заметок подпишитесь на обновления канала Просто Код в Телеграме.

Команда free

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

-2

Использование ключей упрощает восприятие выводимой информации. Используйте ключ -m чтобы показать данные в мегабайтах, ключ -g в гигабайтах, ключ -b в байтах, ключ -k в килобайтах, ключ -h делает вывод удобным для чтения человеком (человекопонятным).

-3

Теперь поговорим про то, что обозначают выводимые столбцы:

  • total - общий объем оперативной памяти
  • used - объем оперативной памяти, который использует Linux
  • free - количество не задействованной оперативной памяти
  • shared - столбец можно игнорировать, так как он полезен только для обратной совместимости
  • buff/cache - объединенная оперативная память, которая используется буферами ядра, кэшем страниц и пр., эту память могут использовать приложения, если им это необходимо
  • available - количество оперативной памяти, доступной для запуска новых приложений без необходимости замены.
  • swap - этот столбец показывает размер файла подкачки

Столбец used рассчитывается следующим путем:

used = total - free - buffers - cache

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

Команда cat /proc/meminfo

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

Команды для управления файлами в Linux

Системные папки корневого раздела Linux

В папке /proc размещается динамический файл meminfo, содержимое которого мы и будем считывать командой cat.

-4

«Выхлоп» у команды большой, но нас интересуют строки MemTotal, MemFree, Buffers, Cached, SwapTotal и SwapFree. Они соответствуют тем же значениям, которые мы получили после ввода команды free.

Команда vmstat

Ввод этой команды позволяет не только отследить использование оперативной памяти, но и получить дополнительную информацию о том, что ее использует.

-5

Данных опять-таки много, хотя, в отличии от предыдущей команды они и скомпонованы на экране получше. Нас будут интересовать только первые три.

Столбец Procs

  • r отображает число запущенных процессов, это те, которые работают или которые ожидают выполнения.
  • b отображает число «спящих» процессов.

Столбец Memory

  • swpd отображает объем используемой виртуальной памяти.
  • free показывает объем свободной памяти.
  • buff показывает количество памяти, используемой в качестве буферов.
  • cache показывает объем памяти, используемой в качестве кеша.
  • inact/active показывают количество неактивной/активной памяти.

Столбец Swap

  • si показывает объем оперативной памяти, выгруженный с диска.
  • so показывает объем объем памяти, перенесенный на диск.

Можно использовать при вводе команды ключ -s, который выведет в начале только то, что напрямую относится к оперативной памяти.

-6

Команда top

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

-7

Как видим, вывод команды уже представлен в псевдографическом виде. Нас интересует верхние строки, содержащие слова Mem и Swap. В них же находятся те данные, которые мы получали использованием команды free.

Команда htop

Это «прокачанный» вариант top, но его нужно устанавливать отдельно. Пакет этот имеется во всех популярных дистрибутивах, потому проблем возникнуть не должно. На моем сервере установлен Debian 11, потому для установки htop нужно ввести команду

sudo apt install htop

-8

После можно вводить основную команду и смотреть то, что она покажет.

-9

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

Мой выбор

Из описанных выше команд я предпочитаю free, она простая в использовании и дает сразу необходимые данные. Если сервер используется мной на постоянной основе (не для какой-либо разовой процедуры), то уже устанавливаю htop, который чаще использую для отслеживания прожорливых процессов. Опять-таки htop конкретно для работы с оперативной памятью и ее мониторингом практически не использую.

В комментариях подписчики и читатели канала могут рассказать о своих предпочтениях в плане утилит для мониторинга оперативной памяти на Linux-серверах. Может узнаю что-нибудь нового в плане команд и утилит.

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