← Zurück

Время в виртуальной машине

Кто-нить сталкивался с такой проблемой - роботы работают на виртуальных машинах (vmware, windows xp). В начале дня синхронизируем время в xp, к концу торгов часы отстают минуты на 2-3 от реального времени, притом что если выходной и робот не работает - то отставания никакого нет. В чем может быть причина?

War dieses Thema hilfreich?

Thema teilen

Kommentare (15)

Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen

MenDel
MenDel

Eskra: Кто-нить сталкивался с такой проблемой - роботы работают на виртуальных машинах (vmware, windows xp). В начале дня синхронизируем время в xp, к концу торгов часы отстают минуты на 2-3 от реального времени, притом что если выходной и робот не работает - то отставания никакого нет. В чем может быть причина?

Причину не скажу, но я поставил прогу Absolute Time Corrector, она у меня автоматически часы каждую минуту проверяет, если надо то сама подводит. Очень удобная вещь, рекомендую.

Eskra
transdex
transdex

Eskra: В чем может быть причина?

Очень полезная статья:

http://www.vmware.com/files/pdf/techpaper/Timekeeping-In-VirtualMachines.pdf

Eskra
Eskra
Eskra Autor

Похоже то, что надо, спасибо - буду читать

Moadip
Moadip

Сталкивался с подобной проблемой как и у топикстартера, только не в гостевой ось, а в основной. В определенный момент часы на компе стали сильно отставать за день. Причина оказалось в недавно установленной проге.

Если по простому, то системный таймер обновляется с некоторой периодичностью и если есть проблемы с железом/драйверами/софтом, то он не обновляется "во время". Из за этого постепенно накапливается отставание.

DPC Latency Checker - тулза для проверки.

В идеале должно выглядеть так:

У меня же было так:

Из за этого и были проблемы.

Eskra
Eskra
Eskra Autor

Ого, да у меня там все красно-желтое, на домашнем все нормально... Попробую завтра с утра, когда робот работать не будет. Спасибо большое

ra81
ra81

Такая байда может быть если загрузка DPC в диспетчере задач высокая. То есть отложенный вызов процедур фигачит чего-то но посколь нагрузка большая не успевает отфигачивать. Других причин в латенси объяснить не могу. Даже уже не помню от чего такое может вылазить, но бывает что вылазит

Eskra
Eskra Autor

А что такое DPC? С помощью проги от Moadip увидел, что вообще задержки сильно скачут на виртуалке и зависят от загрузки цп, те запускаю какую-нибудь прогу - сразу задержки в красную зону. Судя по статье - это проблема всех виртуалок, у меня еще все сделано на гипервизоре ESXi, может от этого тоже зависит

Eskra
Eskra Autor

У меня похоже гостевые ос не синхронизирутся с хостом и где это включить не могу найти)

Moadip
Moadip

А что такое DPC? DPC

У меня похоже гостевые ос не синхронизирутся с хостом и где это включить не могу найти)

transdex
transdex

Если кратко: Сначала надо выбрать способ синхронизации - через tools или w32time (или NTP client) через tools: Отключаем w32time (в настройках времени -вкладка "время интернета" - снять галку "выполнять синхронизацию" Вставляем в .vmx файл строчки: tools.syncTime = true tools.syncTime.period = 60

Через окно tools можно включить синхронизацию, но нельзя установить необходимый период.

через w32time отключаем синхронизацию в tools (можно через окошко tools в гостевой машине) Настраиваем время интернета на адрес хоста (на нем должен быть настроен NTP сервер, на ESXi настраивается ) Через реестр ставим время обновления почаще, не более 15мин.

Через ntp client: Отличный бесплатный NTP сервер/клиент для windows (порт с UNIX): http://www.meinbergglobal.com/english/sw/ntp.htm Желательно найти поблизости (ping не более 3-4мс) NTP сервер Stratum1, тогда можно рассчитывать на отклонение от точного времени порядка 10мс.

PS. http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1318 http://www.mustbegeek.com/virtualization/time-synchronization-between-virtual-machine-and-esxi-server/

Eskra
Eskra Autor

Ага, спасибо - нашел и включил через tools. Я встречал упоминание, что tools каждую минуту время сравнивает, это так? И еще - не будет ли каких косяков в работе робота в момент синхронизации, у меня несколько таймеров используется и Thread.Sleep?

Eskra
Eskra Autor

Все настроил - работает как часы, всем огромное спасибо за помощь!

Eskra
Eskra Autor

Работает как часы))

westtrd
westtrd

Eskra: Кто-нить сталкивался с такой проблемой - роботы работают на виртуальных машинах (vmware, windows xp). В начале дня синхронизируем время в xp, к концу торгов часы отстают минуты на 2-3 от реального времени, притом что если выходной и робот не работает - то отставания никакого нет. В чем может быть причина? Можно настроить по умолчанию жесткую синхронизацию часов виртуальной машины с часами хоста, на мой взгляд, за исключением особых случаев, это наиболее оправданная практика. А уже на хосте должны быть NTP и иже с ними. Иначе, при достаточном количестве виртуалок, слишком много нюансов вылезает.

Eskra
Eskra Autor

Да, в результате так и сделал