Re[2]: небольшой оффтоп: device polling

Pentarh Udi lists at pentarh.com
Thu Nov 15 17:17:25 MSK 2007


Здравствуйте, Igor.

Вы писали 14 листопада 2007 р., 21:19:38:

> 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 пакетов.


kern.polling.burst_max я поставил тоже 1000, больше просто не дало
поставить ))

А где можно узнать, держит ли это дело моя сетевуха?
bge0: <Broadcom BCM5750 B1, ASIC rev. 0x4101> mem 0xfe8f0000-0xfe8fffff irq 16 at device 0.0 on pci4


-- 
С уважением,
 Pentarh                          mailto:lists at pentarh.com






More information about the nginx-ru mailing list