- Пять команд для проверки оперативной памяти в Линукс
- Команда free
- Команда cat /proc/meminfo
- Команда vmstat
- Команда top
- Команда htop
- Мой выбор
- Информация об оперативной памяти в Linux. Свободная, занятая и тип памяти
- Свободная и занятая оперативная память
- Команда free
- Команда vmstat
- Команда top
- Команда htop
- Файл /proc/meminfo
- Тип памяти и частота
- Заключение
Пять команд для проверки оперативной памяти в Линукс
Помните, когда-то на канале выходил материал по командам для проверки жестких дисков на Линукс-серверах? Если не помните, то можете пройти по прикрепленной ниже ссылке и прочитать.
Вторым не менее важным элементом в работе сервера является оперативная память. У нее есть одно свойство — она может заканчиваться, что в результате приводит к сбоям в работе сервера. Поэтому давайте узнаем какими командами можно следить за оперативной памятью.
Чтобы получить уведомления о выходе новых заметок подпишитесь на обновления канала Просто Код в Телеграме.
Команда free
Начнем с базовой команды, которая одновременно и является утилитой в Linux. Использование ее просто, достаточно в терминале ввести free.
Использование ключей упрощает восприятие выводимой информации. Используйте ключ -m чтобы показать данные в мегабайтах, ключ -g в гигабайтах, ключ -b в байтах, ключ -k в килобайтах, ключ -h делает вывод удобным для чтения человеком (человекопонятным).
Теперь поговорим про то, что обозначают выводимые столбцы:
- total — общий объем оперативной памяти
- used — объем оперативной памяти, который использует Linux
- free — количество не задействованной оперативной памяти
- shared — столбец можно игнорировать, так как он полезен только для обратной совместимости
- buff/cache — объединенная оперативная память, которая используется буферами ядра, кэшем страниц и пр., эту память могут использовать приложения, если им это необходимо
- available — количество оперативной памяти, доступной для запуска новых приложений без необходимости замены.
- swap — этот столбец показывает размер файла подкачки
Столбец used рассчитывается следующим путем:
used = total — free — buffers — cache
Особенностью Линукс является привычка кэшировать большое количество всего, чтобы в случае необходимости не загружать что-то заново, а воспользоваться сохраненной версией.
Команда cat /proc/meminfo
С командой cat мы уже знакомились в статье про работу с файлами. Про папку /proc мы тоже читали в статье про системные папки корневого раздела Linux. Внизу прикреплю две этих статьи, чтобы прочитать их или освежить материал в памяти.
В папке /proc размещается динамический файл meminfo, содержимое которого мы и будем считывать командой cat.
«Выхлоп» у команды большой, но нас интересуют строки MemTotal, MemFree, Buffers, Cached, SwapTotal и SwapFree. Они соответствуют тем же значениям, которые мы получили после ввода команды free.
Команда vmstat
Ввод этой команды позволяет не только отследить использование оперативной памяти, но и получить дополнительную информацию о том, что ее использует.
Данных опять-таки много, хотя, в отличии от предыдущей команды они и скомпонованы на экране получше. Нас будут интересовать только первые три.
- r отображает число запущенных процессов, это те, которые работают или которые ожидают выполнения.
- b отображает число «спящих» процессов.
- swpd отображает объем используемой виртуальной памяти.
- free показывает объем свободной памяти.
- buff показывает количество памяти, используемой в качестве буферов.
- cache показывает объем памяти, используемой в качестве кеша.
- inact/active показывают количество неактивной/активной памяти.
- si показывает объем оперативной памяти, выгруженный с диска.
- so показывает объем объем памяти, перенесенный на диск.
Можно использовать при вводе команды ключ -s, который выведет в начале только то, что напрямую относится к оперативной памяти.
Команда top
Утилита выводит информацию о используемой оперативной памяти и загрузку процессора для каждого запущенного в системе процесса. Помимо этого «выхлоп» поможет нам получить информацию об общем использовании памяти и контролировать его.
Как видим, вывод команды уже представлен в псевдографическом виде. Нас интересует верхние строки, содержащие слова Mem и Swap. В них же находятся те данные, которые мы получали использованием команды free.
Команда htop
Это «прокачанный» вариант top, но его нужно устанавливать отдельно. Пакет этот имеется во всех популярных дистрибутивах, потому проблем возникнуть не должно. На моем сервере установлен Debian 11, потому для установки htop нужно ввести команду
sudo apt install htop
После можно вводить основную команду и смотреть то, что она покажет.
Вывод намного приятнее, чем у top, обратите внимание на верхние строки: в них показывается нагрузка на ядра процессора, ниже данные по оперативной памяти. Также справа видим количество запущенных процессов, нагрузку системы и время ее непрерывной работы. Внизу расположены горячие клавиши, при помощи которых можно управлять процессами.
Мой выбор
Из описанных выше команд я предпочитаю free, она простая в использовании и дает сразу необходимые данные. Если сервер используется мной на постоянной основе (не для какой-либо разовой процедуры), то уже устанавливаю htop, который чаще использую для отслеживания прожорливых процессов. Опять-таки htop конкретно для работы с оперативной памятью и ее мониторингом практически не использую.
В комментариях подписчики и читатели канала могут рассказать о своих предпочтениях в плане утилит для мониторинга оперативной памяти на Linux-серверах. Может узнаю что-нибудь нового в плане команд и утилит.
Призываю активно участвовать в жизни канала: подписываться, комментировать, лайкать. Чем больше активностей, тем быстрее посты попадут в рекомендации Дзена. Также приглашаю подписаться на обновления Просто Код в Телеграме , чтобы получать уведомления о выходе новых заметок.
Информация об оперативной памяти в Linux. Свободная, занятая и тип памяти
Мы воспользуемся утилитами командной строки доступными для большинства Linux дистрибутивов.
Свободная и занятая оперативная память
Для получения информации о количестве свободной и занятой оперативной памяти в Linux можно использовать различные утилиты и команды. Рассмотрим несколько распространенных способов.
Команда free
Команда free очень простая, она выводит информацию о общем количестве оперативной памяти, о количестве занятой и свободной памяти, а также об использовании файла подкачки.
free всего занято свободно общая буф./врем. доступно Память: 4038844 1099804 1491184 39196 1447856 2611568 Подкачка: 1951740 0 1951740
По умолчанию объем памяти выводится в килобайтах. Используя опции, можно выводить объем памяти в других форматах. Некоторые опции:
Команда vmstat
Команда vmstat выводит различную статистику по использованию памяти. Используя ключ -s можно вывести подробную статистику в табличном виде.
vmstat -s 4038844 K total memory 1180932 K used memory 1694344 K active memory 542648 K inactive memory 1403152 K free memory 213312 K buffer memory 1241448 K swap cache .
Команда top
top — это утилита командной строки, которая используется для мониторинга процессов и используемых ресурсов компьютера.
В заголовке выводится информация об использованной оперативной памяти.
Команда htop
Утилита htop, также как и top, используется для мониторинга ресурсов и процессов.
Для установки утилиты htop в Ubuntu Linux (Linux Mint и других Ubuntu/Debian-дистрибутивах) выполните команду:
Файл /proc/meminfo
Описанные выше команды, в качестве источника информации используют системные файлы из файлов, хранящихся в виртуальной файловой системе /proc . В файле /proc/meminfo содержится информация об использовании памяти. Выведем содержимое файла /proc/meminfo :
cat /proc/meminfo MemTotal: 4038844 kB MemFree: 1341788 kB MemAvailable: 2474596 kB Buffers: 214128 kB Cached: 1065564 kB SwapCached: 0 kB Active: 1743700 kB .
Тип памяти и частота
Рассмотрим, как получить информацию об установленных в компьютер модулях оперативной памяти. Воспользуемся командной dmidecode
Используем следующую команду:
sudo dmidecode --type 17 sudo dmidecode --type 17 # dmidecode 3.1 Getting SMBIOS data from sysfs. SMBIOS 2.4 present. Handle 0x0026, DMI type 17, 27 bytes Memory Device Array Handle: 0x0025 Error Information Handle: Not Provided Total Width: 64 bits Data Width: 64 bits Size: 2048 MB Form Factor: DIMM Set: None Locator: A0 Bank Locator: Bank0/1 Type: DDR2 Speed: 800 MT/s .
В выводе команды будет информация о слотах оперативной памяти. Для каждого слота отображается установленный модуль оперативной памяти, его тип (поле Type ), размер (поле Size ), скорость/частота (поле Speed ) и другая информация.
В зависимости от системы и оборудования не всегда удается получить все данные, поэтому некоторые поля могут быть пустыми или иметь надписи Not provided/Unknown.
Заключение
Мы рассмотрели различные способы для просмотра информации о доступной и занятой оперативной памяти, а также показали, как вывести информацию об установленных модулях оперативной памяти.
Для отслеживания использования ресурсов компьютера существует множество графических программ. Найти их можно в нашем каталоге программ для Linux в разделе Система/Мониторинг.