Назад | Перейти на главную страницу

Странные колебания времени на гостевой системе XEN linux

У меня странная проблема с некоторыми серверами здесь на работе. У нас есть несколько гостей XEN, текущее время которых меняется.

# date;date;date;date;date;date;date
Thu Feb 25 16:00:40 PHT 2010
Thu Feb 25 16:00:48 PHT 2010
Thu Feb 25 16:00:40 PHT 2010
Thu Feb 25 16:00:48 PHT 2010
Thu Feb 25 16:00:40 PHT 2010
Thu Feb 25 16:00:48 PHT 2010
Thu Feb 25 16:00:40 PHT 2010

Как видно выше, время колеблется между 16:00:48 и 16:00:40, что для нас проблематично, поскольку вычисление разницы во времени в некоторых из наших скриптов становится неточным (например, разница в несколько миллисекунд становится немного меньше. вторые отличия, а иногда и отрицательные отличия).

Проблемные серверы - это гости Linux на хосте XEN. Время колеблется в гостевых системах, но это нормально для самого хоста. Я исключил ntpd, так как это происходит независимо от того, запущен ntpd или нет в гостевых системах.

Гость находится на полной виртуализации. Время и на хосте, и на госте совпадает, за исключением того, что время гостя колеблется примерно на несколько секунд от времени хоста, а время хоста не меняется.

/ proc / sys / xen / independent_wallclock имеет значение 0 на хосте и не существует в гостевой системе. Служба NTPD была остановлена ​​и отключена. Установка значения 1 для independent_wallclock на хосте не имеет никакого эффекта (то есть время в гостевой системе все еще колеблется). Хотя мне не удалось перезапустить гостя, так как это производственный сервер. Возможно, смогу сделать это на выходных.

Есть идеи, что проверить и как решить эту проблему?


После долгого поиска и тестирования параметры ядра, которые работали идеально:

divider=10 clocksource=acpi_pm

я использовал эта страница чтобы определить, какие параметры лучше всего подходят для используемой нами ОС. Информация применима к VMware, но удивительным образом применима и к XEN. У нас также был повторно включен ntpd, поэтому у нас есть синхронизация рабочего времени.

Возможный ответ может зависеть от нескольких деталей. Это полная виртуализация или паравиртуализация?

Если это гость паравиртуализации, проверьте вывод:

cat /proc/sys/xen/independent_wallclock

В гостевой и в дом0. Также проверьте время в dom0.

Если время в dom0 правильное и / proc / sys / xen / independent_wallclock равно 0 как в dom0, так и в domU, тогда время в гостевой системе тоже должно быть правильным. Не пытайтесь запустить ntpd ни в одной из гостей, пусть dom0 держит время.

Однако я не уверен в полной виртуализации (думаю, / proc / sys / xen / independent_wallclock не будет доступен в domU, но вы все равно можете проверить dom0).

типичный временной дрейф. вам необходимо настроить NTP, а также предоставить виртуальной машине правильную строку cmd ядра

https://access.redhat.com/solutions/27865