At my day job we have a disaster recovery (DR) site a few thousand miles away. Between our main data center and our DR site, we have a 100Mbps dedicated transport link. It's used to transfer files, and be the path for database mirroring etc.
One problem that we noticed was that when we needed to copy large files, it would take forever. We would use your typical SMB/CIFS share and copy files. What we noticed was that although the transport link was 100Mbps, our NICs were 1Gbps and our local switches are 1Gbps switches, we would still only see file transfers at around 10Mbps.
That's just not good enough. Especially when you have a lot of large files you need to copy relatively quickly. I'm talking hours not days here anyway.
Well to solve this problem, I remembered the good old fashioned Robocopy! In fact, the latest versions of Robocopy, that now comes pre-installed in Windows servers by the way, has a multi-thread feature!
To max out our 100Mbps transport link, I set the threads with my Robocopy to 20 and BAM! We were sending files at close to 100Mbps!
robocopy "C:\Source" "\\DestinationServer\Destination" /mt:20 /E /V /ETA /R:2 /W:5 /R:10
Pretty simple right? The /mt switch is where you can adjust the threads used.
I've seen lots of forums and posts with people talking about copying over Windows shares being limited to 10Mbps. Using Robocopy is certainly one effective workaround!
Do you know of a different way to maximize throughput when copying files in Windows? Let us know in the comments!