Thursday, April 17, 2014

Robocopy Benchmarks

I have wanted to do this for some time. Having been introduced to the new multi-threading options in Robocopy by a colleague, I wanted to see exactly how fast it could be.

Firstly, lets describe the environment for the test.

Source Machine
Windows 2008 R2
2 x Dual Core Intel Xeon CPUs @3.00 GHz
16GB Memory
1GB NIC

Target Machine
Windows 2012 R2
This is a VMWare guest on a host with 2 x Xeon CPUs @ 2.6GHz
4 virtual dual core processors
32GB of virtual memory
1GB NIC

Hopefully the hardware details are irrelevant since we are only interested in relative times between the different uses of Robocopy.

Data
The data size was 50GB, comprising 140,000 files of various types found typically in an office environment (Word, Excel, PDF etc.)

Here is the syntax and results

Syntax                                                                                             Copy (Mins)
robocopy source destination                           331
Drag and Drop                                         210
robocopy source destination /np                       198
robocopy source destination /np /nfl /ndl             151
robocopy source destination /np /nfl /ndl /mt:2       133
robocopy source destination /np /nfl /ndl /mt:4        84
robocopy source destination /np /nfl /ndl /mt:8        44
robocopy source destination /np /nfl /ndl /mt:16       21
robocopy source destination /np /nfl /ndl /mt:32       17
robocopy source destination /np /nfl /ndl /mt:64       15
robocopy source destination /np /nfl /ndl /mt:128      12


(Results: Click to Enlarge)

There are several interesting observations I'm going to make:

  • There is an amazing difference between test 1 & 3 caused by the addition of the /np switch. This suppresses the real-time 'percentage complete' output to the screen, and you really don't need itt.
  • The similarities between test 2 & 3 are startling, Windows 'drag-n-drop' used to be notoriously slow, but I have a hunch it now uses RoboCopy under the covers.
  • Sample 4 suppresses all progress information from the screen, but interestingly it still outputs errors. When you are moving 140,000 files, believe me, that is all you want to see. For that option to drop from around 5.5 hours to around 2.5 hours is just amazing. In a moment we will start looking at the results using the multi-threading but remember, the /np /nfl /ndl switches are available on any operating system so even if you have, say, Windows 2003 you can seriously turbo-boost your copy by ditching all the screen output.
  • So! Multi-threading - a glance at samples 5 - 11 and you can see things really take off. Let's cut to the chase we reconfigured a 5.5 hour copy down to 12 minutes. That's seriously fast!
  • You will see the improvement drops off for me on samples 9, 10 & 11 as I start to hit contention on CPU and NIC.
But it gets better, some of these tests were performed while 16,000 users were also using the source as a fileserver. I continued my tests during a quieter weekend period and moved 8TB (10,000,000 files) of data in 25 hours! That equates to 932Mb/sec or 111 files per second.

So as you can see, there is a lot of power to be had using RoboCopy. Happy copying!

Cheers

2 comments:

  1. This comment has been removed by a blog administrator.

    ReplyDelete
  2. This comment has been removed by a blog administrator.

    ReplyDelete