В KVM есть эквивалент WarpDrivePercentage

VirtualBox имеет небольшую известную функцию WarpDrivePercentage. Это позволяет вам запускать виртуальную машину с большей или меньшей скоростью (с некоторыми оговорками). У нас есть тестовая среда, которая имитирует Set Top Boxes в KVM, и такая функция может потенциально позволить нам выполнить еще много тестов.

1
задан 7 June 2017 в 17:35

2 ответа

Жесткое решение:

Я не вижу встроенного параметра в документах KVM, но вы можете использовать системное время. Сначала проверьте, какие часы использует ваша установка KVM:

$ cat /sys/devices/system/clocksource/clocksource0/current_clocksource

Скорее всего, это kvm-clock. Если это так, у вас есть несколько вариантов. kvm-clock live обновляет свое время, используя следующую структуру:

struct pvclock_vcpu_time_info { u32 version; u32 pad0; u64 tsc_timestamp; u64 system_time; u32 tsc_to_system_mul; s8 tsc_shift; u8 flags; u8 pad[1]; } __attribute__((__packed__));

Вы можете написать обертку на хосте, чтобы перехватить это и выпустить ускоренную версию времени. Вы также можете перестроить kvm-clock самостоятельно, заменив pvclock_vcpu_time_info на пользовательскую логику, чтобы вывести время UTC с добавленной временной дельта, как libvirt делает в своей переменной смещения <clock offset="variable" adjustment="123456" />

Жесткое решение:

Продолжайте использовать virtualbox. Или xen имеет смещение переменной из "xen.independent_wallclock = 1", где вы можете настроить свое собственное время.

Самое простое решение:

Спросите, почему вам нужно ускорить это время? Я не могу придумать массу причин, которые понадобится для Set Top box. И это, скорее всего, будет легче обрабатывать в вашем коде с помощью фальшивой обертки времени, чем на уровне ОС. Вы испортили NTP, журналы и тонну других вещей, возившись со временем.

1
ответ дан 18 July 2018 в 12:00

Жесткое решение:

Я не вижу встроенного параметра в документах KVM, но вы можете использовать системное время. Сначала проверьте, какие часы использует ваша установка KVM:

$ cat /sys/devices/system/clocksource/clocksource0/current_clocksource

Скорее всего, это kvm-clock. Если это так, у вас есть несколько вариантов. kvm-clock live обновляет свое время, используя следующую структуру:

struct pvclock_vcpu_time_info { u32 version; u32 pad0; u64 tsc_timestamp; u64 system_time; u32 tsc_to_system_mul; s8 tsc_shift; u8 flags; u8 pad[1]; } __attribute__((__packed__));

Вы можете написать обертку на хосте, чтобы перехватить это и выпустить ускоренную версию времени. Вы также можете перестроить kvm-clock самостоятельно, заменив pvclock_vcpu_time_info на пользовательскую логику, чтобы вывести время UTC с добавленной временной дельта, как libvirt делает в своей переменной смещения <clock offset="variable" adjustment="123456" />

Жесткое решение:

Продолжайте использовать virtualbox. Или xen имеет смещение переменной из "xen.independent_wallclock = 1", где вы можете настроить свое собственное время.

Самое простое решение:

Спросите, почему вам нужно ускорить это время? Я не могу придумать массу причин, которые понадобится для Set Top box. И это, скорее всего, будет легче обрабатывать в вашем коде с помощью фальшивой обертки времени, чем на уровне ОС. Вы испортили NTP, журналы и тонну других вещей, возившись со временем.

1
ответ дан 24 July 2018 в 19:53
  • 1
    Спасибо за предложения. Более легкое решение для использования VirtualBox - это то, что я изучаю, текущая система использует KVM, поэтому будет конвертировать около 20 серверов UCS. Это будет полезно для нас, поскольку все тесты написаны для работы на аппаратных средствах, но в основном выполняются на виртуальных станциях VM для обеспечения масштабируемости. Многие тесты не требуют внешних интерфейсов, поэтому & quot; должен & quot; быть в состоянии быть ускоренным, пока таймеры и события стреляют в правильные времена относительно. UCS находятся под управлением обычного виртуального исполнения STB, и это один из способов, с помощью которого мы пытаемся получить от них больше. – Martin 8 June 2017 в 12:07

Другие вопросы по тегам:

Похожие вопросы: