How to do a Memory benchmark test

We will explain how you can test and compare the performance of our instance flavors. We will use an Ubuntu VM and test the Memory. You can repeat these tests on any similar platform and compare the results.

Other benchmarks

Memory

Most people don't worry about memory and look for fast CPUs. Faster memory means your service has fewer delays which translate to better application performance so it is a big deal. Memory transfer is used nearly everywhere, caching, disk io, network, transferring computed results, etc.
We do monitor all our memory busses to see if they're saturated. The Geekbench 4 test used to have a memory section but they dropped it in version 5 so we'll use some other tools.

dd

With dd you can just copy memory.

dd if=/dev/zero of=/dev/null bs=1M count=10240
10240+0 records in
10240+0 records out
10737418240 bytes (11 GB, 10 GiB) copied, 0.801567 s, 13.4 GB/s

This shows it took less than a second to copy 10240 1M blocks (10GB of data) at a rate of 13.4 GB per second.

sysbench

Sysbench is a benchmark suite. It has multiple tests, we'll use it to test our memory latency and throughput.

Installation

sudo apt update && sudo apt install sysbench

Running the test

sysbench --test=memory --memory-block-size=1M --memory-total-size=10G run

Results

The test shows we have an average memory latency of 0.13ms and a bandwidth of almost 8GB per second for this flavor.

Running the test with following options:
Number of threads: 1
Initializing random number generator from current time


Running memory speed test with the following options:
block size: 1024KiB
total size: 10240MiB
operation: write
scope: global

Initializing worker threads...

Threads started!

Total operations: 10240 ( 7887.68 per second)

10240.00 MiB transferred (7887.68 MiB/sec)


General statistics:
total time: 1.2964s
total number of events: 10240

Latency (ms):
min: 0.05
avg: 0.13
max: 32.45
95th percentile: 0.12
sum: 1288.20

Threads fairness:
events (avg/stddev): 10240.0000/0.00
execution time (avg/stddev): 1.2882/0.00

mbw

MWB is a memory bandwidth monitoring tool. It copies large arrays of data fom memory to memory. 

Installation

sudo apt update && sudo apt install mbw

Running

mbw -t2 512 -n 10| grep AVG 

Results

This instance has an average memory copy speed of nearly 6 GB/second

AVG	Method: MCBLOCK	Elapsed: 0.08552	MiB: 512.00000	Copy: 5986.918 MiB/s