В операционных системах Linux существует множество инструментов для мониторинга производительности и состояния системы. Одной из наиболее популярных и мощных утилит является vmstat, которая предоставляет обширную статистику по использованию виртуальной памяти, состоянию системных процессов, памяти, подкачке, количеству прерываний, активности ввода-вывода на уровне блочных устройств, а также активности диска и центрального процессора. Vmstat играет важнейшую роль в мониторинге и диагностике производительности Linux-системы.
Что такое vmstat
vmstat (Virtual Memory Statistics) — это встроенная утилита Linux, которая позволяет отслеживать ключевые параметры системы в реальном времени. С ее помощью можно получить информацию о:
- Использовании виртуальной памяти.
- Активности процессов.
- Загрузке оперативной памяти.
- Операциях c подкачкой (swap).
- Прерываниях и контекстных переключениях.
- Активности дисков.
- Загрузке центрального процессора (CPU).
Базовый синтаксис vmstat.
Базовый синтаксис команды vmstat следующий:
vmstat [options] [delay[count]]
- [options]: опции для изменения вывода.
- [delay[count]]. — установка задержки и частоты обновления информации.
Чтобы начать использовать vmstat, достаточно ввести команду в терминале:
vmstat
Однако для более эффективного мониторинга рекомендуется использовать дополнительные опции.
Использование vmstat
Рассмотрим основные опции и способы использования vmstat для получения необходимой информации.
vmstat

Расшифровка полей вывода vmstat следующая:
- procs: запущенные процессы (
r
— выполняемые,b
— заблокированные). - memory: статистика использования памяти.
- swap: сведения об использовании файла подкачки.
- io: активность ввода-вывода.
- system: системные прерывания и переключения контекста.
- cpu: нагрузка на центральный процессор.
Основные опции vmstat
- -a: отображение активной и неактивной памяти.
- -d: статистика по дискам.
- -p: информация о конкретном разделе диска.
- -s: сводная информация о памяти.
- -t: добавление временной метки к каждому отчету.
- -S: изменение единиц измерения (например, мегабайты).
Примеры использования vmstat
Отображение активной и неактивной памяти.
По умолчанию неактивная и активная память не отображаются. Для их просмотра используйте опцию -a
:
vmstat -a

Изменение единиц измерения
По умолчанию vmstat выводит данные в килобайтах. Для отображения информации в мегабайтах используйте опцию -S M
:
vmstat -a -S M

Определение количества fork
Для подсчета количества созданных процессов с момента загрузки системы используйте опцию -f
:
vmstat -f

Проверка состояния диска
Для получения информации о производительности дисков используйте опцию -d
:
vmstat -d

Для получения общей статистики по всем дискам, используется опция -D:
vmstat -D

Получение полной информации о памяти
Для получения подробной информации о состоянии памяти, процессорах, времени загрузки и других системных показателей в Linux можно воспользоваться утилитой vmstat с параметром -s
. Этот параметр позволяет вывести данные, аналогичные тем, что содержатся в /proc/meminfo
, но с дополнительными возможностями настройки.
Чтобы получить полную картину использования памяти, процессорной активности и событий системы, выполните следующую команду:
vmstat -s -S M

Интерпретация вывода:
- Total memory: Общая доступная память.
- Used memory: Объем занятой памяти.
- Active memory: Память, активно используемая запущенными процессами.
- Inactive memory: Недавнее использование памяти, которое может быть освобождено при необходимости.
- Free memory: Свободная память, доступная для использования.
- Buffer memory: Память, выделенная под буферизацию.
- Swap cache: Размер области подкачки, использующейся для ускорения доступа к часто запрашиваемым данным.
- Total swap: Общий объем свопа.
- Used swap: Занятый объем свопа.
- Free swap: Свободный объем свопа.
- User cpu ticks: Время, затраченное на выполнение пользовательских процессов.
- System cpu ticks: Время, затраченное на выполнение системных процессов.
- Idle cpu ticks: Время простоя процессора.
- IO-wait cpu ticks: Время ожидания ввода-вывода.
- IRQ cpu ticks: Время обработки аппаратных прерываний.
- Softirq cpu ticks: Время обработки программных прерываний.
- Stolen cpu ticks: Время, украденное гипервизором у гостевой системы.
- Pages paged in/out: Количество страниц, перемещённых в память и из неё.
- Swapped in/out: Количество страниц, перемещённых в область подкачки и обратно.
- Interrupts: Общее количество обработанных прерываний.
- Context switches: Переключения контекста между процессами.
- Boot time: Время загрузки системы.
- Forks: Количество процессов, созданных с момента загрузки.
Мониторинг нагрузки на систему
Чтобы наблюдать за состоянием системы в реальном времени, используйте команду с задержкой:
vmstat 2
Результат будет обновляться каждые 2 секунды:

Для автоматического прекращения вывода после определенного числа итераций используйте опцию [count]
:
vmstat 2 5

Результат будет обновляться каждые 2 секунды, но прекратится после 5 итераций.
Использование отметки времени.
Одной из полезных функций утилиты vmstat в Linux является возможность добавления временных меток к выводу. Это особенно удобно при длительном мониторинге системы, так как позволяет точно отслеживать, когда были собраны данные.
Чтобы добавить временную метку, используйте опцию -t
или --timestamp
. Например:
vmstat -t

В результате в выводе появится столбец timestamp
, который показывает точное время сбора данных.
Если вы хотите мониторить систему с определенным интервалом и при этом добавлять временные метки, используйте комбинацию опций -t
с параметрами задержки. Например:
vmstat -t 2 5

В этом примере:
- 2 — интервал обновления данных (2 секунды)
- 5 — количество обновлений перед завершением команды
- -t — добавление временной метки
Заключение.
Vmstat — это универсальная утилита для мониторинга систем Linux, которая предоставляет исчерпывающие данные о производительности системы. Ее гибкость и простота использования делают ее незаменимой для системных администраторов и инженеров по эксплуатации.
Was this helpful?
0 / 0