Время VPS.

Sep 28, 2012 20:56

Есть вещи в которых не сомневаешься, например часы в компьютере. Они железные, внутри кварц, чтобы он начал сильно сбоить его надо охладить до -40. При обычных условиях трудно представить что часы уйдут больше чем на минуту за сутки. Но оказывается, все это не про VPS сервер. На этой неделе я обнаружил, что часы виртуального сервера могут отставать ( Read more... )

vps

Leave a comment

Comments 8

derevnya_trade September 28 2012, 17:28:16 UTC
Вот таймер имеет довольно высокий приоритет, но все равно плавает. А теперь представь торговую прогу со средним приоритетом :) как там будет с получением доступа к процу в кратчайшие сроки?
Кстати, у меня обновляется с другой тачкой каждые 16 сек, но все равно дрейф в 5 мили сек.

Reply

ontrend September 28 2012, 17:44:03 UTC
То что плавает это ладно, если все прерывания таймера в итоге обработаны - все тики подсчитаны, время будет правильное, там засада в том что тики считаются неправильно.
А приоритет потоку можно назначить высокий, правда насколько это актуально для винды это еще вопрос.

Reply

derevnya_trade September 29 2012, 05:09:54 UTC
В впс тики и так считаются правильно, просто не вовремя :) Пока прослойка гипервизора сожрет время, пока дождется очереди к процу. Время и уходит. Без гипервизора весь вопрос в приоритетах процессов, а потом в приоритетах потоков. Это работает, я проверял на своем софте, когда запускаешь обработку сообщений от двух источников в разных потоках с разными приоритетами. Хоть и шесть ядер, но в моменте почти всегда поток с меньшим приоритетом курил в стороне, пока другой не выполнял свои дела. Теперь представь что творится на железе с кучей впс :)

Reply

ontrend September 30 2012, 08:01:06 UTC
В обычном компе есть часы реального времени, это отдельное устройство, оно работает от кварца и знает константу [количество тиков в секуну], когда комп выключен часы работают от батарейки поэтому мы всегда имеем правильно время. Когда комп включен, часы генерируют аппаратное прерывание по каждому тику. Обработчик прерывания, СЧИТЫВАЕТ ВРЕМЯ ИЗ ПАМЯТИ ЧАСОВ и помещает его в правый нижний угол экрана. т.е. даже если задрочить проц на столько, что он пропустит несколько тиков, время то по итогу все равно будет правильное.
Получается что у виртуального сервера часы тоже виртуальные и это ОНИ пропускают тики.

Reply


romankrd September 28 2012, 18:05:55 UTC
А с каким сервером синхронизируешь?

Reply

ontrend September 28 2012, 18:21:59 UTC
С локальным типа 192.168.1.1.
С интернетными можно минуту только прождать очереди.

Reply

derevnya_trade September 29 2012, 05:11:53 UTC
Держу публичный ntp сервер. Сам же с него синхронизируюсь. Отвечает быстро. Что я делаю не так?

Reply


Leave a comment

Up