Главная >> Инструкции >> Как узнать оперативную память Linux

Как узнать оперативную память Linux

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

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


Содержание статьи

Как узнать оперативную память Linux

1. Файл /proc/meminfo

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

cat /proc/meminfo

2. atop

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

sudo apt install atop

И только потом можно использовать:

sudo atop

 

3. free

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

free -h

4. Системный монитор Gnome

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

gnome-system-monitor

5. htop

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

htop

6. KDE System Monitor

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

7. memstat

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

sudo apt install memstat

memstat -p <PID>

8. nmon

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

sudo apt install nmon

Чтобы утилита отобразила память поле её запуска надо нажать клавишу M:

nmon

9. ps

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

ps aux --sort -rss

10. smem

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

sudo apt install smem

Данные могут быть экспортированы в виде диаграмм, таких как круговые графики:

sudo smem --pie name -c "pss"

11. top

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

12. vmstat

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

vmstat -s

13. dmidecode

Утилита dmideocde позволяет просматривать информацию об аппаратном обеспечении подключенном к материнской плате компьютера, в том числе и об оперативной памяти. Это чуть ли не единственный способ узнать количество слотов для памяти, количество установленных планок, а также здесь отображается напряжение питания и частота оперативной памяти. Для просмотра информации именно про память выполните:

sudo dmidecode -t 17

14. lshw

Команда lshw тоже позволяет просматривать информацию об оборудовании компьютера, выводит практически аналогичные данные, что и dmidecode, только по русски и в более удобном формате:

sudo lshw -class memory

Выводы

Из этой статьи вы узнали множество способов как узнать оперативную память Linux, как видите, существует просто огромное количество методов в зависимости от ваших потребностей. Я, обычно, смотрю свободную память с помощью утилиты free. А какие инструменты используете вы? Напишите в комментариях!

9 комментариев к “Как узнать оперативную память Linux”

  1. Возможно не совсем в тему. Подскажите пожалуйста почему Linux Mint 17, может не видеть оперативную память? В биосе определяется 2 Гб, Win XP, установленная на этом же компьютере, тоже определяет 2 Гб, Mint, упорно показывает 1. В какую сторону думать?

    Ответить
  2. Здравствуйте! Почему используется виртуальная память, когда ещё физической (озу) достаточно?
    В sysctl.conf добавил
    vm.swappiness = 10
    vm.vfs_cache_pressure = 1000
    ОЗУ 8ГБ, при 1-1,5ГБ уже используется swap, хотя должен при 10% свободной. Linux Debian 8. На Ubuntu Server 14.04 LTS эти же настройки работали.

    Ответить
  3. Сервер на debian 14.04
    на борту MySQL и nginx с виртуальными хостами
    Ужасно тормозят сайты использующие локальную БД (одна страница может открываться до 60 секунд)
    При таком раскладе это нормально (дело в нехватки ОЗУ? ведь в кэше 2549976 kB) или ковырять конфиги MySQL?

    $ cat /proc/meminfo

    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

    $ free -h

    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

    Ответить

Оставьте комментарий