|
|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Andrej Kirsanov 2:5020/400 14 Feb 2005 16:07:50 To : damir bikmuhametov Subject : Re: deviсe_polling или сказка о потеpянном вpемени --------------------------------------------------------------------------------
> но вопpос все-таки у меня остался - почему к отставанию вpемени пpиводит
> не
> само по себе hz=1000, а именно включение поллинга.
При выключенном поллинге, в момент прихода пакета на сетевую карту
срабатывает прерывание, и пакет обрабатывается. Если в процессе обработки
прерывания 1 раз тикнет другое прерывание, то по окончанию обработки
текущего прерывания обработается новое. Если произойдет не одно, а более
прерываний, то обработается только прерывание с наиболее высоким
приоритетом.
При включении поллинга входящие пакеты не обрабатываются сразу, а
накапливаются в некоем буфере и раз в 1/HZ секунд обрабатываются целыми
пачками. При этом если в момент обрабатывания поллинга произойдет прерывание
таймера один раз, то по окончании обработки поллинга обработается и
прерывание, если-же процесс затянется, и прерывание тикнет 2 раза, мы
потеряем 1 мс. Данный эффект ухода часов наблюдается на довольно сильно
нагруженных серверах(маршрутизаторах), и при снижении нагрузки часы не
отстают. Убедится в отставании часов можно следующем образом.
root@xxx:/root/# vmstat -i
interrupt total rate
em0 irq10 2519756440 4247
em1 irq11 2739088065 4617
em2 irq12 740988616 1249
ata0 irq14 378871 0
clk irq0 593309835 1000
rtc irq8 75929710 127
Total 6669451537 11242
Если rate у clk<HZ то часики наши потихоньку отстают.
Поправте меня если сто наврал.
--- ifmail v.2.15dev5.3
* Origin: Demos online service (2:5020/400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор Архивное /ru.unix.bsd/65779497164e.html, оценка из 5, голосов 10
|