Обобщенный ответ: « Нет, невозможно ». Программа, работающая на виртуальной машине, работает с виртуальным оборудованием. Цель виртуализации - абстрагировать работающие программы от физического оборудования, в то время как доступ к физическому оборудованию необходим для измерения энергопотребления. Например, без включенной привязки к процессору маловероятно, что PowerAPI сможет собирать полезную статистику из-за миграций виртуальных процессоров. Временной интервал, позволяющий запускать несколько виртуальных ЦП на одном физическом ЦП, является еще одним фактором, о котором следует помнить. Излишне говорить об энергии, потребляемой ОЗУ, контроллерами ввода-вывода, запоминающими устройствами и т. Д. c.
Ответ по существу: « Нет, невозможно ». Авторы рукописи используют библиотеки PowerAPI для сбора статистики процессора и агент мониторинга для подсчета байтов, передаваемых по сети. HWP C -сенсор, на который опирается PowerAPI, имеет четкое требование:
"отслеживаемые узлы запускают Linux дистрибутив, который не размещен в виртуальной среде "
Кроме того, авторы подчеркивают, что они не могли измерить абсолютные значения энергопотребления, а использовали процент для сравнения определенных классов и методов Java, чтобы предположить причину утечек энергии при интенсивной загрузке процессора. рабочие нагрузки.
Что касается сетевого ввода-вывода, то количество байтов, используемых для оценки энергопотребления в их модели, значительно различается между сетевым интерфейсом, выставленным для виртуального гостя, и аппаратным портом хоста в сети со стеком SDN в между.