performance optimizations for gigabit networking

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I have a file server (serverworks dual pIII motherboard) with a Syskonnect
9821 gigabit card that I want to be able to transfer files very quickly
using ftp and http. It's connected to a 16 port wirespeed gige switch and
two other machines. I run the latest Redhat 7.3 supplied SMP kernel
(2.4.18-19.7.xsmp). I have made changes to tcp window size, transfer
buffers etc according to recommendations.

First I wanted to establish a baseline, so I did some transfers using ftp
via loopback. One single transfer yields 70-80 megabyte/s, 3 in parallell
yields an aggregate of 120-140 megabyte/s. Internally, I get numbers I
expect. These are 500 megabyte files transferred from disk cache into
/dev/null using wget.

Now, over the LAN, I do one transfer from another machine, I get 30-50 
megabyte/s. This is from a machine connected to the same switch, also 
using a 64bit/66MHz Syskonnect card.

Now, from the third machine, I start another transfer at the same time as
the first. I now get 15-25 meg/s if I add both transfers (6-14 megabyte/s
each). I see the same results using http (apache web server). It's 
noticable slower with two transfers than with one. Doesnt matter if one 
transfer is ftp and the other http, same problem.

Using http I can sometimes reach as high as 50 meg/s over the
network, I never get even close using two transfers (they immediately bog
down to 5-15 meg/s each). Local loopback transfers are never affected by 
the "network slowdown effect", two network transfers at aggregate 15 meg/s 
still enables 70 meg/s loopback transfers. The file server is noticable 
slower in interactive (remote login) performance when doing two parallell 
transfers. Pinging over the local lan gives ping times of sometimes as 
high as 50ms during the transfers. As soon as the transfers are ended I go 
back to .06 ms ping time.

Could this be an interrupt handling problem so I might be better off using
"noapic", or even an SMP issue so I would be better off actually only
using one cpu (they're both 1.13GHz pIII:s with 512 kb cache).

Any other recommendations, I feel I should be able to quite easily reach
at least 50-70 megabyte/s aggregate over the network with my setup (as
long as disk I/O is not an issue of course, all the above is with file
pre-cached on the file server).

I actually feel that my old motherboard (VP6 with dual pIII 1GHz
processors, all 33Mhz 32bit PCI busses) gave me better results when it
came to handling several simultanious requests, whereas the new
serverworks motherboard really kicks ass in all other areas (100+
megabyte/s actual read speed off of a RAID1 of SCSI drives).

Any input appreciated.

-- 
Mikael Abrahamsson    email: swmike@swm.pp.se

-
: send the line "unsubscribe linux-net" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Netdev]     [Ethernet Bridging]     [Linux 802.1Q VLAN]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Git]     [Bugtraq]     [Yosemite News and Information]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux PCI]     [Linux Admin]     [Samba]

  Powered by Linux