← Voltar

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

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

Este tópico foi útil?

Compartilhar tópico

Comentários (15)

Entrar ou Criar conta, Faça login ou cadastre-se para deixar um comentário

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

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