Yet Another Benchmark Script (YABS) - Linux Benchmarking Script using fio, iperf, & Geekbench

Yeah, I’m not sure what it is but sometimes Debian 10 and Ubuntu 19.xx have issues randomly. Sometimes it works, sometimes it doesn’t, not entirely sure why. I’m adding a fallback to run a dd test if the fio test fails for whatever reason.

1 Like

@Mason The Geekbench 4 test fails on most of the newer OS releases (like CentOS 8), too lazy to check myself right now but just wanted to add to the rest. Best bench script sir.

Ryzen 3950X 4GB KVM plan in Texas. 4 Cores, no passthrough.

# ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## #
#              Yet-Another-Bench-Script              #
#                     v2020-02-04                    #
# https://github.com/masonr/yet-another-bench-script #
# ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## #

Fri Feb  7 11:24:08 CST 2020

Basic System Information:
---------------------------------
Processor  : AMD EPYC Processor (with IBPB)
CPU cores  : 4 @ 3493.438 MHz
AES-NI     : ✔ Enabled
VM-x/AMD-V : ❌ Disabled
RAM        : 3.8G
Swap       : 0B
Disk       : 58G

fio Disk Speed Tests (Mixed R/W 50/50):
---------------------------------
Block Size | 4kb           (IOPS) | 64kb          (IOPS)
  ------   | ---            ----  | ----           ----
Read       | 287.21 MB/s  (71.8k) | 571.33 MB/s   (8.9k)
Write      | 287.97 MB/s  (71.9k) | 574.33 MB/s   (8.9k)
Total      | 575.19 MB/s (143.7k) | 1.14 GB/s    (17.9k)
           |                      |
Block Size | 512kb         (IOPS) | 1mb           (IOPS)
  ------   | -----          ----  | ---            ----
Read       | 742.59 MB/s   (1.4k) | 887.43 MB/s    (866)
Write      | 782.05 MB/s   (1.5k) | 946.53 MB/s    (924)
Total      | 1.52 GB/s     (2.9k) | 1.83 GB/s     (1.7k)

iperf3 Network Speed Tests (IPv4):
---------------------------------
Provider                  | Location (Link)           | Send Speed      | Recv Speed
                          |                           |                 |
Bouygues Telecom          | Paris, FR (10G)           | 1.59 Gbits/sec  | 1.36 Gbits/sec
Online.net                | Paris, FR (10G)           | 1.78 Gbits/sec  | 1.39 Gbits/sec
Worldstream               | The Netherlands (10G)     | 1.20 Gbits/sec  | 1.30 Gbits/sec
wilhelm.tel               | Hamburg, DE (10G)         | 1.09 Gbits/sec  | 1.35 Gbits/sec
Biznet                    | Bogor, Indonesia (1G)     | 478 Mbits/sec   | 76.2 Mbits/sec
Hostkey                   | Moscow, RU (1G)           | 815 Mbits/sec   | 845 Mbits/sec
Velocity Online           | Tallahassee, FL, US (10G) | 2.81 Gbits/sec  | 2.78 Gbits/sec
Airstream Communications  | Eau Claire, WI, US (10G)  | 3.67 Gbits/sec  | 6.91 Gbits/sec
Hurricane Electric        | Fremont, CA, US (10G)     | 3.94 Gbits/sec  | 5.17 Gbits/sec

iperf3 Network Speed Tests (IPv6):
---------------------------------
Provider                  | Location (Link)           | Send Speed      | Recv Speed
                          |                           |                 |
Bouygues Telecom          | Paris, FR (10G)           | 1.75 Gbits/sec  | 409 Mbits/sec
Online.net                | Paris, FR (10G)           | 2.04 Gbits/sec  | 167 Mbits/sec
Worldstream               | The Netherlands (10G)     | 1.45 Gbits/sec  | 1.48 Gbits/sec
wilhelm.tel               | Hamburg, DE (10G)         | 1.21 Gbits/sec  | 1.50 Gbits/sec
Airstream Communications  | Eau Claire, WI, US (10G)  | 3.36 Gbits/sec  | 5.66 Gbits/sec
Hurricane Electric        | Fremont, CA, US (10G)     | 3.89 Gbits/sec  | 5.18 Gbits/sec

Performing Geekbench 4 benchmark test. This may take a couple minutes to complete...
Geekbench 4 Benchmark Test:
---------------------------------
Test            | Value
                |
Single Core     | 5296
Multi Core      | 16361
Full Test       | https://browser.geekbench.com/v4/cpu/15208559
1 Like

Interesting. Hopefully Geekbench 5 won’t have the same issues. The script will be moving to use v5 by default once I get that in there soon.

Thanks for the kind words and for testing it out! :slight_smile:

NexusBytes Ryzen 7 3700X

# ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## #
#              Yet-Another-Bench-Script              #
#                     v2020-02-04                    #
# https://github.com/masonr/yet-another-bench-script #
# ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## #

Fri 07 Feb 2020 03:44:39 PM EST

Basic System Information:
---------------------------------
Processor  : AMD Ryzen 7 3700X 8-Core Processor
CPU cores  : 2 @ 3593.248 MHz
AES-NI     : ✔ Enabled
VM-x/AMD-V : ✔ Enabled
RAM        : 1.9Gi
Swap       : 0B
Disk       : 25G

fio Disk Speed Tests (Mixed R/W 50/50):
---------------------------------
Block Size | 4kb           (IOPS) | 64kb          (IOPS)
  ------   | ---            ----  | ----           ----
Read       | 57.14 MB/s   (14.2k) | 736.75 MB/s  (11.5k)
Write      | 57.24 MB/s   (14.3k) | 740.63 MB/s  (11.5k)
Total      | 114.38 MB/s  (28.5k) | 1.47 GB/s    (23.0k)
       |                      |
Block Size | 512kb         (IOPS) | 1mb           (IOPS)
  ------   | -----          ----  | ---            ----
Read       | 1.77 GB/s     (3.4k) | 1.94 GB/s     (1.9k)
Write      | 1.87 GB/s     (3.6k) | 2.07 GB/s     (2.0k)
Total      | 3.64 GB/s     (7.1k) | 4.02 GB/s     (3.9k)

iperf3 Network Speed Tests (IPv4):
---------------------------------
Provider                  | Location (Link)           | Send Speed      | Recv Speed
                      |                           |                 |
Bouygues Telecom          | Paris, FR (10G)           | 921 Mbits/sec   | 915 Mbits/sec
Online.net                | Paris, FR (10G)           | 929 Mbits/sec   | 901 Mbits/sec
Worldstream               | The Netherlands (10G)     | busy            | 918 Mbits/sec
wilhelm.tel               | Hamburg, DE (10G)         | 929 Mbits/sec   | 915 Mbits/sec
Biznet                    | Bogor, Indonesia (1G)     | 405 Mbits/sec   | 203 Mbits/sec
Hostkey                   | Moscow, RU (1G)           | 892 Mbits/sec   | 641 Mbits/sec
Velocity Online           | Tallahassee, FL, US (10G) | 433 Mbits/sec   | 305 Mbits/sec
Airstream Communications  | Eau Claire, WI, US (10G)  | 584 Mbits/sec   | 283 Mbits/sec
Hurricane Electric        | Fremont, CA, US (10G)     | 366 Mbits/sec   | 350 Mbits/sec

Geekbench 4 Benchmark Test:
---------------------------------
Test            | Value
            |
Single Core     | 5431
Multi Core      | 9490
Full Test       | https://browser.geekbench.com/v4/cpu/15208940
1 Like

Errors here as well on a long forgotten Ubuntu install not mine I swear

It’s failing on a Ubuntu 16 LTS, strace confirms SIGILL and a quick run with gdb shows

(gdb) run
Starting program: /home/test/gits/yet-another-bench-script/bin/fio_x64 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Program received signal SIGILL, Illegal instruction.
fio_client_hash_init () at client.c:92
92      client.c: No such file or directory.
(gdb) bt
#0  fio_client_hash_init () at client.c:92
#1  0x000000000048a8bd in __libc_csu_init ()
#2  0x00007ffff70fb7bf in __libc_start_main (main=0x40ce30 <main>, argc=1, argv=0x7fffffffeb58, init=0x48a860 <__libc_csu_init>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffffffeb48)
    at ../csu/libc-start.c:247
#3  0x000000000040cf0d in _start ()
(gdb)

Personally I’d ask the user to apt/dnf/apt-get/yum install fio, or build a predefined version like serverscope does, or skip it. I’d add a --help or -h switch to detail other switches, like -g, in case a user doesn’t want to double check the README in the github repo and isn’t generally too fond about downloading precompiled binaries from the net
Just my 2 tiny brexited eurocents, thank you for your work :v:

1 Like

Some updates were pushed up to the repo last night. Here’s the major changes –

  • Geekbench 5 - using v5 test by default now (can be overridden to do a v4 test instead with the ‘-4’ flag)
  • Local fio/iperf3 Packages - local packages will take precedence over precompiled binaries, so if fio and/or iperf3 are already installed on the tested system, it will use the local packages instead. Should help iron out the incompatibility issues with the precompiled binaries
  • dd Fallback - if the fio disk test fails for whatever reason, the script will run a dd test instead and show those results so the disk is tested in some way rather than not at all
  • Added a ‘reduce’ option (‘-r’ flag), which will reduce the number of tested iperf3 locations to reduce the bandwidth burden on the tested system. It will limit the iperf3 tests to only use three locations (Online.net (FR), WorldStream (NL), and Hurricane Electric (US))
  • Added a help printout option (‘-h’ flag), which can be treated as a dry-run for the script. It will tell you the usage, accepted flags, detected host arch (x64/x86), detected flags (whatever you passed it along with the -h flag), and the local package check (if preinstalled fio/iperf3 are detected)

Please report any errors to me and I’ll get them addressed. Cheers!

Here’s the sample help output –

~/yet-another-bench-script$ ./yabs.sh -id4hr
# ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## #
#              Yet-Another-Bench-Script              #
#                     v2020-02-10                    #
# https://github.com/masonr/yet-another-bench-script #
# ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## #

Mon Feb 10 23:50:10 EST 2020

Usage: ./yabs.sh [-fdighr4]
       curl -sL yabs.sh | bash
       curl -sL yabs.sh | bash -s -- -{fdighr4}

Flags:
       -f/d : skips the fio disk benchmark test
       -i : skips the iperf network test
       -g : skips the geekbench performance test
       -h : prints this lovely message, shows any flags you passed,
            shows if fio/iperf3 local packages have been detected,
            then exits
       -r : reduce number of iperf3 network locations (to only three)
            to lessen bandwidth usage
       -4 : use geekbench 4 instead of geekbench 5

Detected Arch: x64

Detected Flags:
       -f/d, skipping fio disk benchmark test
       -i, skipping iperf network test
       -r, using reduced (3) iperf3 locations
       -4, running geekbench 4 instead of 5

Local Binary Check:
       fio not detected, will download precompiled binary
       iperf3 detected, using local package

Exiting...
4 Likes

2 Likes
# ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## #
#              Yet-Another-Bench-Script              #
#                     v2020-02-10                    #
# https://github.com/masonr/yet-another-bench-script #
# ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## #

Tue 11 Feb 2020 09:53:16 AM PST

Basic System Information:
---------------------------------
Processor  : Intel(R) Xeon(R) CPU           X5650  @ 2.67GHz
CPU cores  : 1 @ 2666.748 MHz
AES-NI     : ❌ Disabled
VM-x/AMD-V : ❌ Disabled
RAM        : 3.8Gi
Swap       : 2.0Gi
Disk       : 98G

Generating fio test file...main: line 213: 25518 Illegal instruction     $FIO_CMD --name=setup --ioengine=libaio --rw=read --bs=4k --iodepth=64 --numjobs=2 --size=2G --runtime=1 --gtod_reduce=1 --filename=$DISK_PATH/test.fio --direct=1 --minimal &> /dev/null
fio disk speed tests failed. Run manually to determine cause.
Running dd test as fallback...

dd Sequential Disk Speed Tests:
---------------------------------
       | Test 1      | Test 2      | Test 3      | Avg
       |             |             |             |
Write  | 32.4 MB/s   | 52.8 MB/s   | 51.0 MB/s   | 45.40  MB/s
Read   | 130 MB/s    | 124 MB/s    | 132 MB/s    | 128.67 MB/s

iperf3 Network Speed Tests (IPv4):
---------------------------------
Provider                  | Location (Link)           | Send Speed      | Recv Speed
                          |                           |                 |
Bouygues Telecom          | Paris, FR (10G)           | 827 Mbits/sec   | 257 Mbits/sec
Online.net                | Paris, FR (10G)           | 854 Mbits/sec   | 278 Mbits/sec
WorldStream               | The Netherlands (10G)     | 826 Mbits/sec   | 291 Mbits/sec
wilhelm.tel               | Hamburg, DE (10G)         | 786 Mbits/sec   | 300 Mbits/sec
Biznet                    | Bogor, Indonesia (1G)     | 468 Mbits/sec   | 39.3 Mbits/sec
Hostkey                   | Moscow, RU (1G)           | 814 Mbits/sec   | 831 Mbits/sec
Velocity Online           | Tallahassee, FL, US (10G) | 898 Mbits/sec   | 303 Mbits/sec
Airstream Communications  | Eau Claire, WI, US (10G)  | 906 Mbits/sec   | 649 Mbits/sec
Hurricane Electric        | Fremont, CA, US (10G)     | busy            | 852 Mbits/sec

Geekbench 5 Benchmark Test:
---------------------------------
Test            | Value
                |
Single Core     | 309
Multi Core      | 301
Full Test       | https://browser.geekbench.com/v5/cpu/1200509
2 Likes

Thanks for the test! Glad the dd fallback kicked in as intended. If you install fio locally on your machine and rerun, it should hopefully detect the local fio package and use that instead of the precompiled binary

# ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## #
#              Yet-Another-Bench-Script              #
#                     v2020-02-10                    #
# https://github.com/masonr/yet-another-bench-script #
# ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## #

Tue 11 Feb 2020 10:34:38 AM PST

Basic System Information:
---------------------------------
Processor  : Intel(R) Xeon(R) CPU           X5650  @ 2.67GHz
CPU cores  : 1 @ 2666.748 MHz
AES-NI     : ❌ Disabled
VM-x/AMD-V : ❌ Disabled
RAM        : 3.8Gi
Swap       : 2.0Gi
Disk       : 98G

fio Disk Speed Tests (Mixed R/W 50/50):
---------------------------------
Block Size | 4kb           (IOPS) | 64kb          (IOPS)
  ------   | ---            ----  | ----           ----
Read       | 873.00 KB/s    (218) | 11.17 MB/s     (174)
Write      | 910.00 KB/s    (227) | 11.71 MB/s     (183)
Total      | 1.78 MB/s      (445) | 22.89 MB/s     (357)
           |                      |
Block Size | 512kb         (IOPS) | 1mb           (IOPS)
  ------   | -----          ----  | ---            ----
Read       | 37.04 MB/s      (72) | 40.73 MB/s      (39)
Write      | 39.17 MB/s      (76) | 44.03 MB/s      (43)
Total      | 76.21 MB/s     (148) | 84.77 MB/s      (82)

iperf3 Network Speed Tests (IPv4):
---------------------------------
Provider                  | Location (Link)           | Send Speed      | Recv Speed
                          |                           |                 |
Online.net                | Paris, FR (10G)           | 853 Mbits/sec   | 248 Mbits/sec
WorldStream               | The Netherlands (10G)     | 824 Mbits/sec   | 348 Mbits/sec
Hurricane Electric        | Fremont, CA, US (10G)     | 946 Mbits/sec   | 936 Mbits/sec

Geekbench 5 Benchmark Test:
---------------------------------
Test            | Value
                |
Single Core     | 282
Multi Core      | 306
Full Test       | https://browser.geekbench.com/v5/cpu/1200764
2 Likes

I suggest making the Speed Tests with only 3 locations the default, and make an option for an extended test

3 Likes

That’s valid and I can see the reasoning behind doing so. Might take a quick poll on that topic to see what everyone else thinks about it.

we need MOARRRR speedtests by default. I am lazy and want it all… without the need of an additional switch or command LOL

works nicely btw with detecting the preinstalled versions, thanks so much!!

2 Likes

1&1 VPS S £1.20 month

# ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## #
#              Yet-Another-Bench-Script              #
#                     v2020-02-10                    #
# https://github.com/masonr/yet-another-bench-script #
# ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## #

Wed 12 Feb 2020 07:27:32 PM UTC

Basic System Information:
---------------------------------
Processor  : Intel(R) Xeon(R) Gold 5120 CPU @ 2.20GHz
CPU cores  : 1 @ 2194.844 MHz
AES-NI     : ✔ Enabled
VM-x/AMD-V : ❌ Disabled
RAM        : 458Mi
Swap       : 1.9Gi
Disk       : 7.9G

fio Disk Speed Tests (Mixed R/W 50/50):
---------------------------------
Block Size | 4kb           (IOPS) | 64kb          (IOPS)
  ------   | ---            ----  | ----           ----
Read       | 251.39 MB/s  (62.8k) | 858.99 MB/s  (13.4k)
Write      | 252.06 MB/s  (63.0k) | 863.51 MB/s  (13.4k)
Total      | 503.45 MB/s (125.8k) | 1.72 GB/s    (26.9k)
           |                      |
Block Size | 512kb         (IOPS) | 1mb           (IOPS)
  ------   | -----          ----  | ---            ----
Read       | 868.20 MB/s   (1.6k) | 1.02 GB/s      (997)
Write      | 914.33 MB/s   (1.7k) | 1.08 GB/s     (1.0k)
Total      | 1.78 GB/s     (3.4k) | 2.11 GB/s     (2.0k)

iperf3 Network Speed Tests (IPv4):
---------------------------------
Provider                  | Location (Link)           | Send Speed      | Recv Speed
                          |                           |                 |
Bouygues Telecom          | Paris, FR (10G)           | 416 Mbits/sec   | 401 Mbits/sec
Online.net                | Paris, FR (10G)           | 417 Mbits/sec   | 401 Mbits/sec
WorldStream               | The Netherlands (10G)     | 414 Mbits/sec   | 399 Mbits/sec
wilhelm.tel               | Hamburg, DE (10G)         | 413 Mbits/sec   | 399 Mbits/sec
Biznet                    | Bogor, Indonesia (1G)     | 332 Mbits/sec   | 327 Mbits/sec
Hostkey                   | Moscow, RU (1G)           | 408 Mbits/sec   | 389 Mbits/sec
Velocity Online           | Tallahassee, FL, US (10G) | 388 Mbits/sec   | 381 Mbits/sec
Airstream Communications  | Eau Claire, WI, US (10G)  | 380 Mbits/sec   | 378 Mbits/sec
Hurricane Electric        | Fremont, CA, US (10G)     | busy            | busy

Geekbench 4 Benchmark Test:
---------------------------------
Test            | Value
                |
Single Core     | 3172
Multi Core      | 2987
Full Test       | https://browser.geekbench.com/v4/cpu/15222764
3 Likes

Got the following:

Generating fio test file...main: line 213:   948 Illegal instruction     $FIO_CMD --name=setup --ioengine=libaio --rw=read --bs=4k --iodepth=64 --numjobs=2 --size=2G --runtime=1 --gtod_reduce=1 --filename=$DISK_PATH/test.fio --direct=1 --minimal &> /dev/null
fio disk speed tests failed. Run manually to determine cause.
Running dd test as fallback...

Debian 9, 64bit, updated with Leapswitch (KVM).

I opened an issue days ago:

2 Likes

cat /proc/cpuinfo | grep "model name" | tail -1 ?

If it’s generic, then it’s probably the issue the @psb has opened.

Edit: @psb - was about to comment on your issue and start testing it :slight_smile:

2 Likes

Yep.

[root@miguelsp ~]# cat /proc/cpuinfo | grep "model name" | tail -1
model name      : Common KVM processor

Same on CentOS 8 btw.

1 Like

Maybe the same also applies to other CPU’s?

I get illegal instruction on:
Intel(R) Xeon(R) CPU E5649 @ 2.53GHz

Should AVX be a flag in /proc/cpuinfo? (It’s not.)

1 Like

Yes, as long as the CPU lacks the AVX flag it will cause the illegal instruction error.

2 Likes