Actual gigabit performance?

Bviper

Weaksauce
Joined
Oct 20, 2008
Messages
117
Trying to get a handle on realistic numbers is hard through google.

Theoretically gigabit should get 125MBs (1000/8); however, I know there is some overhead lost due to protocol limitations. With my NAS, I'm seeing about 85MBps (read) is this about right or is there some bottleneck somewhere? (That number is through benchmarks only, actual read/write speeds are markedly lower)
 
The bottleneck is the speed of the drive in your NAS, but that's pretty good throughput.

you didn't mention which transfer protocol you were using. FTP has the lowest overhead of error checking protocols and should give the best raw throughput.
 
I'm using freeNAS with 4 Caviar Blacks in RAID 10 and iSCSI.

Yeah... I have a big problem. There should be no question about it maxing out gigabit :(

I should also note Jumbo Frames makes performance drastically worse.
 
I should also note Jumbo Frames makes performance drastically worse.

I get the same thing on Windows, but Linux->Linux they make a big difference. Shrug.

85MB/s is pretty respectable. What NICs are you using? And yeah, networking in WinXP, and SMB in particular is pretty slow at GbE speeds. In XP I could barely get 65MB/s. Upgraded to 7 and I'm pushing 90, and it's definitely limited by my workstation's hard disks.
 
I'm using Intel NICs on both sides, this aint my first rodeo unfortunately...

I'm starting to agree, it HAS to be Windows Vista. I have 7 on my laptop, but no gigabit NIC. Thus, no way to test it out. I tried putting OpenFiler on the box, but that just went down in flames (error after error) I did manage to try something different. I completely disassembled the RAID array on the freeNAS box and went to a single disk using iSCSI and I still got 85MB/s. When watching my network utilization I never got past 62%. It seems something it hampering either the network or the iSCSI protocol. The software RAID clearly is not the issue. My money is on Vista seeing as its always hated file transfers.

I would live with 85MB/s if I could actually get that, but that's only on benchmarks. I get half that in actual performance, and a fourth of that in write speeds.
 
I found this post in which I noticed the quote "The main performance enhancement was using a Layer2-only network. This greatly increased my throughput!" Looking up Layer 2 brought me to the Data Link Layer wiki article, at which point I drowned in technobabble.

In other googling, I found this article, which had the interesting quote "It's best to have a dedicated network for iSCSI, but at the very least you'll want to VLAN it and make sure the (gigabit) switch and (gigabit) NICs have Jumbo Frame support. Tx and Rx Flow Control is helpful too if at all possible."

The quote also directed the reader to see this Novell article titled "iSCSI Overview - Optimization and Performance tuning" which may be helpful.
 
I've pushed transfers of multiple several hundred GB of movies at around 110MB/s average between Vista and Server 2k8 (two 2ft. cat6 cables and an hp procurve, ymmv); with Vista and CentOS I was lucky to get 25MB/s sustained. I'd look at tuning your network a bit and making sure your switch and source aren't holding you back; also make sure that your iscsi selection isn't holding you back
 
I would live with 85MB/s if I could actually get that, but that's only on benchmarks. I get half that in actual performance, and a fourth of that in write speeds.
What benchmark are you using?

I did a lot of benchmarking of Windows File Sharing over TCP/IP using an XP x86 box and another XP x64 box copying around a 5.5GB file and got all sorts of interesting results.
 
Cable quality and the switch you're using can make a difference.

I've got 10+ year old 150 foot cable that connects the top floor of my house to the basement and I get ~50-60Mb/s over it, if I have the machines connected on the same switch using short patch cables I can sustain 90-100Mb/s.

To test you could try connecting the two machines directory with a known good cable so you can eliminate any switch/cable bottlenecks and then tune from there.
 
Cable quality and the switch you're using can make a difference.
It's even more convoluted than that. The NiC matters, the OS matters, which PC instigates the transfer matters (ie: whether it's pushing or pulling), etc...

Here's some of the data I collected:
wfsresults.png


For example, a 59.34MB/sec transfer dropped to 22.73MB/sec simply by pushing instead of pulling the data. Another example, a 56.19MB/sec transfer dropped to 41.05MB/sec by changing the sending NiC from a Realtek 8111B to an Intel Gigabit CT Desktop.

PS: Yes, I'm 100% sure the data is the graph is accurate.
 
I've got 10+ year old 150 foot cable that connects the top floor of my house to the basement and I get ~50-60Mb/s over it, if I have the machines connected on the same switch using short patch cables I can sustain 90-100Mb/s.

Unless the cable is so bad that you're getting dropped frames, it shouldn't make a difference, but I suppose crappy NICs perhaps introduce more delay or something if the signal quality isn't perfect. A good NIC should get full speed on any in-spec cable.
 
HP2824 (updated to most recent firmware)

Brand new CAT6 about a 30ft run.

Stereodude can you elaborate on that graph more? What did you use to test, a benchmark or actual file transfer? What OS, etc. Because that is one heck of an intresting graph and makes me feel a little bit better.
 
Stereodude can you elaborate on that graph more? What did you use to test, a benchmark or actual file transfer? What OS, etc. Because that is one heck of an intresting graph and makes me feel a little bit better.
I copied a 5.5GB file using copy and paste (in Windows Explorer) 3 times timing it with a stopwatch. I averaged the times and divided the average into the file size to get the transfer rates. FWIW, the measured times were quite consistent in the 3 runs.

The darker / upper 4 bars are Windows XP x64 SP2 --> Windows XP x86 SP2. The lighter / lower 4 bars are Windows XP x86 SP2 --> Windows XP x64 SP2. Push means the sending machine initiated the transfer. Pull means the receiving machine initiated the transfer.
 
Back
Top