netisr defered - active only one thread

Alexander V. Chernikov melifaro at FreeBSD.org
Wed Feb 1 21:14:47 UTC 2012


On 01.02.2012 20:45, Andrey Zonov wrote:
> Hi,
>
> I'm trying to tune machine with 8.2-STABLE for heavy network load and
> now playing with netisr. Could anyone explain me why actually works only
> one netisr thread if I set them to 8?

Can you please supply `nestat -Q` output and clarify you usage pattern 
? (I mean, this is router/web server/some kind of traffic receiver/etc..).
For example, flow policy does not balance traffic from single flow 
between different CPUs.

>
> loader.conf:
> net.isr.maxthreads=8
> net.isr.bindthreads=0 (also tried set to 1)
> hw.em.rxd=4096
>
> (net.isr.numthreads is 8 after reboot, `procstat -t 12' shows me 8
> netisr threads)
>
> sysctl.conf:
> net.isr.direct=0
> net.isr.direct_force=0 (also tried hybrid mode when direct=1, but
> force_direct=0)
>
> NIC:
> em0 at pci0:4:0:0: class=0x020000 card=0x109615d9 chip=0x10968086 rev=0x01
> hdr=0x00
> vendor = 'Intel Corporation'
> device = 'Intel PRO/1000 EB (Intel PRO/1000 EB)'
> class = network
> subclass = ethernet
>
> No polling.
>
> top:
> PID USERNAME PRI NICE SIZE RES STATE C TIME WCPU COMMAND
> 12 root -44 - 0K 512K CPU7 7 1:18 100.00% {swi1: netisr 7}
> 11 root 171 ki31 0K 128K CPU3 3 2:15 94.38% {idle: cpu3}
> 11 root 171 ki31 0K 128K CPU6 6 2:06 90.19% {idle: cpu6}
> 11 root 171 ki31 0K 128K CPU2 2 2:42 88.67% {idle: cpu2}
> 11 root 171 ki31 0K 128K CPU1 1 2:22 84.18% {idle: cpu1}
> 11 root 171 ki31 0K 128K CPU5 5 2:29 75.29% {idle: cpu5}
> 11 root 171 ki31 0K 128K RUN 4 2:28 69.97% {idle: cpu4}
> 11 root 171 ki31 0K 128K RUN 0 2:29 69.68% {idle: cpu0}
>



More information about the freebsd-net mailing list