как посмотреть свободную оперативную память linux
5 команд для проверки использования памяти в Linux
Сегодня обсудим команды, которые можно использовать для проверки использования памяти в Linux.
1. Команда Free
Команда free – это самая простая и удобная утилита для проверки использования памяти в linux.
Пример вывода:
Ключ -m отображает все данные в мегабайтах (Можно еще в байтах -b, в гигабайтах -g итд). В данном примере общий объем в OS 7976 МБ – это общий объем оперативной памяти установленной в системе, то есть 8 ГБ. Столбец used показывает объем RAM, который использует Linux, в данном случае около 6.4 ГБ. Вывод довольно понятен. Подвох здесь – столбец cached и buffers. Вторая строка говорит о том, что 4,6 ГБ свободно. Это свободная память в первой строке, добавленная с буферами (buffers) и кэшированным (cached) объемом памяти.
Последняя строка – это память подкачки (Swap), которая в этом случае полностью свободна.
У Linux есть привычка кешировать множество вещей для более быстрой производительности, так что память может быть освобождена и использована при необходимости.
2. /proc/meminfo
Следующий способ проверить использование памяти, это файл /proc/meminfo. Файловая система /proc не содержит реальных файлов. Это скорее виртуальные файлы, которые содержат динамическую информацию о ядре и системе.
Проверьте значения MemTotal, MemFree, Buffers, Cached, SwapTotal, SwapFree.
Они указывают те же значения использования памяти, что и команда free.
3. vmstat
Команда vmstat с ключем -s покажет статистику использования памяти во многом подобно команде proc.
Вот пример
Верхние несколько строк указывают на общую количество память, свободную память итд.
4. top command
Команда top обычно используется для проверки использования памяти и загрузку процессора для каждого процесса. Однако он также сообщает об общем использовании памяти и может использоваться для контроля общего использования памяти. Верхняя область содержит необходимую информацию.
Проверьте строки KiB Mem и KiB Swap в верхней области. Они указывают общее, использованное и свободное количество памяти. Информация о буфере и кеше также присутствует здесь как в команде free.
5. htop
Подобно команде top, команда htop также показывает использование памяти и другую информацию.
Верхняя область показывает использование процессора, а также использование оперативной памяти и файла подкачки (Swap) с соответствующими цифрами.
Информация о RAM
Чтобы узнать аппаратную информацию об установленной оперативной памяти, используйте команду dmidecode. Она сообщает много информации об установленной оперативной памяти.
Вывод покажет кол-во установленных модулей памяти, их объем (4096MB), тип (DDR3), частоту (1333 Mhz) и другую информацию.
Как в Linux узнать, какой процесс использует всю оперативную память (RAM)?
Если в операционной системе заканчивается свободная оперативная память, то это очень сильно влияет на её производительность. Система начинает работать заметно медленнее, уменьшается её «отзывчивость», происходит более долгое переключение между окнами, новые процессы не запускаются или запускаются очень медленно. По этой причине, если какой-то процесс расходует слишком много оперативной памяти или тем более всю свободную оперативную память, не оставляя ресурсов для остальной системы, то необходимо его выявить и принять меры для оптимизации.
Как узнать, сколько свободной памяти в Linux
Начнём с того, что убедимся, что дело действительно в нехватке оперативной памяти, а не в том что, например, центральный процессор слишком загружен. Для этого выполним очень простую команду:
Вы увидите примерно следующее:
В этой табличке означает:
Итак, если значение поля free, а в особенности поля available очень мало или равно нулю, значит нужно принимать меры, иначе рабочая станция или сервер будут работать крайне медленно либо могут полностью зависнуть.
Как просмотреть, какая программа потребляет больше всего оперативной памяти в top
Запуск программы top:
По умолчанию программа top сортирует процессы по их нагрузке на центральный процессор. Чтобы посмотреть, по какому полю выполняется сортировка, нажмите клавишу x:
По умолчанию в top отображаются следующие виды памяти:
Пример сортировки по %MEM:
Сортировка по VIRT:
Как найти программы, которые используют больше всего памяти в ps
С помощью утилиты ps также можно составить список, отсортированный по количеству потребляемой памяти, для этого выполните:
Самые «прожорливые» процессы будут внизу:
Первый столбец — это PID процесса, затем идёт виртуальная память процесса в килобайтах, затем название программы.
Ещё одна элегантная команда с использованием ps:
Она покажет что-то вроде:
Невозможно найти, через какой процесс утекает оперативная память — сумма памяти процессов меньше общей используемой памяти
В некоторых версиях ядер Linux присутствовала проблема утечки памяти на уровне ядра, поэтому нет никакой возможности обнаружить её инструментами пользовательского пространства. Пример такого ядра — 3.13.
Причём некоторые ядра допускают утечку памяти только в определённых условиях (пример: Linux Mint 17 при использовании btrfs).
Самым лучшим вариантом в этом случае является обновление ядра и системы в целом до новой версии.
Информация об оперативной памяти в Linux. Свободная, занятая и тип памяти
В этой статье мы рассмотрим, как получить информацию об оперативной памяти (RAM) в Linux.
Мы воспользуемся утилитами командной строки доступными для большинства Linux дистрибутивов.
Свободная и занятая оперативная память
Для получения информации о количестве свободной и занятой оперативной памяти в Linux можно использовать различные утилиты и команды. Рассмотрим несколько распространенных способов.
Команда free
Команда free очень простая, она выводит информацию о общем количестве оперативной памяти, о количестве занятой и свободной памяти, а также об использовании файла подкачки.
По умолчанию объем памяти выводится в килобайтах. Используя опции, можно выводить объем памяти в других форматах. Некоторые опции:
Команда vmstat
Команда top
top — это утилита командной строки, которая используется для мониторинга процессов и используемых ресурсов компьютера.
Запуск утилиты top :
В заголовке выводится информация об использованной оперативной памяти.
Команда htop
Утилита htop, также как и top, используется для мониторинга ресурсов и процессов.
Для установки утилиты htop в Ubuntu Linux (Linux Mint и других Ubuntu/Debian-дистрибутивах) выполните команду:
Запуск утилиты htop :
Файл /proc/meminfo
Тип памяти и частота
Рассмотрим, как получить информацию об установленных в компьютер модулях оперативной памяти. Воспользуемся командной dmidecode
Используем следующую команду:
В выводе команды будет информация о слотах оперативной памяти. Для каждого слота отображается установленный модуль оперативной памяти, его тип (поле Type ), размер (поле Size ), скорость/частота (поле Speed ) и другая информация.
В зависимости от системы и оборудования не всегда удается получить все данные, поэтому некоторые поля могут быть пустыми или иметь надписи Not provided/Unknown.
Заключение
Мы рассмотрели различные способы для просмотра информации о доступной и занятой оперативной памяти, а также показали, как вывести информацию об установленных модулях оперативной памяти.
Для отслеживания использования ресурсов компьютера существует множество графических программ. Найти их можно в нашем каталоге программ для Linux в разделе Система/Мониторинг.
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
Верхние несколько строк указывают общий объем памяти, объем свободной памяти и т.д., и так далее.
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
Ниже представлен небольшой список консольных и графических утилит для проверки количества свободной и используемой оперативной памяти для платформы Linux.
Как узнать оперативную память Linux
1. Файл /proc/meminfo
2. atop
sudo apt install atop
И только потом можно использовать:
3. free
4. Системный монитор Gnome
5. htop
6. KDE System Monitor
Как и у Gnome у KDE есть свое решение, которое помогает узнать использование оперативной памяти Linux. Программа KDE System Monitor очень похожа по функцональности на свой аналог в Gnome. Есть просмотр статистики использования системных ресурсов, а также отображение потребления памяти и процессора напротив каждого процесса.
7. memstat
Утилита memstat полезна для определения какой исполняемый файл, процесс или библиотека использует много оперативной памяти. Утилита определяет количество использованных ресурсов по PID идентификатору процесса. Эту утилиту тоже надо установить:
sudo apt install memstat
8. nmon
sudo apt install nmon
Чтобы утилита отобразила память поле её запуска надо нажать клавишу M:
10. smem
Команда smem позволяет измерить количество памяти используемое различными процессами и пользователями на основе информации взятой из /proc. Она показывает количество ресурсов в процентном соотношении. Для установки выплните:
sudo apt install smem
Данные могут быть экспортированы в виде диаграмм, таких как круговые графики:
11. top
Команда top выводит список запущенных процессов в режиме реального времени, а также различные статистические данные для каждого из них. Вы можете сортировать список процессов по использованию памяти.
12. vmstat
Утилита командной строки vmstat отображает статистические данные по использованию CPU, памяти, прерываний и ввода вывода на диск. Команда показывает не только физическую память (всего, использовано, кэшировано, буферизировано), но и статистику по виртуальной памяти (количество страниц в подкачке и т д)
13. dmidecode
Утилита dmideocde позволяет просматривать информацию об аппаратном обеспечении подключенном к материнской плате компьютера, в том числе и об оперативной памяти. Это чуть ли не единственный способ узнать количество слотов для памяти, количество установленных планок, а также здесь отображается напряжение питания и частота оперативной памяти. Для просмотра информации именно про память выполните:
14. lshw
Команда lshw тоже позволяет просматривать информацию об оборудовании компьютера, выводит практически аналогичные данные, что и dmidecode, только по русски и в более удобном формате:
Выводы
Из этой статьи вы узнали множество способов как узнать оперативную память Linux, как видите, существует просто огромное количество методов в зависимости от ваших потребностей. Я, обычно, смотрю свободную память с помощью утилиты free. А какие инструменты используете вы? Напишите в комментариях!
Оцените статью:
Об авторе
Основатель и администратор сайта losst.ru, увлекаюсь открытым программным обеспечением и операционной системой Linux. В качестве основной ОС сейчас использую Ubuntu. Кроме Linux, интересуюсь всем, что связано с информационными технологиями и современной наукой.
9 комментариев
Ваш сайт все интереснее от стать к статье.
Возможно не совсем в тему. Подскажите пожалуйста почему Linux Mint 17, может не видеть оперативную память? В биосе определяется 2 Гб, Win XP, установленная на этом же компьютере, тоже определяет 2 Гб, Mint, упорно показывает 1. В какую сторону думать?
Даже не знаю. попробуйте поспрашивать на специализированных форумах по аппаратному обеспечению.
Я грешу на опцию ядра highmem, но как проверить не знаю. Может попробывать другую версию ядра, сейчас стоит 3.13.0.24, не подскажите какое ядро лучше поставить?
Ставьте 4.4 или 4.6. Обычно во всех современных дистрибутивах ядро собрано с поддержкой highmem, но можете попробовать пересобрать. Также можно попробовать указать количество памяти в параметрах загрузки ядра с помощью опции mem (в мегабайтах)
Это в файле /boot/grub/grub.cfg?
Здравствуйте! Почему используется виртуальная память, когда ещё физической (озу) достаточно?
В sysctl.conf добавил
vm.swappiness = 10
vm.vfs_cache_pressure = 1000
ОЗУ 8ГБ, при 1-1,5ГБ уже используется swap, хотя должен при 10% свободной. Linux Debian 8. На Ubuntu Server 14.04 LTS эти же настройки работали.
Сервер на debian 14.04
на борту MySQL и nginx с виртуальными хостами
Ужасно тормозят сайты использующие локальную БД (одна страница может открываться до 60 секунд)
При таком раскладе это нормально (дело в нехватки ОЗУ? ведь в кэше 2549976 kB) или ковырять конфиги MySQL?
MemTotal: 4043988 kB
MemFree: 246324 kB
MemAvailable: 2816676 kB
Buffers: 217996 kB
Cached: 2549976 kB
SwapCached: 0 kB
Active: 2036160 kB
Inactive: 1559340 kB
Active(anon): 442784 kB
Inactive(anon): 453880 kB
Active(file): 1593376 kB
Inactive(file): 1105460 kB
Unevictable: 0 kB
Mlocked: 0 kB
SwapTotal: 8388604 kB
SwapFree: 8388352 kB
Dirty: 100 kB
Writeback: 0 kB
AnonPages: 827528 kB
Mapped: 100952 kB
Shmem: 69136 kB
Slab: 166384 kB
SReclaimable: 149268 kB
SUnreclaim: 17116 kB
KernelStack: 2608 kB
PageTables: 11508 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 10410596 kB
Committed_AS: 1655292 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 0 kB
VmallocChunk: 0 kB
HardwareCorrupted: 0 kB
AnonHugePages: 690176 kB
CmaTotal: 0 kB
CmaFree: 0 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
DirectMap4k: 58944 kB
DirectMap2M: 4132864 kB
total used free shared buffers cached
Mem: 3.9G 3.6G 232M 67M 213M 2.4G
-/+ buffers/cache: 1.0G 2.9G
Swap: 8.0G 252K 8.0G