Date: Wed, 16 Aug 2006 09:42:33 +0700 From: Bachilo Dmitry <root@solink.ru> To: freebsd-current@freebsd.org Subject: Re: throughput and interrupts Message-ID: <200608160942.33841.root@solink.ru> In-Reply-To: <20060815130002.M45647@fledge.watson.org> References: <200608151627.37828.root@solink.ru> <20060815130002.M45647@fledge.watson.org>
next in thread | previous in thread | raw e-mail | index | archive | help
=F7 =D3=CF=CF=C2=DD=C5=CE=C9=C9 =CF=D4 =F7=D4=CF=D2=CE=C9=CB 15 =C1=D7=C7= =D5=D3=D4=C1 2006 19:02 Robert Watson =CE=C1=D0=C9=D3=C1=CC(a): > On Tue, 15 Aug 2006, Bachilo Dmitry wrote: > > I am completely stuck. I have a router, that rules three subnets. At > > first there were Allied Telesyn's netcards with realtek chipsets. I am > > using ipfw+natd and I had like 3,5 megabytes per second with 20 per cent > > of interrupt load. I had "discarded oversized frame" too often so I've > > replaced two main cards with 3Com 905 and now my xl0 and xl1 never > > discard frames. But I saw no speed boost and interrupts were also very > > high. I have discovered some IRQ conflicts and removed them, now I have > > single device per IRQ, but still i have near 20-30 % of interrupt load, > > when i download something through this router (and natd takes rest % of > > CPU). Some people advised me to use polling, so I've built kernel with > > HZ=3D1000, polling and tried it. Interrupts grew to 40-50% and speed > > decreased to 200-300 kb/s, so I had to turn the polling off. > > > > I just don't know what to try, to gain at least 9 mb/s, because this is > > what I get at home with the same cards, the same processor, with no > > polling and throgh the same provider. > > I think it would be useful to compare the settled loads of the two system= s, > if they are otherwise identical, using systat -vmstat 1 and top -S. I'd > load the systems up, leave the tools running, and wait a couple of minute= s, > then compare snapshots of the output from both systems. top -S is > particularly informative, as it will tell you which ithreads are burning > the most CPU, and systat -vmstat will tell us the context switch rate and > interrupt rates of various sources. > > There are some general optimization techniques that can be applied here -- > for example, if it's an SMP box, you might find that net.isr.direct=3D1 > improves performance. However, I think the real problem here is the > performance difference, which suggests a problem that needs resolving, > rather than optimization being required up front. > > Thanks, > > Robert N M Watson > Computer Laboratory > University of Cambridge Here is what I see: CPU states: 9.6% user, 0.0% nice, 58.5% system, 31.9% interrupt, 0.0% id= le Mem: 127M Active, 664M Inact, 138M Wired, 48M Cache, 111M Buf, 21M Free Swap: 64M Total, 272K Used, 64M Free PID USERNAME PRI NICE SIZE RES STATE TIME WCPU CPU COMMAND 11 root 171 52 0K 8K RUN 422.7H 33.06% 33.06% idle 462 root 109 0 1496K 952K RUN 202:44 21.53% 21.53% natd 37 root -44 -163 0K 8K WAIT 99:09 5.08% 5.08% swi1: net 29 root -68 -187 0K 8K RUN 59:11 3.52% 3.52% irq19: xl0 30 root -68 -187 0K 8K WAIT 40:38 3.47% 3.47% irq20: xl1 This machine is Celeron 1,7 Ghz and 1 GB RAM and it gives me 3,7 MB per sec= ond=20 max. While my home router is Celeron 1,7 Ghz with 512 MB RAM, the same xl=20 NICs and I have almost 10 MB per second there with at least 48% of free CPU= =2E=20 I'll keep on testing this stuff, so i'll keep reporting the results. =2D-=20 =2D----------------------- =F3 =D5=D7=C1=D6=C5=CE=C9=C5=CD, =E2=C1=DE=C9=CC=CF =E4=CD=C9=D4=D2=C9=CA =F2=D5=CB=CF=D7=CF=C4=C9=D4=C5=CC=D8 =CF=D4=C4=C5=CC=C1 =D3=C9=D3=D4=C5=CD= =CE=CF=CA =C9=CE=D4=C5=C7=D2=C1=C3=C9=C9 =EF=EF=EF "=EB=CF=CD=D0=C1=CE=C9=D1 =F3=CF=EC=C9=CE=CB"
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200608160942.33841.root>