Мне было интересно, есть ли какие-либо инструменты, которые можно использовать внутри виртуальной машины и которые знают о работе в виртуализированной среде. Использование верхней утилиты Linux может немного ввести в заблуждение без учета ограничений на настройки ЦП и памяти. Может быть, с помощью VMTools можно будет собрать какие-нибудь интересные данные?
Единственный способ получить эти (и другие) счетчики производительности из гостевой системы VMware - это использовать SDK VMGuestLib, поставляемый с vmware-tools.
Я написал оболочку python для этой библиотеки под названием python-vmguestlib и инструмент vmguest-stats для доступа к этим счетчикам. И теперь есть три плагина Dstat для корреляции этих счетчиков производительности с другими системными ресурсами. Это очень просто:
dstat -c –vm-cpu -m –vm-mem –vm-mem-adv
Вы можете найти оболочку python, инструмент vmguest-stats и Dstat по адресу:
Отзывы и улучшения приветствуются!
VMware сделала доступным расширение Perfmon, которое позволяет гостевой ОС Windows видеть счетчики производительности хоста ESX - вы можете прочитать об этом в это сообщение в блоге Скотта Драммонда из VMware Вот.
В комментариях указано, что для Linux пока нет эквивалента, но если у вас есть под рукой разработчик, гостевой SDK можно использовать для предоставления тех же данных в гостевом компьютере Linux.
Нет, на данный момент производительность хоста недоступна для гостя.
Если вы собираетесь проводить мониторинг производительности, вам понадобятся три статистики:
Некоторые из них доступны на гостевом уровне (например, скорость процессора хоста), но не другая статистика.
Весь смысл виртуализированной машины в том, что она не знает, что это виртуальная машина. Задача гипервизора состоит в том, чтобы полностью абстрагировать базовое оборудование от виртуальной машины, создавая у виртуальной машины впечатление, что она работает на физическом оборудовании. Мы, как пользователи (думаю, что Tron) знаем, что машина является виртуальной машиной, но ядро виртуальной машины (за исключением некоторых оптимизаций, специально предназначенных для работы в качестве виртуальной машины) не знает о том, что это срез.
При этом, возможно, можно будет опросить HV по протоколу SNMP (это, вероятно, будет адрес шлюза для типичных виртуальных машин) на предмет определенных битов информации, касающейся HV, и экстраполировать это. К сожалению, у меня нет доступа к гипервизору, который я могу использовать snmpwalk, поэтому у меня нет возможности увидеть, что доступно.