5 мин для чтения 5 команд для проверки использования памяти на Linux
Главное меню » Операционная система Linux » 5 команд для проверки использования памяти на Linux
Использование памяти
Часто важно проверить использование общей памяти и памяти, используемой в процессе на серверах, а так же неиспользуемые ресурсы. Если вы работаете на веб-сервере, то сервер должен иметь достаточно памяти, чтобы обслуживать посетителей сайта. Если такого не будет, то сайт станет очень медленным или даже стать недоступным, когда будет всплеск трафика, просто потому, что памяти будет не хватать. Тоже самое, как и то, что происходит на настольном компьютере.
1. Команда free
Команда free является самой простой и легкой в использовании командой, чтобы проверить использование памяти на Linux. Вот краткий пример
Опция -m отображает все данные в мегабайтах. Общий общий объем оперативной памяти ОС Linux 7976 МБ, установленной в системе, то есть 8 Гб. Колонка used показывает объем оперативной памяти, которая может быть использована на Linux, в нашем случае составит около 6,4 Гб. Загвоздкой здесь является колонки cached и buffers. Вторая строка говорит, что 4,6 Гб свободно. Это свободная память в первой строке с добавлением буферов и объема памяти кэша.
Linux имеет привычку кэшировать для повышения производительности, так что память может быть освобождена и использована при необходимости.
Последняя строка, это подкачка памяти (swap), который в этом случае полностью свободна.
2. /proc/meminfo
Следующий способ проверить использование памяти, прочитать файл /proc/meminfo. Знайте, что файловая система /proc не содержит реальных файлов. Они являются виртуальными файлами, которые содержат динамическую информацию о ядре и системы.
Проверьте значения MemTotal, MemFree, Buffers, Cached, SwapTotal и SwapFree. Они указывают на одни и те же значения, использования памяти в команде free.
3. vmstat
Команда vmstat с опцией -s, показывает статистику использования памяти почти как команда Proc. Вот пример
Верхние несколько строк указывают общий объем памяти, объем свободной памяти и т.д., и так далее.
4. команда top
Команда top обычно используется для проверки памяти и процессора для каждого процесса. Тем не менее она также сообщает общее использование памяти и может быть использована для контроля общего использования памяти. Вывод результата имеет необходимую информацию. Вот пример вывода
Проверьте KiB Mem и KiB Swap в заголовке. Они указывают на общую, используемую и свободную объем памяти. Информация буфера и кэша присутствует здесь тоже, как и команды free.
5. Команда htop
Подобно команды free, команда htop также показывает использование памяти наряду с другими деталями.
Заголовок в верхней части показывает использование центрального процессора вместе с оперативной памятью и использование своп с соответствующими цифрами.
Информация памяти (RAM)
Чтобы узнать аппаратную информацию об установленной оперативной памяти, используйте команду dmidecode. Команда выводит детальную информацию об установленной оперативной памяти.
Информация включает в себя размер (2048MB), тип (DDR2), скорость (667 МГц) и т.д.
Резюме
Все вышеперечисленные команды работают с терминала и не имеют графического интерфейса. При работе на рабочем столе с графическим интерфейсом, гораздо проще в использовании графический инструмент с графическим выводом. Наиболее распространенные инструменты gnome-system-monitor в gnome и
KSysguard в KDE. Оба предоставляют информацию об использовании ресурсов о CPU, RAM, обмена и пропускной способности сети в графическом режиме и легко понятном визуальном выводы.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Как узнать количество памяти в Linux, Ubuntu
Как можно узнать количество оперативной памяти (свободной, занятой, всего) в Linux (debian, ubuntu и пр.)?
Вы можете использовать следующие команды в терминале, чтобы выяснить реальный размер RAM под Linux, либо удаленно по ssh для сервера с Linux.
Файл /proc/meminfo
Команда free
Команда free отображает общее количество свободной и занятой физической и своп памяти в системе, а также буферы, используемые ядром:
Опции
Команда vmstat
Комманда vmstat показывает статистику памяти включая дополнительную информацию о процессах
Команда top
Эту команду я люблю больше всего, за ее реалтаймовость. Показывает в настоящем времени общую информацию о памяти, загруженности процессора и процессах которые выполняются
UPD от 19.11.2015
Для того чтоб посмотреть сколько используется памяти сейчас использую htop. Который нужно предаврительно установить командой
Как узнать, какая установлена оперативная память и сколько слотов RAM занято в Linux
Если вы хотите добавить память в компьютер или ноутбук либо заменить на более быструю, то нужно знать характеристики оперативной памяти, с которой ваша система может работать. Если вы хотите увеличить количество оперативной памяти, то важно подобрать модуль RAM со схожими характеристиками.
С настольными компьютерами это обычно нетрудно — можно снять крышку и посмотреть, какая модель памяти установлена, а затем поискать её характеристики в Интернете. Но с ноутбуками всё не так — довольно часто предустановленная оперативная память труднодоступна, даже если свободный слот для дополнительной памяти находится под люком быстрого доступа на задней крышке.
Итак, в этой статье мы научимся, как узнать, какая модель оперативной памяти установлена, какие у неё характеристики и сколько слотов занято в Linux. Мы познакомимся с несколькими программами для показа информации об оперативной памяти в Linux.
Если у вас Windows, то аналогичную инструкцию смотрите по ссылке «Как выбрать дополнительную оперативную память». Кстати, эта статья рекомендуется и пользователям Linux, если вы не можете найти в точности такую же модель RAM — в статье даются советы, на какие характеристики оперативной памяти особенно нужно обратить внимание при выборе дополнительных модулей ОЗУ.
Как использовать dmidecode для получения информации об установленной в системе оперативной памяти. Что означает вывод dmidecode
Первая утилита, с которой мы познакомимся, называется dmidecode. Если она отсутствует в вашей системе, то в Debian, Linux Mint, Ubuntu, Kali Linux и их производные программа устанавливается следующим образом:
В Arch Linux, BlackArch и производные утилита устанавливается так:
Для получения более расширенной информации об оперативной памяти запустите команду следующим образом:
Для более сжатой информации, выполните команду:

В этом выводе значение строк следующее:
- Maximum Capacity — максимально поддерживаемое системой количество оперативной памяти
- Number Of Devices — количество устройств, то есть сколько слотов памяти имеется. Будьте осторожны с этими значениями, особенно на ноутбуках, поскольку это значение берётся как количество слотов, которое может поддерживать материнская плата. Но производители могут принять решение, что вместо 4 возможных слотов RAM, они паяют только 2 слота. То есть в реальности слотов может быть меньшше.
- Size — объём оперативной памяти
- Form Factor — тип модуля, например, SODIMM — это оперативная память для ноутбуков (уменьшенный размер)
- Type — тип памяти, например, DDR4
- Speed — скорость, например, 2667 MT/s
- Manufacturer — производитель, например, Samsung
- Part Number — точное название модели оперативной памяти, например, M471A2K43CB1-CTD
- Minimum Voltage — минимальный вольтаж, например, 1.2 V
- Maximum Voltage — максимальный вольтаж, например, 1.2 V
- Configured Voltag — настроенный вольтаж, например, 1.2 V
Как с помощью lshw посмотреть информацию об оперативной памяти
Вторая программа, которая показывает модель оперативной памяти в Linux, это lshw. Если она отсутствует в вашей системе, то в Debian, Linux Mint, Ubuntu, Kali Linux и их производные программа устанавливается следующим образом:
В Arch Linux, BlackArch и производные утилита устанавливается так:
Чтобы показать модель, производителя и характеристики ОЗУ в Linux выполните команду:
Пример вывода информации об ОЗУ:

- size — это общий размер оперативной памяти в системе, либо размер данного модуля
- product — это точная модель ОЗУ, установленной в Linux
- vendor — производитель
- clock — частота
Как можно увидеть, имеется четыре bank (с 0 до 4) — то есть программа показывает, что в системе может быть четыре модуля оперативной памяти. Но на данной модели ноутбука имеется только два слота, следовательно, материнская плата поддерживает 4 слота ОЗУ, а на практике возможно установить только 2.
- description: [empty] означает, что данный слот пустой.
Как в Linux узнать, какой процесс использует всю оперативную память (RAM)?
Если в операционной системе заканчивается свободная оперативная память, то это очень сильно влияет на её производительность. Система начинает работать заметно медленнее, уменьшается её «отзывчивость», происходит более долгое переключение между окнами, новые процессы не запускаются или запускаются очень медленно. По этой причине, если какой-то процесс расходует слишком много оперативной памяти или тем более всю свободную оперативную память, не оставляя ресурсов для остальной системы, то необходимо его выявить и принять меры для оптимизации.
Как узнать, сколько свободной памяти в Linux
Начнём с того, что убедимся, что дело действительно в нехватке оперативной памяти, а не в том что, например, центральный процессор слишком загружен. Для этого выполним очень простую команду:
Вы увидите примерно следующее:

В этой табличке означает:
- Mem — физическая оперативная память
- Swap — раздел подкачки (если недостаёт оперативной памяти, то система сбрасывает временно неиспользуемые данные на физический диск, а потом по мере необходимости вновь загружает их в оперативную память. С одной стороны, это позволяет продолжить работу в условиях нехватки оперативной памяти, но с другой — система начинает работать заметно медленнее, поскольку физический диск всегда медленнее ОЗУ, плюс нужно время для записи на диск и считывание с диска)
- total — общее количество
- used — используемая в данный момент память (вычисляется как total — free — buffers — cache)
- free — неиспользуемая память
- shared — память, используемая (преимущественно) в tmpfs
- buff — память, используемая буферами ядра
- cache — память, используемая страницами cache и slabs
- buff/cache — сумма буферов и кэша
- available — примерное количество оперативной памяти, доступное для запуска новых приложений без использования ими раздела подкачки. В отличие от поля free, это поле принимает в расчёт страницу cache и также то, что не вся рекуперируемая (пригодная для повторного использования) память будет возвращена для рекуперации из-за того, что элементы используются в данный момент
Итак, если значение поля free, а в особенности поля available очень мало или равно нулю, значит нужно принимать меры, иначе рабочая станция или сервер будут работать крайне медленно либо могут полностью зависнуть.
Как просмотреть, какая программа потребляет больше всего оперативной памяти в top
Очень подробно о команде top, в том числе подсказки и интересные трюки описаны в статье «Как пользоваться командой top для наблюдения за процессами в Linux» — крайне рекомендуется ознакомиться.
Запуск программы top:
По умолчанию программа top сортирует процессы по их нагрузке на центральный процессор. Чтобы посмотреть, по какому полю выполняется сортировка, нажмите клавишу x:

По умолчанию в top отображаются следующие виды памяти:
- VIRT — общее количество используемой задачей виртуальной памяти, включает все коды, данные, совместные библиотеки, плюс страницы, которые были перенесены в раздел подкачки, и страницы, которые были размечены, но не используются
- RES — используемая оперативная память, является подмножеством VIRT, представляет физическую память, не помещённую в раздел подкачки, которую в текущий момент использует задача. Также является суммой полей RSan, RSfd и Rssh.
- SHR — размер совместной памяти, подмножество используемой памяти RES, которая может использоваться другими процессами
- %MEM — доля задачи в использовании памяти (RES)
Для переключения между полями сортировки, используйте . Обратите внимание, что это не курсорные клавиши, а разновидность скобок, для их использования переключитесь на английскую раскладку клавиатуры и нажимайте эти кнопки с зажатой клавишей Shift.
Пример сортировки по %MEM:

Сортировка по VIRT:

Как найти программы, которые используют больше всего памяти в ps
С помощью утилиты ps также можно составить список, отсортированный по количеству потребляемой памяти, для этого выполните:
Самые «прожорливые» процессы будут внизу:

Первый столбец — это PID процесса, затем идёт виртуальная память процесса в килобайтах, затем название программы.
Ещё одна элегантная команда с использованием ps:
Она покажет что-то вроде:

Невозможно найти, через какой процесс утекает оперативная память — сумма памяти процессов меньше общей используемой памяти
В некоторых версиях ядер Linux присутствовала проблема утечки памяти на уровне ядра, поэтому нет никакой возможности обнаружить её инструментами пользовательского пространства. Пример такого ядра — 3.13.
Причём некоторые ядра допускают утечку памяти только в определённых условиях (пример: Linux Mint 17 при использовании btrfs).
Самым лучшим вариантом в этом случае является обновление ядра и системы в целом до новой версии.

