Wednesday, 10 February 2016

Benchmarking Delta Transfers Part 1 : Creating the Data

While tweaking Yintersync.NET we have found that bench-marking is tricky as the performance depends entirely on the distribution and size of the changes. What we aim to do here is generate consistent data change which is vaguely analogous to the real world.

In our environment, the rate of change on our servers on a 600 user system is typically around 0.5% per day so we we are going to generate and change data close to those specs.

Our test data set will consist of one big and many small files.
  • 32768 x 32 KB randomly generated files which will have 1% change.
  • single 10 GB file made from merging all the 1 MB files into one file (1% change)
To generate our test data we used Random Data File Creator, and a batch file.

@echo off
set test=d:\test
set tools=c:\tools
mkdir %test%\temp
mkdir %test%\set1\32kb
mkdir %test%\set1\10gb
mkdir %test%\set2\32kb
mkdir %test%\set2\10gb
for /l %%x in (10001,1,42768) do "%tools%\rdfc.exe" "%test%\set1\32kb\32kb%%x.bin" 32 kB overwrite
for /l %%x in (10001,1,20240) do "%tools%\rdfc.exe"  "%test%\temp\1024kb%%x.bin" 1 MB overwrite
copy /b "%test%\temp\1024kb*.bin" "%test%\set1\10gb\10gb-1mb-block.bin" /y
robocopy %test%\set1\32kb %test%\set2\32kb /mir
for /l %%x in (10001,100,42768) do "%tools%\rdfc.exe" "%test%\set2\32kb\32kb%%x.bin" 32 kB overwrite
for /l %%x in (10001,100,20240) do "%tools%\rdfc.exe"  "%test%\temp\1024kb%%x.bin" 1 MB overwrite
copy /b "%test%\temp\1024kb*.bin" "%test%\set2\10gb\10gb-1mb-block.bin" /y
rmdir "%test%\temp" /s /q

This batch file creates two data sets in sub-folders of test path which have a 1% difference.

We now have a data set which we can quickly and consistently modify. In the next post we will setup a system specifically for bench-marking.

No comments:

Post a comment