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

Hey all,

So over the past few days I started working on a benchmarking script. The goal of the script was to make something slightly different than what’s already out there, which incorporates benchmark tests that we find ourselves conducting quite often, namely dd, iperf, and Geekbench.

Here is the GitHub repo where you can review the script and get some additional information:

Benchmarking Tests

The script performs three main tests:

  • dd - to estimate disk performance. (disclaimer that read speeds may be heavily affected by cache)
  • iperf - to estimate network performance using parallel threads and by testing speeds in both directions (download and upload). Both IPv4 and IPv6 iperf tests are conducted (if available)
  • Geekbench 4 - to estimate total system performance by running a vast array of different CPU/memory intensive benchmarks. Both single and multi-core scores are given along with a link to view the complete system results. The URL to claim the test and add it to your Geekbench profile is written to disk.

Running the Script

The script is very easy to run and does not require any external dependencies to be installed nor elevated privileges to run:

curl -s https://raw.githubusercontent.com/masonr/yet-another-bench-script/master/yabs.sh | bash

The script has been tested on CentOS 7, Debian 9, Debian 10, Fedora 30, Ubuntu 16.04, and Ubuntu 18.04.

Skipping Test(s): Tests can be easily skipped if you don’t want to run a specific test that’s included with this script. More info can be found on the GitHub project page linked above.

Example Output

Here is example output from the script:

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

Sun Oct  6 22:03:26 EDT 2019

Basic System Information:
---------------------------------
Processor  : Intel(R) Xeon(R) CPU E3-1230 V2 @ 3.30GHz
CPU cores  : 8 @ 1600.091 MHz
AES-NI     : ✔ Enabled
VM-x/AMD-V : ❌ Disabled
RAM        : 31G
Swap       : 7.5G
Disk       : 213G

dd Disk Speed Tests:
---------------------------------
       | Test 1     | Test 2     | Test 3     | Avg
       |            |            |            |
Write  | 361 MB/s   | 357 MB/s   | 357 MB/s   | 358.333 MB/s
Read*  | 409 MB/s   | 409 MB/s   | 410 MB/s   | 409.333 MB/s

iperf3 Network Speed Tests (IPv4):
---------------------------------
Provider                  | Location (Link)           | Send Speed      | Recv Speed
                          |                           |                 |
Bouygues Telecom          | Paris, FR (10G)           | 766 Mbits/sec   | 195 Mbits/sec
Online.net                | Paris, FR (10G)           | 771 Mbits/sec   | 156 Mbits/sec
Severius                  | The Netherlands (10G)     | 638 Mbits/sec   | 45.5 Mbits/sec
Worldstream               | The Netherlands (10G)     | 748 Mbits/sec   | 56.7 Mbits/sec
wilhelm.tel               | Hamburg, DE (10G)         | 756 Mbits/sec   | 69.1 Mbits/sec
Biznet                    | Bogor, Indonesia (1G)     | busy            | busy
Hostkey                   | Moscow, RU (1G)           | 722 Mbits/sec   | 489 Mbits/sec
Velocity Online           | Tallahassee, FL, US (1G)  | 528 Mbits/sec   | 374 Mbits/sec
Airstream Communications  | Eau Claire, WI, US (10G)  | 825 Mbits/sec   | 156 Mbits/sec
Hurricane Electric        | Fremont, CA, US (1G)      | 782 Mbits/sec   | busy

iperf3 Network Speed Tests (IPv6):
---------------------------------
Provider                  | Location (Link)           | Send Speed      | Recv Speed
                          |                           |                 |
Bouygues Telecom          | Paris, FR (10G)           | 463 Mbits/sec   | 186 Mbits/sec
Online.net                | Paris, FR (10G)           | 713 Mbits/sec   | 75.7 Mbits/sec
Severius                  | The Netherlands (10G)     | 753 Mbits/sec   | 73.5 Mbits/sec
Worldstream               | The Netherlands (10G)     | 740 Mbits/sec   | 58.6 Mbits/sec
wilhelm.tel               | Hamburg, DE (10G)         | 744 Mbits/sec   | 75.0 Mbits/sec
Airstream Communications  | Eau Claire, WI, US (10G)  | 473 Mbits/sec   | 149 Mbits/sec
Hurricane Electric        | Fremont, CA, US (1G)      | busy            | busy

Geekbench 4 Benchmark Test:
---------------------------------
Test            | Value
                |
Single Core     | 4012
Multi Core      | 13007
Full Test       | https://browser.geekbench.com/v4/cpu/14768101

More example output:

Feedback

I welcome any feedback you may have or any bug reports.

Thank you to those who provided input as this was being thought about and those who helped test the script as it was being developed – thanks FHR, Rhys, scorpio18, Joshua, & ChrisM! Testing the script on different Linux distros was done using Hetzner Cloud.

Feel free to test it out and post your results. Thanks! :slight_smile:
-Mason

14 Likes

I would strongly recommend replacing/getting rid of the “DD test” since it gives the wrong ideas, can be easily “adulterated” and so on. Mainly by the use of Hardware RAID cards that are equipped with a BBU enabled cache.

The long version can be found over at Update: Hardware vs Software RAID: The great debate.

Which sadden me that VPS providers are “pressed” to buy/rent a piece of hardware that does nothing but splits out these “fake” scores thus falsely assuring the end customers that their VPSes are “better”.

1 Like

You do realize the entire purpose of this isn’t to fudge numbers for $20/year clients, but to keep data as secure as possible in the event of power/hardware failure, right?

2 Likes

Me Gusta! Thanks man.

1 Like

Please see the attached link and the links assigned on that article.

WITH the EXCEPTION of OSes and/or platform that doesn’t support mdadm “out of the box” software RAID is as good if not BETTER at this job. Due to the open source and long “abused” use of this software RAID.

If anything Hardware RAID (even “armed” with a BBU) can make it HARDER to recover data over Software RAID IF you have the option to use mdadm in the first place.

If you’re talking about 15 year old hardware, this is correct. If you think software RAID is better than hardware for anything produced in the last decade, you’re both wrong, and dead wrong.

This is possibly true, and is generally an issue due to the proprietary nature of a hardware issue regarding the way each hardware RAID is provisioned, and proprietary in nature.

You might as well say magnetic core is more reliable than DRAM because it’s more reliable to recover since most of the bits won’t change until you move it. While technically feasible, there’s little reason to keep your hardware complete shit because you don’t know the best way to import/rebuild a degraded array.

In over 20 years, I’ve only had 2 Hardware RAIDs I couldn’t mostly recover, and it was due to extreme hardware failure which caused corruption outside of the BBU.

Your examples are frightful if you’re actually working in this industry outside of 20 year old NetApp filers.

I may in the future look to replacing the dd tests with something else (maybe fio and/or ioping?), but for now I think it does a decent job estimating performance. Sure some tests will show abnormal numbers (i.e. reads extremely quick), but for the most part it’ll be a good estimation. In lieu of something else that can benchmark disk performance and can be run without any external dependencies needing to be installed/elevated privileges, then I’ll keep dd in there.

Thanks for the feedback!

1 Like

So your saying IOFlood is pulling crap out of their butts for being exclusively in the dedicated hosting market for years on end?

Wouldn’t you think if anything you would expect a dedicated provider whose LITERALLY make money off of every hardware you throw in the cart for renting would “fudge” Hardware RAID not the exact opposite? Why would they “lie” about it over trying to make an extra buck? What do they have to gain as a dedicated provider to stress a non hardware solution in majority of cases?

To me it would make no sense to “fudge” Software RAID and they very well may be trying to save their customers and viewers money, physical and mental dramas.

Otherwise they can be very well be like every other dedicated provider and make the extra $60+/month upselling the “premium” RAID options right?

#  ____    ____  ___      .______        _______.
#  \   \  /   / /   \     |   _  \      /       |
#   \   \/   / /  ^  \    |  |_)  |    |   (----`
#    \_    _/ /  /_\  \   |   _  <      \   \    
#      |  |  /  _____  \  |  |_)  | .----)   |   
#      |__| /__/     \__\ |______/  |_______/    
#                                                

Come on man! such a script has to have those cool 90’s ASCII art text.

𝔂𝓸𝓾 𝓯𝓮𝓮𝓵𝓲𝓷 𝓶𝓮 𝓷𝓪𝓸?

2 Likes

Nice script!

dd results can always be skewed by caching - the below is from a HDD VPS for example. (ignore the cut off speed tests, I got bored - was mainly curious to see the dd output)

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

Mon  7 Oct 07:47:35 BST 2019

Basic System Information:
---------------------------------
Processor  : Intel(R) Xeon(R) CPU E3-1240 v3 @ 3.40GHz
CPU cores  : 2 @ 3392.124 MHz
AES-NI     : ✔ Enabled
VM-x/AMD-V : ❌ Disabled
RAM        : 1.9Gi
Swap       : 2.0Gi
Disk       : 145G

dd Disk Speed Tests:
---------------------------------
       | Test 1     | Test 2     | Test 3     | Avg       
       |            |            |            |           
Write  | 1.3 GB/s   | 1.2 GB/s   | 1.6 GB/s   | 1.36667 GB/s
Read*  | 2.0 GB/s   | 2.5 GB/s   | 3.0 GB/s   | 2.5 GB/s  

iperf3 Network Speed Tests (IPv4):
---------------------------------
Provider                  | Location (Link)           | Send Speed      | Recv Speed     
                          |                           |                 |                
Bouygues Telecom          | Paris, FR (10G)           | 930 Mbits/sec   | 922 Mbits/sec  
Online.net                | Paris, FR (10G)           | 922 Mbits/sec   | 941 Mbits/sec  
Severius                  | The Netherlands (10G)     | 924 Mbits/sec   | 925 Mbits/sec  
Worldstream               | The Netherlands (10G)     | 926 Mbits/sec   | 927 Mbits/sec  
wilhelm.tel               | Hamburg, DE (10G)         | 926 Mbits/sec   | 923 Mbits/sec
1 Like

Thanks! And yeah, I’ll be investigating alternatives to dd to benchmark disk performance. Just need something that won’t require external dependencies to be installed or elevated privileges.

Need some more US-based network test locations… the HE one seems to be frequently busy.

1 Like

I agree! Americas and APAC iperf locations are hard to come by, so I had to make do with what was out there for public use.

Are you… volunteering for a POP? :stuck_out_tongue:

1 Like

@Mason
I get permission denied

on both iperf and geekbench.
Probably something to do with having the temp folder not able to run executables

1 Like

Yeah, that’ll do it. Probably going to move everything to the directory the script is run from instead of using /tmp as the default location to put the files. Thanks for the bug report and testing it out!

1 Like

dd is fine if you accept that caching would affect it.

Using the direct it runs in is better for multiple disk types on the same server if you wanted to compare dd results, for example.

1 Like

Yep, it uses oflag=direct for the write test. Unfortunately, reads are potentially highly affected by cache and there may not really be a way around that.

For now, the script runs the dd test on whichever directory the user is currently in. So all a user would have to do to bench their partitions is download the script, move it where they want it, and run ./yabs -ig (skips iperf and geekbench), then repeat for any additional partitions they wish to bench.

Anyone know of any nice VPSes with good connectivity and generous bandwidth quotas that could be potentially used as additional iperf POPs for this script? Mainly worried about APAC/Americas since EU is pretty well covered for the most part (except London, maybe). Got an offer from Mark from the Direct Admin team to sponsor a couple POPs to add to the list.

Yeah, of course - I was looking at the geekbench bit which runs in /tmp

1 Like

Nice contribution! Thanks :slight_smile:

1 Like