Эффективное системное администрирование требует пристального внимания к использованию ресурсов, и мониторинг памяти является критически важной частью этого процесса. Когда в системе не хватает памяти, ее производительность может значительно ухудшиться. Linux предоставляет несколько инструментов для отслеживания потребления памяти, и одним из самых универсальных является vmstat.
Введение в vmstat
Команда vmstat (статистика виртуальной памяти) — это мощный монитор использования памяти, который сообщает информацию о процессах, памяти, подкачке, блочном вводе-выводе, ловушках и активности ЦП. Запуск ее без аргументов предоставляет моментальный снимок текущего состояния системы с момента последней загрузки.
pete@icebox:~$ vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
1 0 0 396528 38816 384036 0 0 4 2 38 79 0 0 99 0 0
Вывод организован в несколько столбцов. Давайте разберем, что означает каждое поле.
Procs (Процессы)
r: Количество готовых к выполнению процессов, ожидающих времени выполнения.b: Количество процессов в непередаваемом сне, обычно ожидающих ввода-вывода.
Memory (Память)
swpd: Объем используемой виртуальной памяти (в килобайтах).free: Объем свободной памяти (в килобайтах).buff: Объем памяти, используемый в качестве буферов.cache: Объем памяти, используемый в качестве кэша страниц.
Swap (Подкачка)
si: Объем памяти, подкачанной с диска в секунду (в килобайтах). Высокие значения указывают на нехватку физической памяти в системе.so: Объем памяти, выгруженной на диск в секунду (в килобайтах). В идеале это значение должно быть равно нулю.
IO (Ввод-вывод)
bi: Полученные блоки от блочного устройства (блоки/с).bo: Отправленные блоки на блочное устройство (блоки/с).
System (Система)
in: Количество прерываний в секунду, включая тактовые.cs: Количество переключений контекста в секунду.
CPU (ЦП)
Это проценты от общего времени работы ЦП.
us: Время, затраченное на выполнение кода пользователя (user time).sy: Время, затраченное на выполнение кода ядра (system time).id: Время простоя.wa: Время, затраченное в ожидании ввода-вывода.st: Время, украденное у виртуальной машины (для виртуализированных сред).