Why do very large files transfer so slowly over gigabit network?

Associate
Joined
20 Apr 2003
Posts
1,316
Location
Gloucestershire
Hi All,

Bot of a weird one I've noticed over the last couple of years that when dealing with very big files (we're talking uncompressed Hi Definition video files) of 5 gigabytes or above that suddenly network transfer speeds drops to about the 8-10 MBs mark. Yet if I transfered say 5 x 1Gb files between the same two machines I'd be easily be averaging 100MBs?

Just for info, this has been something I've proven over multiple machines in varying windows OS, both between workstations and servers all of which had drives/ arrays easily capable of fully supplying maximum data transfer to the gigabit network.

The reason I'm asking is its a pain in the backside when I'm just about to transfer 9 files, the smallest of which is 6 Gb, the largest 60Gb.....

Any thoughts?

E-I
 
Hmm that's strange. I have the opposite problem, when transferring small files over the network the speed is low, but when transferring big files the speed is better.

Could be something to do with jumbo frames?
 
Hi Tingle, yes, with very small files like a big folder of mp3s etc it certainly does effect performance, but the smaller files I'm talking about are more like 100Mb each etc.

I think I've worked it out, it's something to do with buffering being enabled. I found this microsoft technet explanation where they are talking about transferring very large databases over the network and how buffering on very large files is actually really bad on the performance side of things. The fix is to use xcopy with the relatively newly added switch of /j then that disables buffering and is reccomended for very big files.

Always good to learn something new!

E-I
 
Hi Tingle, yes, with very small files like a big folder of mp3s etc it certainly does effect performance, but the smaller files I'm talking about are more like 100Mb each etc.

I think I've worked it out, it's something to do with buffering being enabled. I found this microsoft technet explanation where they are talking about transferring very large databases over the network and how buffering on very large files is actually really bad on the performance side of things. The fix is to use xcopy with the relatively newly added switch of /j then that disables buffering and is reccomended for very big files.

Always good to learn something new!

E-I

Oh nice :) Have you tried it to see it works?
 
Yup....

and it doesn't... Can't quantify exactly how fast its going with the Xcopy method as theres no transfer speed details, but bearing in mind that a file transferring at around 50MBs shows approximately 50% network usage under task manager, wheras when using this xcopy as suggested by microsoft its only suggesting about 1.5% network usage.......

Back to the drawing board!

E-I
 
I've had a similar issue when transfering files to another computer on the network but what is odd is that in some situation I can get full speed. For example if the target PC is left at the login screen, I transfer at over 100MB/s, but if the target PC is even doing something as simple as browsing the web it drops to between 10 and 15 MB/s.
 
Okay, I've got our IT company looking into this as well. Basically they had no more luck with Xcopy than I did, but did have a very interesting suggestion. They suggested trying ftp instead of a normal file transfer as they thought it might not have IO buffering in the same way a normal file transfer would. So, I've set up Filezilla server on one of the machines and filezilla client on the other and so far its giving me a failry consistent decent transfer rate.

The other thing they said, is that if we were doing direct win7-win7 transfers, that should be okay, as Windows 7 has more advanced networking than previous versions (SMBC 2 or something?). Our problem here is that all three of our video edit suites (Avids) run on Windows XP 32bit, whereas our big powerful after effects workstations that we constantly transfer footage too are all Windows 7 64bit.
 
I've had a similar issue when transfering files to another computer on the network but what is odd is that in some situation I can get full speed. For example if the target PC is left at the login screen, I transfer at over 100MB/s, but if the target PC is even doing something as simple as browsing the web it drops to between 10 and 15 MB/s.

Hm,

I wonder if whilst its at the login screen it automatically turns off the IO buffering? What size files are we talking about here?

Best,

E-I
 
Does it make any difference if you start the transfer from the XP machine?

I'll give it a try, but considering the issue appears to be IO buffer based, in theory it shouldn't make any difference?

Have to look at it tomorrow now, I'll let you know!

E-I
 
Hm,

I wonder if whilst its at the login screen it automatically turns off the IO buffering? What size files are we talking about here?

Best,

E-I

The sort of file sizes I transfer are usualy about 1.2 GB, usualy no more than 4 of these files at a time, and sometimes 20x 350 MB files. The same issue is there regardless of file size. What I'm doing on my computer seems to have little to no impact on the file transfer but if the target computer is compleatly idle with nothing running or at login prompt it goes fast.

It's strange as it seems like even the slightest CPU or HDD activity on the destination computer drops the speed to a crawl. The 2 computers in question here are Vista for the destination PC and Win7 for my PC.

The only option so far I've read may help with large file transfers is jumbo frames, but I havn't tried enabling that yet as that would only increase the max throughput and wouldn't have anything to do with throughput dropping to 10 MB/s
 
I beleive this will be the RSS kicking in, I believe the TCP window size will be reduced down, slowing down the transfers.

Dead simple to play about with if nothing else.

Show current status:

Code:
netsh int tcp show global

To disable

Code:
netsh int tcp set global rss=disabled

to enable
Code:
netsh int tcp set global rss=disabled

More details here: http://support.microsoft.com/kb/951037
 
The sort of file sizes I transfer are usualy about 1.2 GB, usualy no more than 4 of these files at a time, and sometimes 20x 350 MB files. The same issue is there regardless of file size. What I'm doing on my computer seems to have little to no impact on the file transfer but if the target computer is compleatly idle with nothing running or at login prompt it goes fast.

I'm only seeing the issue when I'm doing much bigger files than 1.2Gb, everything below about 6Gb seems fine.

E-I
 
I beleive this will be the RSS kicking in, I believe the TCP window size will be reduced down, slowing down the transfers.

Dead simple to play about with if nothing else.

Show current status:

Code:
netsh int tcp show global

To disable

Code:
netsh int tcp set global rss=disabled

to enable
Code:
netsh int tcp set global rss=disabled

More details here: http://support.microsoft.com/kb/951037

Okay, managed to do that on the windows 7 machine, showed invalid command on the XP one though. I'll start a transfer nd see if theres any obvious difference.

E-I
 
Sorry everyone, up against it at the moment so not really got the time to do any tests. I'll revisit it next week.

Thanks very much for all your help and advice!

E-I
 
Back
Top Bottom