Использование virt-top

virt-top - это утилита, для отображения статистики виртуализированных доменов. Многие параметры командной строки такие же, как и для обычного top.

virt-top использует libvirt, поэтому способен показывать статистику в самых разных системах виртуализации.

В процессе мониторинга виртуальных машин на kvm отображаются следующие параметры:

  • S — состояние виртуальной машины.
  • R — Для запущенных.
  • RDRQ/WRRQ — дисковое i/o.
  • RXBY/TXBY — i/o сети.

Работа с клавишами:

  • 1 - переключимся в режим отображения по процессорам (по ядрам процессора).
  • 2 - просмотрим текущий i/o на различных виртуальных сетевых интерфейсах (vnetX, например).
  • 3 - просмотрим текущий i/o по виртуальным дисковым устройствам.

Для записи в файл:

  • virt-top –csv file.csv - для того, что бы virt-top писал свои данные в файл.
  • virt-top –csv file.csv -d 1 - заставим писать статистику каждую секунду, а не 3.
  • virt-top –csv file.csv -d 1 –script - выключим отображение основного интерфейса virt-top.

Особенный интерес представляет опция --csv-файл.csv, которая позволяет записывать статистику в файл file.csv. Сначала пишется заголовок, показывающий статистику, записываемую в каждом столбце, затем пишется одна строка для каждого обновления экрана. Далее CSV-файл может быть загружен большинством программ для работы с электронными таблицами.

В настоящее время записываемая в файл статистика варьируется в зависимости от версий virt-top (но заголовки столбцов останутся прежними, поэтому вы можете использовать их для обработки CSV-файла).

Не каждая версия virt-top поддерживает вывод в формате CSV - это зависит от того, как была скомпилирована программа (подробности в файле README в исходном дистрибутиве).

Чтобы сэкономить место, вы можете сжать свои CSV-файлы (если ваша оболочка поддерживает эту функцию, например, bash):

virt-top --csv >(gzip -9 > output.csv.gz)

Вы можете использовать аналогичный способ, чтобы разделить CSV-файл на части. В этом примере файл CSV разбивается каждые 1000 строк на файлы с именами output.csv.00, output.csv.01 и т.д.:

virt-top --csv >(split -d -l 1000 - output.csv.)

RHEL 6 предоставляет короткий скрипт на Python под названием «processcsv.py «, который может быть использован для последующей обработки выходных данных CSV. Запуск скрипта производится командой:

virt-top --csv data.csv
processcsv.py < data.csv

Это создает или перезаписывает следующие файлы в текущем каталоге:

global.csv
domain<NNN>.csv

«global.csv» будет содержать глобальные данные. Для каждого домена также будет создан один файл «domain<NNN>.csv» с идентификатором «NNN», содержащий данные для каждого домена.

Подробнее с работой утилиты можно ознакомиться в официальной документации.