GrabDuck

Использование оперативной памяти в Linux

:

Когда дело доходит до оптимизации производительности системы Linux оперативная память - один из самых важных факторов на которые нужно обратить внимание. В Linux есть множество утилит для контроля использования такого драгоценного ресурса, как физическая память. Инструменты отличаются друг от друга детализацией мониторинга (например для системы в целом, отдельного процесса или отдельного пользователя) интерфейсом (консольный интерфейс или графический) и режимом работы (интерактивный или пассивный режим)

Ниже представлен небольшой список консольных и GUI утилит для проверки количества свободной и используемой оперативной памяти для платформы Linux.

1. /proc/meminfo

Простейший способ проверить использование оперативной памяти - посмотреть /proc/meminfo. Это автоматически обновляемый файл, который является источником для таких утилит как free, ps и top. Кроме количества свободной и использованной памяти в /proc/meminfo есть все что можно узнать о памяти. Информация о памяти для конкретного процесса находится по адресу /proc/pid/statm или /proc/pid/status.

$ cat /proc/meminfo

15989497899_bb6afede11_b

2. atop

atop - основанный на ncurses интерактивный монитор ресурсов. Он  показывает в динамическом режиме такие системные параметры: CPU, память, нагрузка на сеть, ввод/вывод, ядро. Также есть подсветка цветом при перегрузке системы. Можно посмотреть топ процессов или пользователей по использованию ими ресурсов, таким образом системный администратор может понять какие процессы или пользователи перегружают систему. Из памяти можно отобразить свободную, кэш, буферизированную и виртуальную.

$ sudo atop

16149756146_893773b84c_b

3. free

free - это быстрый и простой способ получить информацию о использовании памяти из /proc/meminfo. Будет показано общее количество и количество свободной физической памяти и файла подкачки, а также буфера ядра.

$ free -h

15988117988_ba8c6b7b63_b (1)

4. GNOME System Monitor

GNOME System Monitor - это приложение с графическим интерфейсом, которое показывает краткую статистику использования системных ресурсов - памяти, процессора, подкачки и сети. Также есть информация по использованию процессора и памяти для каждого процесса.

$ gnome-system-monitor

15988118078_279f0da494_c

5. htop

Htop - основанный на ncurses монитор процессов, который показывает использование процессора и памяти для каждого процесса по отдельности в реальном времени. Здесь можно посмотреть  количество резидентной памяти, общий объем памяти для программы, размер библиотек, размер страниц, и количество памяти для всех запущенных процессов. Вы можете прокручивать список процессов по горизонтали и по вертикали.

$ htop

8599814378_de071de408_c (1)

 

6. KDE System Monitor

Как и у Gnome у KDE есть свое решение для мониторинга ресурсов. KDE System Monitor очень похож по функционалу на свой аналог в Gnome. Есть просмотр статистики использования системных ресурсов, а также отображение потребления памяти и процессора напротив каждого процесса.

15991397329_ec5d786ffd_c

7. memstat

Утилита memstat полезна для определения какой исполняемый файл, процесс или библиотека использует много оперативной памяти. Утилита определяет количество использованных ресурсов по pid процесса.

$ memstat -p pid

16175635905_1880e50055_b

8. nmon

Nmon - ncurses утилита для тестирования системы. Можно тестировать центральный процессор, память, диск, ввод\вывод, ядро, файловую систему и сетевые ресурсы в интерактивном режиме. Что касается памяти то можно посмотреть общее количество, количество свободной памяти, размер раздела подкачки, кэширование и виртуальную память. И все это в реальном времени.

$ nmon

15989760117_30f62f4aba_b

9. ps

Команда ps может показать использование памяти для каждого процесса в реальном времени. Показывается процент используемой памяти (MEM), общее количество виртуальной памяти (VSZ) общий объем физической памяти (RSS) Вы также можете отсортировать список процессов с помощью опции --sort. Например, для сортировки по убыванию rss используйте:

$ ps aux --sort -rss

15989881547_ca40839c19_c

10. smem

Команда smem позволяет измерить количество памяти используемое различными процессами и пользователями на основе информации взятой из /proc. Она показывает количество ресурсов в процентном соотношении. Данные могут быть экспортированы в виде диаграмм, таких как круговые графики:

$ sudo smem --pie name -c "pss"

15614838428_eed7426cfe_c (1)

11. top

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

15989760047_eb8d51d9f2_c

12. vmstat

Утилита командной строки vmstat отображает статистические данные по использованию CPU, памяти, прерываний и ввода вывода на диск. Команда показывает не только физическую память (всего, использовано, кэшировано, буферизировано), но и статистику по виртуальной памяти (количество страниц в подкачке и т д)

$ vmstat -s

15988236860_3f142008d2_b (1)