- Как проверить использование памяти в Linux
- free команда
- top команда
- /proc/meminfo
- ps_mem Скрипт
- Выводы
- Как проверить использование памяти на Linux
- 1. /proc/meminfo
- 2. atop
- 3. free
- 4. GNOME System Monitor
- 5. htop
- 6. KDE System Monitor
- 7. memstat
- 8. nmon
- 10. smem
- 11. top
- 12. vmstat
- Как в Linux узнать, какой процесс использует всю оперативную память (RAM)?
- Как узнать, сколько свободной памяти в Linux
- Как просмотреть, какая программа потребляет больше всего оперативной памяти в top
- Как найти программы, которые используют больше всего памяти в ps
- Невозможно найти, через какой процесс утекает оперативная память — сумма памяти процессов меньше общей используемой памяти
Как проверить использование памяти в Linux
При устранении неполадок, связанных с замедлением работы или неправильным поведением системы или приложений, в первую очередь необходимо проверить использование системной памяти.
В этой статье объясняется, как проверить использование ОЗУ в Linux с помощью нескольких разных команд.
free команда
free — это наиболее часто используемая команда для проверки использования памяти в системе Linux. Он отображает информацию об общей, используемой и свободной памяти.
Как правило, free вызывается с параметром -h что означает печать вывода в удобочитаемом формате:
Вот что означает каждый столбец:
- total — общий объем памяти, который может использоваться приложениями.
- used — Используемая память. Он рассчитывается как: used = total — free — buffers — cache
- бесплатно — Свободная / неиспользуемая память.
- общий — этот столбец можно игнорировать; он показан только для обратной совместимости.
- buff / cache — объединенная память, используемая буферами ядра, а также страничным кешем и блоками. Эта память может быть освобождена в любое время, если это необходимо приложениям.
- available — оценка объема памяти, доступного для запуска новых приложений без подкачки.
Команда free печатает информацию о физической памяти и системном свопе .
top команда
top — это утилита командной строки, отображающая информацию о запущенных процессах в реальном времени. Он также показывает сводку системы, включая использование памяти.
Чтобы вызвать команду, просто введите top :
Результат будет выглядеть примерно так:
Заголовок вывода включает информацию об общей, свободной и используемой физической памяти и памяти подкачки в системе.
Столбец %MEM предоставляет информацию об используемой доле доступной физической памяти для каждого запущенного процесса.
/proc/meminfo
Самый простой способ проверить использование оперативной памяти — отобразить содержимое виртуального файла /proc/meminfo . Этот файл используется командами free , top , ps и другими командами системной информации.
Используйте less или cat для просмотра содержимого файла /proc/meminfo :
Файл включает в себя большой объем информации об использовании системной памяти и подкачки:
Информация из файла /proc/meminfo может быть проанализирована и использована в сценариях оболочки.
ps_mem Скрипт
ps_mem — это скрипт Python, который сообщает об использовании памяти RAM для каждой программы. Он работает как с Python 2, так и с 3 и может быть установлен с помощью pip :
Для ps_mem требуются права администратора:
Вывод будет включать использование памяти каждой запущенной программой в порядке возрастания:
Этот сценарий полезен, когда вы хотите узнать, какая запущенная программа занимает большую часть вашей системной памяти.
Выводы
Мы показали вам несколько команд, которые вы можете использовать для проверки использования системной памяти.
Если у вас есть вопросы или замечания, пожалуйста, оставьте комментарий ниже.
Источник
Как проверить использование памяти на Linux
Когда дело доходит до оптимизации производительности системы Linux, физическая память является самым важным фактором. Естественно, Linux предлагает множество вариантов, чтобы контролировать использование драгоценного ресурса памяти. Различные инструменты различаются с точки зрения их детализации мониторинга (например, в рамках всей системы, на процесс, на пользователя), интерфейса (например, графический, командной строки, ncurses) или режима работы (например, интерактивный, пакетный режим).
Вот неполный перечень программ с графическим интерфейсом или командной строкой, чтобы вам было из чего выбрать, для проверки используемой и свободной памяти на платформах Линукс.
1. /proc/meminfo
Самый простой способ проверить использование оперативной памяти — через /proc/meminfo. Этот динамично обновляемый виртуальный файл, на самом деле, источник отображаемой информации для многих других, связанных с памятью, инструментами, такими как free, top и ps tools. От количество доступной/физической памяти до количества буфера, ожидаемого для записи обратно на диск, /proc/meminfo имеет всё, что вы хотите знать об использовании системной памяти. Информация о памяти процессами также доступна из /proc/
2. atop
Команда atop — это основанная на интерфейсе ncurses интерактивная система и наблюдатель процессов для терминального окружения. Он показывает динамически обновляемую краткую информацию о системных источниках (процессор, память, сеть, ввод/вывод, ядро) с цветными предупреждениями в случае высокой загрузки системы. Он также может отсортировать процессы (или пользователей) в порядке наибольшего потребления ресурсов ими, так, что системный администратор может сказать, какой процесс или пользователь ответственен за загрузку системы. Отчёты по статистике памяти включают общую/свободную память, кэшированную/буферезированную память и информацию по виртуальной памяти.
3. free
Команда free — это быстрый и простой способ получить обзор использования памяти, почерпнутые из /proc/meminfo. Она показывает снимок общей/доступной физической памяти и подкачу системы также как используемое/свободное буферное пространство в ядре.
4. GNOME System Monitor
GNOME System Monitor — это графическое приложение, которое показывают краткую историю использования системных ресурсов для центрольного процессора, памяти, места подкачки и сети. Оно также предлагает процесс наблюдения за использования процессора и памяти.
5. htop
Команда htop — это основанный на ncurses интерактивный просмотрщик процессов, который показывает использование памяти по процессам в реальном времени. Он может сообщить размер занимаемой памяти процессом в основной памяти (RSS), общий размер программы в памяти, размер библиотеки, размер общей страницы, и размер грязной страницы (в кэше) для всех запущенных процессов. Вы можете горизонтально или вертикально промотать (отсортированный) список всех процессов.
6. KDE System Monitor
В то время как рабочий стол GNOME имеет GNOME System Monitor, рабочий стол KDE имеет свой собственный аналог: KDE System Monitor. Его функциональность преимущественно схожа с версией GNOME, т. е. Показ в реальном времени историю использования системных ресурсов, также как и потребление процессора/памяти отдельными процессами.
7. memstat
Утилита memstat — это полезный для выявления какой (какие) исполняемый(ые) процесс(ы) и разделяемые библиотеки потребляют виртуальную память. Получая ID процесса, memstat выявляет как много виртуальной памяти использовано связанными с этим процессом исполнимым кодом, данными и разделяемыми библиотеками.
8. nmon
Утилита nmon — это основанный на ncurses инструмент системного бенчмарка, который мониторит центральный процессор, память, дисковый ввод/вывод, ядро, файловую систему и сетевые источники в интерактивном режиме. По использованию памяти он может показать такую информацию как общую/свободную память, место подкачки, буферизованную/кэшированную память, статистику загруженной/выгруженной виртуальной памяти, это всё в реальном времени.
Команда ps может показать использование памяти отдельными процессами в реальном времени. Отображаемая информация использования памяти включает %MEM (процент от используемой физической памяти), VSZ (общее количество используемой виртуальной памяти) и RSS (общее количество используемой физической памяти). Вы можете отсортировать список процессов, используя опцию «—sort». Например, для сортировки по убыванию RSS:
10. smem
Команда smem позволяет вам измерять использование физической памяти различными процессами и пользователями, основываясь на информации, доступной из /proc. Эта утилита использует метрику пропорционально установленного размера (PSS), для точной оценки использования процессами Linux размера эффективной памяти. Анализ использования памяти может быть экспортирован в графические диаграммы в виде столбиков и нарезанных на части кнугов.
11. top
Команда top предлагает наблюдение за запущенными процессами в реальном времени вместе с различными статистиками процессов использования ресурсов. Связанная с памятью информация включает %MEM (процент используемой памяти), VIRT (общее количество используемой виртуальной памяти), SWAP (количество подкаченной виртуальной памяти), CODE (количество физической памяти, выделенной для исполнения кода), DATA (количество физической памяти выделенной для не-исполнимых данных), RES (общее количество используемой физической памяти, CODE+DATA) и SHR (количество потенциально разделённой памяти с другими процессами). Вы можете отсортировать список процессов, основываясь на использование памяти или размере.
12. vmstat
Утилита командной строки vmstat отображает немедленную и среднюю статистику различных системных активностей, включая центральный процессор, память, прерывания и дисковый ввод/вывод. Как источник информации по памяти, эта команда показывает не только использование физической памяти (например, общей/используемой памяти и буфер/кэш памяти), но также статистику виртуальной памяти (например, память загруженных/выгруженных страниц, подгруженную/загруженную).
Источник
Как в 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).
Самым лучшим вариантом в этом случае является обновление ядра и системы в целом до новой версии.
Источник