Из RSS лент прилетела ссылка на сайт, на котором я отковырял огромнейшую кучу утилит, которые можно использовать для упрощения работы с KVM. В дальнейшем я обязательно опишу необходимые.
Сегодня я начну с virt-top.
Для чего он нужен. Virt-top позволяет оперативно определить, кто потребляет большое количество дискового i/o, сетевого i/o. Определить сколько памяти потребляет виртуалка мы не сможем, т.к. KVM выделяет виртуальной машине память сразу. С другой стороны, если вы используете динамические лимиты памяти — то virt-top — идеальный способ определить, какой именно виртуальный сервер в данный момент потребляет память выше гарантированной.
В Debian Lenny с установкой virt-top нам придётся немного помучаться:
debian-kvm:~# wget http://ftp.us.debian.org/debian/pool/main/v/virt-top/virt-top_1.0.4-2_amd64.deb
debian-kvm:~# dpkg -i virt-top_1.0.4-2_amd64.deb
(естественно, что это для amd64)
Запускаем командой virt-top
Нашему взгляду открывается уже приевшийся интерфейс top-like утилит.
Колонка S — состояние виртуальной машины. Для запущенных — R.
Колонки RDRQ/WRRQ — дисковое i/o
Колонки RXBY/TXBY — i/o сети
Теперь нажмём на клавиатуре цифру 1. Мы переключимся в режим отображения по процессорам (по ядрам процессора). Здесь мы можем посмотреть какие ядра физического процессора использует отдельно взятый VDS. Значение вида 6.0=# указываем именно на это. Если символа # нет — значит виртуальная машина не использовала данное ядро последние 3 секунды (время обновления экрана virt-top по умолчанию).
Нажмем цифру 2 и просмотрим текущий i/o на различных виртуальных сетевых интерфейсах (vnetX, например).
Нажмём цифру 3 и просмотрим текущий i/o по виртуальным дисковым устройствам (напоминаю, что несколько VDS могут одновременно использовать одно виртуальное устройство ;) )
Ну и приятное дополнение для тех, кто в данный момент занят построением облачных решений на основе KVM+libvirtd или Xen+libvirtd. virt-top умеет самостоятельно писать статистику в csv файл (вы же знаете что потом с ними делать в биллинге).
Для того, что бы virt-top писал свои данные в файл — его нужно запустить с примерно следующими параметрами:
debian-kvm:~# virt-top --csv file.csv
Все значения, которые virt-top нам покажет — будут записаны в csv файл, из которого потом можно рассчитывать затраты ресурсов VDSками.
Заставим писать статистику каждую секунду, а не 3:
debian-kvm:~# virt-top --csv file.csv -d 1
Ну и выключим отображение основного интерфейса virt-top (удобно для запуска записи в csv из скриптов):
debian-kvm:~# virt-top --csv file.csv -d 1 --script
Ну и немного ещё более позитивной информации.. virt-top, как и любая libvirtd утилита (virsh, virt-manager) — умеет подключаться к удаленным хостам. Мы можем создать в домашнем каталоге пользователя файл .virt-toprc (nano /root/.virt-toprc вероятнее всего). А туда уже вписывать различные значения. В т.ч. и указать хост при помощи директивы connect.
Если вы собираетесь использовать данный инструмент для чего то большого, чем быстрого просмотра статистики в real-time — обязательно почитайте
debian-kvm:~# man virt-top
а ссылкой из RSS поделиться?
http://virt-tools.org/about/