Hyper-v. Отставание времени в гостевой ОС

Клиет компани, где я тружусь админом, пожаловался на то, что  в логах его виртуальной машине очень много записей типа:

событий «Системное время изменено» (источник — Kernel-General, код события — 1).

Очень много это 2 записи в 5 мин примерно, а то и чаще.

Так вот это из за некой несовместимости Hyper-V c процессорами Xeon на архитектуре Nehalem. Точней с энергосбережением. В KB MS говорится о Intel Xeon, Intel Xeon 5500 (Nehalem) или Intel Xeon 7560 (Beckton) (OctaCore), я же наблюдал это на E5630 @ 2.53GHz.

В соответствии с заявлениями компании Intel, процессоры Nehalem будут производиться до конца 2009 года. В начале 2010 компания планирует показать первые Westmere процессоры, основанные на 32-нм технологическом процессе.

Решение этой проблемы тут, тут, на хабре, на MSDN и вот, что посоветовал товарищ из MS:

…отключение C-states там же в HKLM\System\CurrentControlSet\Control\Processor

Это можно сделать командой:

reg add HKLM\System\CurrentControlSet\Control\Processor /v Capabilities /t REG_DWORD /d 0x0007e666

(без ребута не работает)

Intel(R) C-STATE Technology —  Все современные процессоры имеют развитые технологии сокращения потребления электроэнергии. Всё потребляемое процессором электричество рассеивается в виде тепла, его количество прямо пропорционально тактовой частоте и квадрату напряжения питания. Поэтому все технологии управления энергопотреблением способны управлять не только его тактовой частотой, но и напряжением питания.

В BIOS, включение этого режима (называемого Enhanced Halt State или C1E) для современных процессоров позволяет снизить энергопотребление в режиме простоя (за счет отключения некоторых неиспользуемых частей процессора, снижения напряжения питания и частоты). Чтобы автоматически определить и, по возможности, задействовать эту функцию установите значение Auto (рекомендуемое значение). Если же по каким-то причинам вы не хотите использовать режим пониженного энергопотребления процессора, выберите значение Disabled.

Впервые этот механизм появился в ревизии E0 ядра Prescott, одновременно с технологией Thermal Monitor 2.

UPD: 02.08.2011

Стало интересней:

На хост машине около 30 виртуалок, но малонагруженных. При лимитах ВМ в RAM 500mb, CPU 1 core 10 reserv 35 limit, на сервере Xeon E5630 2.53GHz, поблема сохранилась после изменения реестра и ребута, а утилита нагрузки(super_pi_mod-1.5) CPU падает. Если лимиты RAM 500mb, CPU 1 core 100 reserv 100 limit,  то всё ок. Отключая сервис Hyper-V time sync services,  в логах нет сообщений и время реально отстаёт.  Вспомнилась проблема у клиента с остановленным Hyper-V time Sync services. Мы ему синк с внешним источником настроили. Это не наш вариант. Остаётся накатить все обновления и посмотреть в BIOS.

 

P.S Не читайте русский хелп на MS. Я не часто правлю, реестр и не помню, как выглядят команды редактирования реестра. Вот что на русскоязычном KB написали:

REG добавить HKLM\System\CurrentControlSet\Control\Processor /v возможности /t REG_DWORD /d 0x0007e666

А вот на заморском языке.

По теме:

http://www.probios.ruhttp://www.nix.ruhttp://www.polikom.ru

Об авторе Alex

Работаю Администратором. В основном Windows. Специализируюсь на Hyper-V
Запись опубликована в рубрике Hyper-V, Windows, Администрирование с метками . Добавьте в закладки постоянную ссылку.

1 комментарий: Hyper-v. Отставание времени в гостевой ОС

  1. lolextex21 говорит:

    Вижу система хорошо приспособлена к тем стресовым ситуацыям которые случаються при загрузке нескольких програм.

Добавить комментарий