# Perform bechmarks on the filesystem

- To test the speed of the filesystem (not the physical disk!) you can use the following script:

<div class="sourceCode" id="bkmrk-%23%21%2Fbin%2Fbash-%23-usage%3A">```
<span id="bkmrk-"><a aria-hidden="true" href="#bkmrk-" tabindex="-1"></a></span>
<span id="bkmrk-%23%21%2Fbin%2Fbash"><a aria-hidden="true" href="#bkmrk-%23%21%2Fbin%2Fbash" tabindex="-1"></a><span class="co">#!/bin/bash</span></span>
<span id="bkmrk--1"><a aria-hidden="true" href="#bkmrk--1" tabindex="-1"></a></span>
<span id="bkmrk-%23-usage%3A"><a aria-hidden="true" href="#bkmrk-%23-usage%3A" tabindex="-1"></a><span class="co"># USAGE:</span></span>
<span id="bkmrk-%23-.%2Fspeed_test.sh-%2Fp"><a aria-hidden="true" href="#bkmrk-%23-.%2Fspeed_test.sh-%2Fp" tabindex="-1"></a><span class="co"># ./speed_test.sh /path/to/my/file /path/to/destination number_of_tests</span></span>
<span id="bkmrk--2"><a aria-hidden="true" href="#bkmrk--2" tabindex="-1"></a></span>
<span id="bkmrk-num_tests%3D%243"><a aria-hidden="true" href="#bkmrk-num_tests%3D%243" tabindex="-1"></a><span class="va">NUM_TESTs</span><span class="op">=</span><span class="va">$3</span></span>
<span id="bkmrk-sum%3D0"><a aria-hidden="true" href="#bkmrk-sum%3D0" tabindex="-1"></a><span class="va">SUM</span><span class="op">=</span>0</span>
<span id="bkmrk-for-i-in-%24%28-seq-1-%24n"><a aria-hidden="true" href="#bkmrk-for-i-in-%24%28-seq-1-%24n" tabindex="-1"></a><span class="cf">for</span> i <span class="kw">in</span> <span class="va">$(</span> <span class="fu">seq</span> 1 <span class="va">$NUM_TESTs</span> <span class="va">)</span><span class="kw">;</span> <span class="cf">do</span></span>
<span id="bkmrk--3"><a aria-hidden="true" href="#bkmrk--3" tabindex="-1"></a></span>
<span id="bkmrk-rec%3D%60dd-if%3D%241-of%3D%242-"><a aria-hidden="true" href="#bkmrk-rec%3D%60dd-if%3D%241-of%3D%242-" tabindex="-1"></a><span class="va">REC</span><span class="op">=</span><span class="kw">`</span><span class="fu">dd</span> if=<span class="va">$1</span> of=<span class="va">$2</span> <span class="dv">2</span><span class="op">></span> some_random_file_ <span class="kw">;</span> <span class="fu">cat</span> some_random_file_ <span class="kw">|</span> <span class="fu">cut</span> <span class="at">-d</span> <span class="st">" "</span> <span class="at">-f8</span> <span class="kw">|</span> <span class="fu">tail</span> <span class="at">-1</span><span class="kw">`</span></span>
<span id="bkmrk--4"><a aria-hidden="true" href="#bkmrk--4" tabindex="-1"></a></span>
<span id="bkmrk-sum%3D%60echo-%24sum-%2B-%24re"><a aria-hidden="true" href="#bkmrk-sum%3D%60echo-%24sum-%2B-%24re" tabindex="-1"></a><span class="va">SUM</span><span class="op">=</span><span class="kw">`</span><span class="bu">echo</span> <span class="va">$SUM</span> + <span class="va">$REC</span> <span class="kw">|</span> <span class="fu">bc</span><span class="kw">`</span></span>
<span id="bkmrk--5"><a aria-hidden="true" href="#bkmrk--5" tabindex="-1"></a></span>
<span id="bkmrk-done"><a aria-hidden="true" href="#bkmrk-done" tabindex="-1"></a><span class="cf">done</span></span>
<span id="bkmrk--6"><a aria-hidden="true" href="#bkmrk--6" tabindex="-1"></a></span>
<span id="bkmrk-result%3D%60echo-%24sum-%2F-"><a aria-hidden="true" href="#bkmrk-result%3D%60echo-%24sum-%2F-" tabindex="-1"></a><span class="va">RESULT</span><span class="op">=</span><span class="kw">`</span><span class="bu">echo</span> <span class="va">$SUM</span> / <span class="va">$NUM_TESTs</span> <span class="kw">|</span> <span class="fu">bc</span> <span class="kw">|</span>  <span class="fu">awk</span> <span class="st">'{ str1=str1 $0 }END{ print str1 }'</span><span class="kw">`</span></span>
<span id="bkmrk--7"><a aria-hidden="true" href="#bkmrk--7" tabindex="-1"></a></span>
<span id="bkmrk-echo-%24result-mb%2Fs"><a aria-hidden="true" href="#bkmrk-echo-%24result-mb%2Fs" tabindex="-1"></a><span class="bu">echo</span> <span class="va">$RESULT</span> MB/s</span>
<span id="bkmrk--8"><a aria-hidden="true" href="#bkmrk--8" tabindex="-1"></a></span>
<span id="bkmrk-%23clean-up"><a aria-hidden="true" href="#bkmrk-%23clean-up" tabindex="-1"></a><span class="co">#clean up</span></span>
<span id="bkmrk-rm-some_random_file_"><a aria-hidden="true" href="#bkmrk-rm-some_random_file_" tabindex="-1"></a><span class="fu">rm</span> some_random_file_</span>
<span id="bkmrk-rm-%242"><a aria-hidden="true" href="#bkmrk-rm-%242" tabindex="-1"></a><span class="fu">rm</span> <span class="va">$2</span></span>
```

</div>- To make a big file, use

`cat /dev/zero > zerofile`

and abort it with CTRL-C after a few seconds.

Alternatively, you can use something like

`dd if=/dev/zero of=file.out bs=1MB count=500`

to create a 500MB file.

- Start the script like this:

`./speed_test.sh /mnt/sda1/zerofile /mnt/sdb1/zerofilecopy 3`

The result will be something like

`./speed_test.sh ./zerofile ./2delete 5`  
`237 MB/s`