vmstat — одна из встроенных в GNU/Linux консольных утилит для диагностики проблем производительности, выводит информацию о процессах, блоках IO, активности процессора, памяти и раздела подкачки (swap).
vmstat выводит результат в шесть колонок:
procs (процессы)
- r – количество процессов в очереди на выполнение процессором (если значение > 0 – налицо нагрузка на процессор);
- b – количество процессов, ожидающих операций I/O (если значение > 0 – налицо нагрузка на диски и/или файловую систему).
memory (память)
- swpd – количество блоков, перемещённых в swap;
- free – свободная память (без учёта памяти, занятой буферам и кэшом, тоже, что выводит free в колонке Mem:free);
- buff – буферы памяти (см. там же);
- cache – кеш (см. там же);
swap (раздел подкачки)
- si (swap in) – количество блоков в секунду, которое система считывает из раздела или файла swap в память;
- so (swap out) – и наоборот, количество блоков в секунду, которое система перемещает из памяти в swap.
IO (диск I/O)
- bi (blocks in) – количество блоков в секунду, считанных с диска;
- bo (blocks out) – количество блоков в секунду, записанных на диск;
system (система/ядро)
- in (interrupts) – количество прерываний в секунду;
- cs (context switches) – количество переключений между задачами;
cpu (процессор)
- us (user time) – % времени CPU, занятый на выполнение “пользовательских” (не принадлежащих ядру) задач;
- sy (system time) – % времени CPU, занятый на выполнение задач ядра (сеть, I/O задачи, прерывания и т.п.);
- id (idle) – % времени в бездействии (ожидании задач);
- wa – % времени CPU, занятый на ожидание операций I/O;
Опции vmstat:
- -a – переключение колонки memory в active/inactive значение вместо buff/cache (active – память, реально используемая в данный момент определённым процессом, inactive – память, выделенная ранее какому-то процессу, которого уже нет);
- -f – информация о количестве системных вызовов fork(2), vfork(2) и rfork(2), выполненных с момента старта системы, и количество страниц виртуальной памяти, задействованных каждым из них;
- -m – использование динамической памяти ядра, выделенной с использованием malloc(9);
- -n – задаёт интервал выполнения в секундах;
- -s – изменение вида отображение результатов (в две колонки);
- -d – статистика использования дисков;
- -w – увеличивает визуальный размер поля для больших объемов;
- -p [partition name] – с указанием имени раздела, информация по конкретном разделу (read/writes);
- -S [k | K | m | M] – с указанием в чем выводить информацию (килобиты, килобайты, мегабиты, мегабайты соответственно);
- -V – версия vmstat.
Кроме того, после указания опций можно задать две цифры, интервал между выполнением и количество повторов, например:
vmstat 2 10vmstat будет выполнен 10 раз с интервалом в 2 секунды.