2

Я использую библиотеку VMware Guest SDK, чтобы определить время готовности процессора виртуальной машины, на которой запущено мое приложение.

Согласно документации VMware, метод VMGuestLib_GetCpuStolenMs из vmGuestLib предоставляет это значение:

Время (в мс), в течение которого виртуальная машина работала, но не была запланирована.

Однако, если я планирую время готовности ЦП для той же виртуальной машины в клиенте vSphere, я получаю другие значения. Например, в то время как я получаю время готовности ЦП от 0 до 22 мс в vSphere Client с интервалом в 20 с, я получаю украденное время от 550 до 650 мс, используя библиотеку VMware Guest SDK для (примерно) того же промежутка времени.

Мой расчет времени кражи процессора за последние 20 секунд выглядит следующим образом (псевдокод):

oldStolenMs = vmLib.getCpuStolenMs()
sleep_in_seconds(20)
newStolenMs = vmLib.getCpuStolenMs()

stolenMs = newStolenMs - oldStolenMs
// additionally I verify that the elapsed time of the VM is indeed 20s

0