Benchmark Linux systems with sysbench

Mar 24, 2024 by Thibault Debatty | 170 views

Linux Sysadmin

https://cylab.be/blog/330/benchmark-linux-systems-with-sysbench

In this blog post, I will show how to use sysbench to test the CPU, memory and storage performance of a Linux system. I also had the chance to access some diverse hardware (laptop, desktop, servers). So I'll also give some results for you to compare with.

shutterstock_1866407170.jpg

The platforms that I will benchmark are:

  • a recent laptop with a mobile Intel processor and SSD;
  • a desktop computer with Intel processor and SSD;
  • an old server equipped with 4 Xeon processors, RAID controller and spinning disks;
  • a server with AMD CPU, RAID controller and an array of SSD.

Installation

You can usually install sysbench with:

sudo apt install sysbench

CPU

Single thread

You can run sybench cpu test with:

sysbench cpu run

The result is expressed in "events per second" (4040 in the example below):

sysbench-cpu.png

Multi-thread

By default, sysbench runs cpu test with a single thread. To test multi-thread performance of your CPU, you should first determine the number of available threads:

grep processor /proc/cpuinfo | wc -l

Then you can run sysbench again, specifying the number of threads:

sysbench cpu run --threads=<threads>

Results

Platform CPU Single thread [evts/sec] Threads Multi-thread [evts/sec]
Laptop Intel Core i7-1260P 3354 16 33283
Desktop Intel Core i5-12400F 3773 12 21730
Server 1 4 x Xeon E7-4830 v3 834 96 55604
Server 2 AMD EPYC 7402P 1662 48 42003

Memory

Now, you can measure the speed of your memory with

sysbench memory run

The result is the measure transfer speed, expressed in MiB/sec.

If you want to compare your results with mine, you can also check the type and speed of your installed memory with:

sudo dmidecode --type 17

Results

Platform Memory Transfer speed [MiB/sec]
Laptop LPDDR5 6400 MHz 10691
Desktop DDR4 2133 MHz 10000
Server 1 DDR4 2133 MHz 4525
Server 2 DDR4 3200 MHz 5822

Storage

You can also use sysbench to test the performance of you storage devices. This is a little more subtle for different reasons:

  1. storage benchmarking requires to first create some test files;
  2. SSD and RAID cards have a built-in controller with cache that will largely influence the results;
  3. the default test parameters of sysbench do not reflect real-life utilization of storage devices.

So the first thing to do is to create files that will be used for testing:

sysbench fileio --file-total-size=5G --file-num=5 prepare

As mentioned above, I will use additional parameters to run the test. This will be more representative of actual usage, and allows the controller and cache to be used during the test:

  • run the test in async mode;
  • synchronize storage only once at the end of the test;
  • for sequential access test, use larger 1MB blocks;
  • for random access test, use smaller 4KB blocks.

To test random storage access:

sysbench fileio --file-total-size=5G --file-num=5 --file-io-mode=async --file-fsync-freq=0 --file-test-mode=rndrd --file-block-size=4k run
sysbench fileio --file-total-size=5G --file-num=5 --file-io-mode=async --file-fsync-freq=0 --file-test-mode=rndwr --file-block-size=4k run

To test sequential access:

sysbench fileio --file-total-size=5G --file-num=5 --file-io-mode=async --file-fsync-freq=0 --file-test-mode=seqrd --file-block-size=1M run
sysbench fileio --file-total-size=5G --file-num=5 --file-io-mode=async --file-fsync-freq=0 --file-test-mode=seqwr --file-block-size=1M run

Results

Platform Storage rnd read [MiB/sec] rnd write [MiB/sec] seq read [MiB/sec] seq write [MiB/sec]
Laptop 2TB Samsung SSD 980 PRO NVMe 4493 2853 12307 4955
Laptop 2TB Crucial X8 portable SSD 4428 1966 12278 1616
Desktop 2TB Samsung SSD 990 PRO NVMe 4206 3403 15925 8165
Server 1 RAID controller with a single 15000 rpm SAS spinning disk 1091 48 3326 418
Server 1 RAID controller with an array of 15000 rpm SAS spinning disks 1055 22 2905 490
Server 2 RAID controller with an array of SATA SSD 2615 1453 10472 2736

Also, note that you can use the following command line to check the type of storage on your system:

sudo lshw -class disk -class storage

disks.png

This blog post is licensed under CC BY-SA 4.0

This website uses cookies. More information about the use of cookies is available in the cookies policy.
Accept