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