Утилита vmstat для мониторинга производительности Unix/Linux

Утилита vmstat для мониторинга производительности Unix/Linux

vmstat показывает информацию о процессах, памяти, страницах, I/O, и о работе процессора. Пользователи vmstat могут указать интервал дискретизации, который дает возможность наблюдать работу системы в близком к реальному времени.

Vmstat инструмент доступен работать на большинстве операционных системах UNIX и Unix-подобных (FreeBSD, Linux или Solaris). Синтаксис и вывод vmstat иногда немного отличается между различными операционными системами.

В своей статье «Утилита vmstat для мониторинга производительности Unix/Linux» я хотел бы рассказать о замечательной утилите vmstat которая нужна для мониторинга производительности в ОС Unix/Linux. Я покажу на готовых примерах как пользоваться данным инструментом. Если vmstat не доступны на вашем сервере, то необходимо установить пакет Sysstat.

Установка vmstat для мониторинга производительности Unix/Linux

Сейчас я расскажу как можно установить данную утилиту на различные Unix/Linux ОС.

Для RedHat’s используйте команду:

# yum -y install sysstat

Для Debian’s используйте команду:

# apt-get install sysstat

После чего, можно настроить немного sysstat, для этого отредактируем файл:

vim /etc/default/sysstat

Приводим строку к виду:

[...]
ENABLED="true"
[...]

И последним действием будет добавление задания в кронтаб:

# vim /etc/cron.d/sysstat

Находим:

5-55/10 * * * * root command -v debian-sa1 > /dev/null && debian-sa1 1 1

Заменяем на:

*/2 * * * * root command -v debian-sa1 > /dev/null && debian-sa1 1 1

После чего, выполняем перезапуск:

# service sysstat restart

Или

# /etc/init.d/sysstat restart

Для остальных дистрибутивов можно установить данную утилиту с исходного кода.

  1. Скачиваем утилиту:
    # cd /usr/local/src && wget http://sebastien.godard.pagesperso-orange.fr/sysstat-11.1.6.tar.gz
  2. Выполним распаковку и перейдем в каталог:
    # tar -xvf sysstat-* && cd sysstat-*
  3. Во-первых, вы можете использовать iconfig (который даст вам гибкость при выборе/вводt настроенных значений для каждого параметра):
    # ./iconfig

    Для помощи, можно использовать команду:

    # ./configure --help
  4. Выполняем сборку, установку Sysstat пакета:
    # ./configure && make && make install
    

    Можно использовать:

    # ./configure --prefix=/usr

    И тогда утилита будет установлена в указанную папку.

Утилита vmstat для мониторинга производительности Unix/Linux

И так, утилита уже установлена на сервере и можно приступать к ее использованию. Сейчас я расскажу как пользоваться этой программой. Приведу несколько наглядных примеров, чтобы понималось лучше.

Простой пример использования vmstat

По умолчанию, vmstat  будет отображать использование памяти (в том числе и своп), как показано ниже:

$ vmstat

vmstat в CentOS

На выходе, vmstat содержит следующие поля:

  • Procs – r: Общее количество процессов, ожидающих запуска.
  • Procs – b: Общее количество занятых процессов.
  • Memory – swpd: Использованная виртуальная память.
  • Memory – free: Свободная виртуальная память.
  • Memory – buff: Память используемая в качестве буфера.
  • Memory – cache:Память используемая в качестве кэша.
  • Swap – si: Память которая использует СВАП (swapped) с диска (за каждую секунду).
  • Swap – so:Память которая использует СВАП (swapped) на диск (за каждую секунду).
  • IO – bi: Блоки «in». Т.е. блоки, посылаемые от устройства (за каждую секунду).
  • IO – bo: Блоки «out». Блоки, посылаемые на устройство (за каждую секунду).
  • System – in:  Количество прерываний в секунду.
  • System – cs: Переключение контекста.
  • CPU – us, sy, id, wa, st: Процессорное время пользователя ( CPU user time), Системное время (system time), время простоя (idle time), время ожидания (wait time).

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

Procs
Procs имеет r и b колонки. Колонка r показывает общее число процессов, ожидающих доступа для процессора. В то время как столбец «b» означает общее количество не процессов в состоянии сна.

Memory
Memory имеет следующие колонки: swpd, free, buff и cache. Эта информация такая же и для команды «free -m». Колонка swpd показать вам, сколько памяти было swapped на файл или диск. Колонка free показывает вам незанятую память (unallocated memory available). Buff колонка показывает сколько памяти в использовании. Колонка cache показать вам как много памяти может быть swapped в файле подкачки или на диска, если есть некоторые приложения которые используют их.

Swap
Swap показать нам, сколько памяти отправлено или получено из системы подкачки. Колонка «si» говорит нам, сколько памяти было перемещено из свопа в реальную памяти в секунду. Колонка «so»говорит нам, сколько памяти было перемещено из реальной памяти в swap.

I/O
Колонка «io» показывает нам сумму входной и выходной активности в секунду в блоках (terms) для чтения и для блока записи. Колонка «bi» говорит нам о количестве блоков, полученных и bo говорит о посланном номере блоков.

System
Система покажет нам количество системных операций в секунду. Число в столбце говорит о системном номере прерываний в секунду. В столбце CS, сообщается нам количество переключений контекста, которые система делает для того, чтобы обработать все задачи.

CPU
Процессор показать нам нагрузку на CPU ресурсы. Колонка «us» говорит о том, как много времени процессор тратит на процессы не в ядре. Колонка «sy» говорят нам о том, как много времени процессор тратит на процессы ядра связаных между собой. В столбце ID говорится о том, как долго процессор простаивает. В столбце «wa», говорится нам, сколько времени процессор ждал операции ввода/вывода (I/O) для завершения, прежде чем сможет продолжить выполнять задачи обработки.

vmstat — Вывод активной (active) и неактивной (inactive) памяти.

По умолчанию vmstat не отображает эту информацию. Используйте опцию «-a», чтобы отобразить активную и неактивную информацию о памяти, как показано ниже. В приведенном ниже примере, есть шесть колонок:

$ vmstat -a
Вывод активной (active) и неактивной (inactive) памяти с vmstat

Вывод активной (active) и неактивной (inactive) памяти с vmstat

Free – Сумма (количество) свободной памяти/время простоя.
si – Загружен за каждую секунду с диска в килобайтах.
so – Выгружена на каждый второй диск в килобайтах.

Примечание: Если вы запустите vmstat без параметров он покажет отчет с момента загрузки системы.

vmstat — Показать количество forks с момента последней загрузки.

Это покажет все системные вызовы, сделанные fork в системе с момента последней загрузки. Это показывает все fork-и, vfork-и, и клон системного вызова.

$ vmstat -f
8972 forks

vmstat – Выполнить каждые Х секунд (для «y» количества раз).

Чтобы выполнить каждые 3 секунды, выполните следующие действия. Вы должны нажать Ctrl-C, чтобы остановить это действие:

$ vmstat 3
vmstat – Выполнить каждые Х секунд (для "y" количества раз).

vmstat – Выполнить каждые Х секунд (для «y» количества раз).

Чтобы выполнить каждые 3 секунды и выполнить это только 13 раз, выполните следующие действия. Вам не нужно нажимать Ctrl-C в этом примере. После выполнения в 13 раз, утилита автоматически остановится:

$ vmstat 2 13

Использование опцию «-w», чтобы увеличить ширину выходных столбцов, как показано ниже. Это даст лучшую читаемость:

$ vmstat -w 1 3

vmstat – Показать метки (timestamp).

При использовании vmstat для контроля использования памяти, было бы неплохо посмотреть метку вместе с каждой позицией. Используйте опцию «-t» для отображения штампа времени (timestamp), как показано ниже:

$ vmstat -t 1 99
vmstat – Показать метки (timestamp)

vmstat – Показать метки (timestamp)

Проверялось это в версии:

$ vmstat -V
procps version 3.2.8

Примечание: Если вы используете старую версию vmstat, опция «-t» могут быть недоступны. В этом случае, используйте метод, который я ранее предоставлял для отображения метки в vmstat.

vmstat – Вывод информации о плите (slab).

Используйте опцию «-m», чтобы вывести данные slab, как показано ниже:

$ vmstat -m

Cache Num Total Size Pages
bridge_fdb_cache 0 0 64 59
libfc_em 0 0 256 15
libfc_fcp_pkt 0 0 256 15
scsi_tgt_cmd 0 0 80 48
nf_conntrack_expect 0 0 240 16
nf_conntrack_ffffffff81b280e0 72 72 312 12
fib6_nodes 7 59 64 59
ip6_dst_cache 7 10 384 10
ndisc_cache 9 15 256 15
ip6_mrt_cache 0 0 128 30
RAWv6 67 70 1088 7
UDPLITEv6 0 0 1024 4
[...]

vmstat – Вывести статистику в виде таблицы.

Можете отобразить вывод vmstat в табличном формате, используя опцию -s, как показано ниже:

$ vmstat -s

На выходе получаем следующие данные:

vmstat – Вывести статистику в виде таблицы.

vmstat – Вывести статистику в виде таблицы.

vmstat – Показать дисплей (display unit).

Вы можете выбрать то, что хотите напечатать. Использование параметр «-S» с последующим k (1000), K (1024), m (1000000), M (1048576) байт. Если вы не выбираете никакую опцию, то vmstat будет использовать параметр K (1024):

$ vmstat -S k

vmstat – Вывести статистику диска.

Используйте опцию «d» для отображения статистики диска, как показано ниже. Это покажет чтение/запись и статистику ввода / вывода  (I/O) диска:

$ vmstat -d
vmstat – Вывести статистику диска.

vmstat – Вывести статистику диска.

vmstat – Показать суммарную статистику по диску.

vmstat может показать статистику диска, если вы хотите. Используйте параметр «-D» для этого:

$ vmstat -D
vmstat – Показать суммарную статистику по диску.

vmstat – Показать суммарную статистику по диску.

vmstat –Показать статистику по разделам на диске.

Для отображения статистики  I / O  на конкретном разделе диска служит опция «-p», как показано ниже:

$ vmstat -p sda1

Получаем:

vmstat –Показать статистику по разделам на диске.

vmstat –Показать статистику по разделам на диске.

vmstat – Вывод информации на экран в MB.

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

$ vmstat -S m
vmstat – Вывод информации на экран в MB.

vmstat – Вывод информации на экран в MB.

или

$ vmstat -S M 1 5

На этом у меня все, тема «Утилита vmstat для мониторинга производительности Unix/Linux» завершена.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.