небольшой оффтоп: device polling

Igor Sysoev is at rambler-co.ru
Wed Nov 14 22:19:38 MSK 2007


On Wed, Nov 14, 2007 at 08:55:35PM +0200, Alex Vorona wrote:

> Igor Sysoev пишет:
> >On Wed, Nov 14, 2007 at 07:39:07PM +0200, Alex Vorona wrote:
> >
> >  
> >>Anton Yuzhaninov пишет:
> >>    
> >>>On 14.11.2007 19:47, Pentarh Udi wrote:
> >>>      
> >>>>Есть ряд вопросов по поллингу, я надеюсь не сочтут оффтопом.
> >>>>        
> >>>polling имеет большой овехед, и при наличии хорошей сетевой карты (em, 
> >>>bge) его лучше не использовать совсем.
> >>>
> >>>      
> >>поподробней плз можно. Поллинг полезен при больших pps и  на  карте с 
> >>немаленькими аппаратными буфферами - em и bge. Я правда не знаю, 
> >>включает ли FreeBSD отложенные аппаратные прерывания на них, судя по man 
> >>bge этого нет, а в man em по hw.em.rx_int_delay вижу The default value 
> >>is 0, since adapters may hang with this feature being enabled.
> >>    
> >
> >systat -v:
> >
> >     6274 bge1 irq18
> >
> >netstat -I bge1 1
> >            input         (bge1)           output
> >   packets  errs      bytes    packets  errs      bytes colls
> >     54347     0    7293726      48692     0   24562182     0
> >     55204     0    7407979      48944     0   24368319     0
> >
> >На ~100,000 (54347+48692) пакетов всего ~6274 прерывания.
> >
> >У em то же самое.
> >
> >
> >  
> tx-пакеты не в счёт :)

Как это не в счёт ? А как OS узнаёт, что пакет ушёл и в карте можно
освобожать ресурсы, занятые этим пакетом ?

> rx ~50k на 6k прерываний. Плоховатый показатель < 10 packets / interrupt 

Ну там ещё есть запас - настроено на
*) прерывание после 64 rx пакетов или 128 tx пакетов.
*) или задержка прерывания на 150ms.

> .   Такой я видел и на linux с NAPI  на e100 :)
> При поллинге я вижу по 1к пакетов за 1 полл
> sysctl kern.polling
> kern.polling.burst: 1000
> kern.polling.burst_max: 1000
> kern.polling.each_burst: 1000

Это на какой карте ? Далеко не в каждой карте есть место для 1000 пакетов.


-- 
Игорь Сысоев
http://sysoev.ru





More information about the nginx-ru mailing list