Benchmark - Virtual Machine's Performance with SSD Cache
One of the queries we get is whether will the virtual machines (under Synology Virtual Machine Manager) benefit from the SSD cache on the Synology NAS?
To find out whether Synology Virtual Machine Manager will benefit from SSD cache, we will be using Fio to benchmark the virtual machine’s performance on DS1817+. Fio will be running within the virtual machine under the following scenarios:
- DS1817+’s SSD cache is not enabled;
- DS1817+’s SSD read cache is enabled; and
- DS1817+’s SSD read-write cache is enable.
We will be using a Ubuntu 16.04 LTS Linux OS as the virtual machine for this benchmark. Why not a Microsoft Windows OS? Well, it is to standardise the testing tool – Fio.
The virtual machine have the following configuration:
- Ubuntu 16.04 LTS
- 2 vCPU
- 8GB RAM
- 50GB vHDD (Virtual disk controller: virtio)
The SSD cache works by moving frequently accessed data onto the faster storage (i.e. SSD) so that the system need not wait for the slower storage to respond.
Hence, we will go through a phrase of preconditioning before the actual benchmark test:
- Preconditioning. 5 sets of writing and reading from the pre-prepared files to allow data to be cache onto the SSD cache;
- Benchmark. 1 set of writing and reading from the same pre-prepared files.
For each sets, the IO will be 70% reads and 30% writes in 8KB blocksize for 60 seconds. The order of reads and writes are randomized.
fio --direct=1 --rw=randrw --refill_buffers --norandommap \
--randrepeat=0 --ioengine=libaio --bs=8k --rwmixread=70 \
--iodepth=16 --numjobs=10 --runtime=60 --group_reporting \
Virtual Machine’s Performance SSD Cache Benchmark Summary
The benchmark results from the virtual machine under various SSD cache configurations are as follow.
|Read (MB/s)||Write (MB/s)|
|Without SSD Cache||2.56||1.13|
|SSD Read Cache – WD Blue 250GB M.2||3.73||1.62|
|SSD Read Cache – Samsung 850 EVO 250GB M.2||3.75||1.63|
|SSD Read-write Cache||10.88||4.67|
|Avg Read Latency (ms)||Max Read Latency (ms)||Avg Write Latency (ms)||Max Write Latency (ms)|
|Without SSD Cache||342.72||2,999.3||329.68||2,998.3|
|SSD Read Cache – WD Blue 250GB M.2||237.32||3,707.3||224.54||3,356.9|
|SSD Read Cache – Samsung 850 EVO 250GB M.2||233.89||3,619.3||227.29||3,618.8|
|SSD Read-write Cache||81.56||831.56||77.46||831.14|
|Read IOPS||Write IOPS|
|Without SSD Cache||327||144|
|SSD Read Cache – WD Blue 250GB M.2||477||207|
|SSD Read Cache – Samsung 850 EVO 250GB M.2||480||208|
|SSD Read-write Cache||1392||597|
Findings when SSD read cache is enabled
When SSD read cache is enabled, both the virtual machine’s read and write latencies by the noticeably dropped. Both read and write IOPS improved with reads having the most improvement. Both read and write throughput improved.
Findings when SSD read-write cache is enabled
When SSD read-write cache is enabled, we observed great reduction in terms of read and write latencies. There is approximately 280% to 400% reduction in reading and writing latencies.
Similarly, stark improvement in both throughput and IOPS were also observed. Input/ Output per second (IOPS) also improved as much as 400%.