Linux - NetworkingThis forum is for any issue related to networks or networking.
Routing, network cards, OSI, etc. Anything is fair game.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
I have a gigabit NIC (RT 8169) in my Redhat 9 box (distro = Clarkconnect Gateway 2.1) linked up with a crossover cable to a Windoze XP box containing an identical card. The cable run is about 1m and is screened patch.
The XP box is an XP2100 and the linux box a Duron 800. Both have plenty of idle CPU power.
The ping to the XP box is around 0.7 ms from the linux machine so this would indicate a low TCP receive window should be used. I have found, using iperf, that the maximum bandwidth I can obtain is around 270Mbits/sec.
My /etc/sysctl.conf contains the following lines to set TCP parameters:
# increase Linux autotuning TCP buffer limits
# min, default, and max number of bytes to use
net.ipv4.tcp_rmem = 4096 87380 8388608
net.ipv4.tcp_wmem = 4096 65536 8388608
# number of pages, not bytes
net.ipv4.tcp_mem = 4096 4096 4096
My MTU is set to 1500 on the XP box and linux box. On my XP box the TCP RWIN is set to 65536.
By using the -w flag in iperf I was able to check out different RWIN settings, and found very little difference between settings - below 10k their was a negative effect on throughput, but all other values resulted in 270Mbit/sec. Is this normal?
I have changed network cable, and still cannot get more than 270Mbits/sec transfer from iperf.
If samba was able to use this bandwidth it'd be less than I had expected from gigabit, but still an improvement over 100Mbit. However, samba transfer clock in at around 8MBytes/sec - the same as when I had a 100Mbit link through a cheap hub.
I have recently "upgraded" from Samba 2 to 3 and saw my samba transfer speeds over this link fall from 8MBytes/sec to a pathetic 2MBytes/sec - but that's another story!!
Has anyone any ideas as to why my network performance is so bad? (and if anyone can solve the samba issue I'd be appreciative)
Kind Regards,
Chris
Last edited by birkinshawc; 02-23-2004 at 07:48 PM.
I don't want to disappoint you, but 270mb/s sounds fantastic to me. It is unusual to get much better than half the theoretical max even in a 2-node network - for instance, 50mb/s real-world throughput is extremely good for 100mbit ethernet. 270mb/s seems to be in the ballpark of what's good. You may be bumping up against the maximum capability of your medium, but don't expect to do drastically better without spending drastically more money...
As for SMB, what is the CPU usage like? I should add that SMB was never designed with great speed in mind, and I'm wholly unqualified to comment on why 3 does so much worse than 2.
On the linux box smbd is using 30-40% of CPU when transferring. After an XP reboot I managed to transfer at 8 MB/sec which is little better than what I used to get with my 100Mb LAN.
I just noticed that "ethtool eth2" returns:
Settings for eth2:
No data available
And mii-tool returns:
eth0: autonegotiation failed, link ok
eth1: negotiated 100baseTx-FD, link ok
SIOCGMIIPHY on 'eth2' failed: Operation not supported
How do I fix this?
EDIT: My gigabit card is configured as eth2. ifconfig gives:
On the linux box smbd is using 30-40% of CPU when transferring. After an XP reboot I managed to transfer at 8 MB/sec which is little better than what I used to get with my 100Mb LAN.
This illustrates how complicated the problem is, you have two rather different pieces of software sitting on either end of the cable. Hopefully someone with direct experience of how to best set up both ends will step in.
It seems that the stock driver on RH9.0 and even the one from realtek website has a few issues. Lockup under nfs and poor performance. There's a patch for the lockup, but still getting reports that performance is equal or worse than a 100MB card.
i use intel pro 1000 gigabit cards w/ crappy crossover cable (old cat5 laid eons ago in bldg) and rh9 btwn athlon XP2000 and P2@350MHZ, which gives ~45 MB/s over the wire and moves files over 20MB/s, limited by the slow HD on the P2 server. for $35 each these are great cards.
sorry, don't know about your cards but gives a benchmark of sorts.
I am having the same problems with the card. I am only running it in 100MBit mode but the transfer rates are still pretty low, like 5-6MB per second.
And I also do think that the bad drivers are responsible for this.
I also made some tests with iperf with different machines connected to this one.
With the 2.6 kernel and the drivers that are integrated in it the card is unusable via UDP traffic at all. When you copy from that machine I get around 2MB/s and when I copy something on it I have around 2-6KB/s (yes, I mean kilobyte).
With the 2.4 series and the drivers the performance is like I mentioned above.
If anyone has any more input about this problem I'd be happy to hear about it.
same here with fedora / core 1.... dmesg/ethtool report that my intel 1000 mt pro card got a 1000mbit connection, however whatever I try... i never exceed 8-10 megabytes per second...
Same here. though I am getting 8-10MBps over the 3-4MBps rate I had with 100MB connection. I tried tweaking my network settings by performing the following commands on each computer ( with Gigabit NIC )
ifconfig eth0 mtu 9000 ( sets the mtu up to 9000 )
ifconfig eth0 txqueuelen 2000 (ups the transmit queue size to 2000 )
its still really slow. The funny thing is the first time I transferred a file over the gigabit connetion ( before any tweaks ), it went at 40MBps, but I can't repeat that speed.
Anyhow, I noticed that the driver for the NIC I have ( SMC 9452TX ) is labled as 'unsafe' when I look at it with lsmod. So right now I am trying to install the driver from the vendor's site, but their installer complains that my kernel header and kernel versions do not match. I guess finding the source for my kernel ( installed via yum update command ) willfix this, but I am having a heck of a time finding it - 2.6.7-1.456_4.rhfc2.atsmp.
Another clue that the driver is the issue is the neither "ethtools eth0" or "mii-tools eth0" commands can retrieve any info about my network card, which I read is the responsibility of the driver to return this information.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.