— одна из утилит, которые должны быть использованы в первую очередь (после vmstat
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