Recently I have been doing a lot of network file transfers between a few PCs but the very slow transfer speed of a 100Mbps connection has been making things too time consuming.
This equates to a maximum theoretical speed of 12.5 MB/s.
How did I work that out?
Since there are 8 bits in 1 byte, 100 Megabits / 8 = 12.5 Megabytes
Any modern system should easily achieve up to 12 MB/s.
So I decided to get a gigabit switch and upgrade my home network for as cheap as possible :-)
A gigabit connection is 10 times the speed of 100Mbps and therefore has a maximum theoretical speed of 125MB/s.
All my systems feature gigabit NICs, so no additional expense required on that part at least for now. As for the switch, you do have to be careful when buying a cheap gigabit switch, many claim to be gigabit but suffer from poor performance.
A quick look on www.ebuyer.com revealed a Tenda 8 port Gigabit switch for £24.99 which looked promising, customer feedback on Ebuyer was positive.
The switch itself has a very solid feel and construction with a quality finish, made in China of course.
The instruction manual was also very encouraging.
How did it perform?
Many people are often under the impression that with a gigabit connection you will automatically be able to send or receive at near gigabit speeds, this is not quite the case.
Other hardware components in your PC will have an effect on the transfer speeds and your gigabit network transfer rate will be reduced by the slowest influential component in your PC.
For example if your hard drive can only read at 70MB/s then it would be impossible for this PC to send data at a faster speed than it is physically capable of.
Lets build on this example, if the PC receiving the data has a hard drive with a write speed of 40MB/s, this further bottleneck will limit the transfer speed even more.
Overall the speed of every network file transfer transaction is determined by the PCs taking part in the transaction.
With a 100Mbps (aka 12.5MB/s) network connection it is easy to over look how other hardware components can impact performance since most systems are able to handle data at speeds well beyond 12.5MB/s.
The test setup
System A
AMD Athlon II X2 250
ASUS M4A785TD-V EVO
4GB Patriot Gamer Series 1600Mhz DDR3 7-7-7-20
500GB Samsung SpinPoint F3 Hard Drive
Realtek RTL8112L Gigabit LAN controller
Windows 7 HP x64 / Ubuntu 10.04 x64
System B
AMD Athlon II X2 240
ASUS M3A78-T
4GB G.Skill PQ Series PC2-8000 5-5-5-15
500GB Samsung SpinPoint F3 Hard Drive
Marvell 88E8056 Gigabit LAN controller
Ubuntu 10.04 x64 / Windows 7 HP x64
Notes
Both systems have a 500GB Samsung SpinPoint F3 hard drive which is capable of read/write speeds of about 125MB/s - 140MB/s
System A was also tested with Fedora 14, openSUSE 11.3 and Ubuntu 10.10
Cat5e UTP Cable, 8 meters and 12 meters
Results
1. System A (Windows 7 x64) / System B (Ubuntu 10.04 x64)
Copying a 17GB compressed file from System B to System A produced speeds of 109MB/s to 110MB/s
Copying the same file back from System A to System B produced identical speeds.
Not bad given a 1000Mbps is theoretically possible of delivering 125MB/s.
2. System A (Windows 7 x64) / System B (Windows 7 x64)
Same speeds as test 1.
3. System A (Ubuntu 10.04 x64) / System B (Ubuntu 10.04 x64)
Copying a 17GB compressed file from System B to System A produced speeds of 37MB/s to 40MB/s
Copying the same file back from System A to System B also produced speeds of 37MB/s to 40MB/s.
Very disappointing.
4. System A (Ubuntu 10.04 x64) / System B (Windows 7 x64)
Same speeds as test 3
Conclusion
System A was able to deliver good speeds only with Windows 7.
System B was able to deliver good speeds with Windows 7 and Linux.
System A suffered from a performance hit when using a Linux operating system.
Clearly Linux does not suffer from poor gigabit network performance, if this were true System B would have displayed similar results to System A, i.e. poor performance in Linux.
Why does System A perform poor with Linux?
The answer lies with the pathetic Linux drivers (r8169.ko) Realtek have provided for the Realtek RTL8112L Gigabit LAN controller featured in System A.
Even using drivers from Realtek's slow loading website (r8168.ko) resulted in the same miserable performance.
Does this apply to all Realtek Gigabit controllers that rely on the r8169 kernel driver or is it only the Realtek RTL8112L Gigabit LAN controller that is affected?
Searching on Google implies its a widespread issue with Realtek Gigabit controllers that use the r8169.ko.
But wait there's more..
I am also experiencing another issue with the Realtek network controller on System A.
Restarting Windows then booting into Linux causes the Realtek network controller to cease working.
The solution to get the Realtek back up and running is to power the system completely off including the mains or PSU switch, wait for a few minutes then boot directly into Linux.
In future I will try to avoid purchasing motherboards with Realtek Gigabit network controllers or alternatively purchase a Network card such as the Intel Gigabit PRO/ 1000CT PCIe adapter.
Realtek = POS
Popular Posts
-
The Ubuntu wiki does provide the necessary documentation to allow users to build their own Linux kernel but in a rather disorganised way. ...
-
Important Make sure you have and use the right tools. Many small screws require a sharp small screwdriver and using the wrong size may da...
-
This quick how to guide will show you how to recompile your Ubuntu 11.04 (2.6.38.2) Kernel using the terminal. 1. Install these packages ...
-
If you own a Samsung R510 the most important feature that does not work in Fedora 14 are the brightness buttons. Ubuntu users are fortunate ...
Subscribe to:
Post Comments (Atom)


hey! awesome blog thanks for sharing this nice post. I really enjoyed your post. I am a new reader of you blog. I have created a blog about Laptop Reviews . Take a look my website. Thanks.
ReplyDeleteFirst: Never, ever, ever, EVER test with disk speeds. If you whine about network speeds and you're testing with mechanical read and write speed overheads included, you look like a fool.
ReplyDeleteTest with iperf. It's a simple client/server setup that will force as much bandwidth as possible without any disk nonsense.
I have a RTL8111/8168B PCI Express Gigabit Ethernet controller (using r8169) that operates at 100MB/s (800mbps) to a computer 30 meters of cat5 and two switches away (the other is an Atom-powered Nvidia MCP79 network chipset). I think that's more than fair.
And even if it is your adapter, why on earth are you tarring *all* realtek devices with the same brush?
Thanks for tip about ipref Oil Warner but I prefer using methods that people can directly relate to, methods that are more meaningful.
ReplyDeleteBesides, this post does not set out to determine the max throughput of a gigabit network.
I am just sharing my experience of upgrading to a gigabit network. At the same time this post gives a good idea to ordinary users how well a gigabit network can perform when the right hardware is used.
It also illustrates a common problem many Realtek users are facing in Linux.
I do not state or imply all realtek gigabit controllers suffer from poor peformance, I only raise the question and state that my google searches indicate there is a widepread issue.
This is a blog which I use to share opinions and my immediate thoughts, unfortunately given the experience detailed above my immediate thought is Realtek = POS.
Sorry if it causes any offence.
Its good to hear you ar not suffering from the same issue but I would be grateful and it would benefit others if you could clarify the following,
The exact Realtek NIC model number you are using?
operating systems tested?
Regards, Adam
Nice piece of writing and I think it will be usefull for average home user. Couple of thing's you might have mentioned tho.
ReplyDeleteWhen buying gigabit switch, I recommend looking for one's that are jumboFrame capable, vlan's are also nice.
About the throughput, 125MB/s or what ever, isn't the only metric to consider. If you are just transfering big files or streaming content to/from a network attached storage, then the obvious metric would be throughput but if you are using it as replacement for internal hdd, then latency and processor load are bigger factors.
Gigabit ethernet, even IF it actually could handle sustained transfer rates over 100MB/s will easily get saturated when you are doing lot of small file access. I know some card's can do this (>100MB/s) but not all... It's not a miracle feat, but it's not something you cant be sure of.
You can actually test this easily. Just mount CIFS(windows share)/NFS/iscsi share and then configure your favourite torrent program to use it as download directory/folder. Wait for a while and see how 2MB/s download rate saturates the share even if you've seen the exact same configuration perform >100MB/s.
About RealTek... yes, they generally are what you would expect. Better than 100Mbit Ethernet sure, but so was 100Mbit when you were used to 10Mbit. Generally people wouldn't even know about realtek if just about every consumer motherboard wouldn't contain couple of those babies. It's not the capabilities of the chip, it's the price that is the factor here that matters. If just about every other 70$ motherboard can contain two realtek interfaces, how can intel and other manufacturer's sell pcie card's that cost more that the motherboard. Actually better question would be why would any one by them?
Just take a look at intel, HP, DELL, SuperMicro or SUN servers and notice how they rarely contain realtek. If you actually manage to find realtek on a server motherboard, I'm betting it's one of those cheapest models.
Didn't mean to criticise your writing, just wanted to mention couple of thing's that might be relevant to some people.
PS. Your calculations (8 bits in 1 byte, 100 Megabits / 8 = 12.5 Megabytes) is actually correct but it tell's you the wire speed. When you add tcp, ip and what ever storage protocol one is using, the transfer rate for the payload is something less than the theoretical wire speed.
Thanks for the comment Henrik. Google detected it as spam, which is why it was delayed.
ReplyDeleteGreat blog.
ReplyDeletethanks for the post ... it'S good to know, i'm not alone in the world with my problem :)
ReplyDeleteI have a laptop HP touchsmart Tm2 2105eg, with the RTL8111/8168B chipset, under ubuntu Maverick
I installed the 8168 driver from realtek. The driver is loaded, the connection info indicates "1000 Mbps", but a download tes with anotehr Pc under W7 shows 100Mbps :(
The same test with both machines under windows gives 500Mbps
Nevertheless, i will try with iperf this evening...
i'm puzzled...
ReplyDeletewith boths machines under linux, the iperf test says : 650 Mbps
but a download test shows : 130 Mbps maximal.
Where ist the bottleneck ? A Hardisktest with HDparm shows that the HD are ok.
i have not idea how to solve this problem.
Hi guys. I've resolved all Realtek transfer rate problems on Linux by disabling the default driver and installing the Realtek driver from the website, using a very cool script included in the driver package.
ReplyDeleteSee here for more details:
- http://forum.zentyal.org/index.php?topic=11137.0
- http://unixblogger.wordpress.com/2011/10/18/the-pain-of-an-realtek-rtl8111rtl8168-ethernet-card/
Bye