В Linux мониторинг памяти производится всеми распространенными системами: Nagios, Zabbix и т.п. В рамках данного материала рассмотрим как можно вручную проверить какой объем оперативной памяти доступен и каким консольные утилиты лучше использовать чтобы получить информацию.
Мониторинг памяти в Linux — основные утилиты для контроля
Прежде всего, vmstat
В выводе утилиты присутствует блок memory со следующими колонками:
swpd — показывает память, выделенную под swap
free — свободная память
buff — зарезервировано системой для тех процессов которые в определенный момент будут нуждаться в памяти
cache — кэшированная память, то что система использовала недавно
Для swap выделяется количество входящих и исходящих блоков, которые обрабатываются в единицу времени:
si — in, количество блоков в секунду которое система считывает
so — out, количество блоков в секунду которое система записывает в swap
Размер блока зависим от формата файловой системы и настроек.
Можно запустить vmstat с ключом -а
vmstat -a
inactive — показывает память, выделенную для процессов и зарезервированную, которая при этом в определенных ситуациях система может использовать
active — используемая процессами
В самой доступной форме информация представлена в выводе free
free -m
shared — общая память для нескольких процессов, которая может задействоваться без системных вызовов ядра, обычно раздел можно увидеть смонтированным в /tmpfs
buff/cache — то же, что в vmstat, но два параметра представлены вместе
Всю информацию по серверу, в т.ч. о расходе оперативной памяти можно получить из top
top
shift + m обеспечит сортировку по памяти
top покажет общее потребление, а также процессы, которые потребляют больше всего RAM. На скриншоте видно, что в системе это прежде всего mysqld.
Второй в списке процесс Docker с идентификатором 118558.
Читайте про утилиту top, а также про то что делать если памяти недостаточно, но увеличить её объем физически нельзя.