Linux: описание утилиты vmstat

Автор: | 10/07/2014
 

linux_logovmstat — одна из утилит, которые должны быть использованы в первую очередь (после top, конечно), при проблемах с сервером (высокий Load Average и т.д.).

Он позволяет вывести информацию об использовании памяти, дисков, процессора.

Простой запуск без ключей будет выглядеть так:

# vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0 186888 179960  28156 405052    7    7    24    28   18   24  3  1 95  1  0

Результат разбит на шесть колонок — procs (процессы), memory (память), swap, io (диск I/O), system (система/ядро), CPU (процессор).

Информация в результатах 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.

В идеале, значение обоих должно быть около нуля или, по крайней мере, не более 10 блоков/секунду.

IO

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 5

vmstat будет выполнен 5 раз с интервалом в 2 секунды.

Ссылки по теме

http://technotes.skycover.ru (хорошо описана память в Linux)

http://linuxcommand.org

http://www.lazysystemadmin.com