Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 10 Feb 2006 14:57:26 -0500
From:      Marcos Bedinelli <bedinelli@madhaus.cns.utoronto.ca>
Cc:        freebsd-net@freebsd.org
Subject:   Re: Network performance in a dual CPU system
Message-ID:  <63274172a54fb70a88d6cb55b9ae6e23@madhaus.cns.utoronto.ca>
In-Reply-To: <711b7ec873f31bc5be50ce477313fac3@madhaus.cns.utoronto.ca>
References:  <7bb8f24157080b6aaacb897a99259df9@madhaus.cns.utoronto.ca> <43ECB1E7.8010308@mac.com> <711b7ec873f31bc5be50ce477313fac3@madhaus.cns.utoronto.ca>

next in thread | previous in thread | raw e-mail | index | archive | help
Hi,


On 10-Feb-06, at 13:06, Chuck Swiger wrote:

> Marcos Bedinelli wrote:
> [ ... ]
>> mull [~]$vmstat -i
>> interrupt                          total       rate
>> irq1: atkbd0                        3466          0
>> irq6: fdc0                            10          0
>> irq13: npx0                            1          0
>> irq14: ata0                           47          0
>> irq21: fxp1                     20462527          8
>> irq28: bge0                   3511765157       1444
>> irq29: bge1                   3633124373       1494
>> irq30: aac0                      1842472          0
>> cpu0: timer                    566751007        233
>> Total                         7733949060       3181
>
> Interesting, what do you have HZ ("sysctl kern.clockrate") set to?  
> Does setting
> it to somewhere around 500, 1000, or 2000 help?  You're definitely 
> going to want
> to increase HZ if you enable polling mode...


mull [~]$sysctl kern.clockrate
kern.clockrate: { hz = 1000, tick = 1000, profhz = 666, stathz = 133 }




>> mull [~]$netstat -m
>> 644/646/1290 mbufs in use (current/cache/total)
>> 643/407/1050/17088 mbuf clusters in use (current/cache/total/max)
>> 0/5/4528 sfbufs in use (current/peak/max)
>> 1447K/975K/2422K bytes allocated to network (current/cache/total)
>> 0 requests for sfbufs denied
>> 0 requests for sfbufs delayed
>> 0 requests for I/O initiated by sendfile
>> 0 calls to protocol drain routines
>
> You might try increasing the # of kern.ipc.nmbclusters, say by a 
> factor of 2.
> This may not help much, seems like you're bottlenecking servicing the 
> bge
> interrupts.
>
> I assume you've read "man tuning" and do not have something like 
> WITNESS enabled
> in your kernel?  :-)


WITNESS is not part of my current KERNCONF file.

To be honest, I didn't read the whole "man tuning" document because 
there are many parts that don't apply to this situation. However, the 
"CPU, MEMORY, DISK, NETWORK" section is quite clear about the 
following:

"If your system runs out of CPU (idle times are perpetually 0%) then 
you need to consider upgrading the CPU or moving to an SMP motherboard 
(multiple CPU's), or perhaps you need to revisit the programs that are 
causing the load and try to optimize them."

That's basically the problem I am experiencing: memory is fine, swap is 
fine, disk access is fine, CPU utilization is way high...

The machine is in production and needs to have its performance improved 
asap. Consequently, we are fine with the idea of spending some $ with a 
second processor, provided that someone can tell me whether such matter 
can be solved using this approach. What we would like to avoid is 
spending $ with a second CPU that ultimately won't do any good for us.

Cheers!

--
Marcos




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?63274172a54fb70a88d6cb55b9ae6e23>