All Projects → masonr → Yet Another Bench Script

masonr / Yet Another Bench Script

Licence: wtfpl
YABS - a simple bash script to estimate Linux server performance using fio, iperf3, & Geekbench

Programming Languages

shell
77523 projects
bash
514 projects

Projects that are alternatives of or similar to Yet Another Bench Script

Nench
VPS benchmark script — based on the popular bench.sh, plus CPU and ioping tests, and dual-stack IPv4 and v6 speedtests by default
Stars: ✭ 611 (+75.57%)
Mutual labels:  speedtest, benchmark
Face Landmarks Detection Benchmark
Face landmarks(fiducial points) detection benchmark
Stars: ✭ 348 (+0%)
Mutual labels:  benchmark
Api Benchmark
A node.js tool to benchmark APIs
Stars: ✭ 293 (-15.8%)
Mutual labels:  benchmark
Human Learn
Natural Intelligence is still a pretty good idea.
Stars: ✭ 323 (-7.18%)
Mutual labels:  benchmark
Datasets
A repository of pretty cool datasets that I collected for network science and machine learning research.
Stars: ✭ 302 (-13.22%)
Mutual labels:  benchmark
Across
Across the Great Wall we can reach every corner in the world
Stars: ✭ 3,654 (+950%)
Mutual labels:  benchmark
Pyaf
PyAF is an Open Source Python library for Automatic Time Series Forecasting built on top of popular pydata modules.
Stars: ✭ 289 (-16.95%)
Mutual labels:  benchmark
Css In Js Benchmarks
Stars: ✭ 360 (+3.45%)
Mutual labels:  benchmark
Medmnist
[ISBI'21] MedMNIST Classification Decathlon: A Lightweight AutoML Benchmark for Medical Image Analysis
Stars: ✭ 338 (-2.87%)
Mutual labels:  benchmark
Oltpbench
Database Benchmarking Framework
Stars: ✭ 317 (-8.91%)
Mutual labels:  benchmark
Fperf
Framework of performance testing
Stars: ✭ 316 (-9.2%)
Mutual labels:  benchmark
Benchmarktools.jl
A benchmarking framework for the Julia language
Stars: ✭ 312 (-10.34%)
Mutual labels:  benchmark
Deeperforensics 1.0
[CVPR 2020] A Large-Scale Dataset for Real-World Face Forgery Detection
Stars: ✭ 338 (-2.87%)
Mutual labels:  benchmark
Tape
Tasks Assessing Protein Embeddings (TAPE), a set of five biologically relevant semi-supervised learning tasks spread across different domains of protein biology.
Stars: ✭ 295 (-15.23%)
Mutual labels:  benchmark
Benchmark results
Visual Tracking Paper List
Stars: ✭ 3,672 (+955.17%)
Mutual labels:  benchmark
Lanczosnetwork
Lanczos Network, Graph Neural Networks, Deep Graph Convolutional Networks, Deep Learning on Graph Structured Data, QM8 Quantum Chemistry Benchmark, ICLR 2019
Stars: ✭ 293 (-15.8%)
Mutual labels:  benchmark
Layoutframeworkbenchmark
Benchmark the performances of various Swift layout frameworks (autolayout, UIStackView, PinLayout, LayoutKit, FlexLayout, Yoga, ...)
Stars: ✭ 316 (-9.2%)
Mutual labels:  benchmark
Cob
Continuous Benchmark for Go Project
Stars: ✭ 326 (-6.32%)
Mutual labels:  benchmark
Speedtest
Command line client for speedtest.net written in Go
Stars: ✭ 361 (+3.74%)
Mutual labels:  speedtest
Speed Test
Test your internet connection speed and ping using speedtest.net from the CLI
Stars: ✭ 3,654 (+950%)
Mutual labels:  speedtest

Yet-Another-Bench-Script

Here's an attempt to create yet another damn Linux server benchmarking script.

Logo design by Dian Pratama

This script isn't an attempt to be a golden standard. It's just yet another bench script to add to your arsenal. Included are several tests that I think are most beneficial for the end-user. If there's features that you would like to see added, feel free to submit an issue describing your feature request or fork the project!

View YABS usage stats here.

How to Run

curl -sL yabs.sh | bash

or

wget -qO- yabs.sh | bash

This script has been tested on the following Linux distributions: CentOS 6+, Debian 8+, Fedora 30, and Ubuntu 16.04+. It is designed to not require any external dependencies to be installed nor elevated privileges to run.

Local fio/iperf3 Packages: If the tested system has fio and/or iperf3 already installed, the local package will take precedence over the precompiled binary.

IPv6-Only Machines: The above command will not work on IPv6-only machines. See below.

High Bandwidth Usage Notice: By default, this script will perform many iperf network tests, which will try to max out the network port for ~20s per location (10s in each direction). Low-bandwidth servers (such as a NAT VPS) should consider running this script with the -r flag (for reduced iperf locations) or the -i flag (to disable network tests entirely).

Flags (Skipping Tests, Reducing iperf Locations, Geekbench 4, etc.)

By default, the script runs all three tests described in the next section below. In the event that you wish to skip one or more of the tests, use the commands below:

curl -sL yabs.sh | bash -s -- -{fdighr49}
  • -f/-d this option disables the fio (disk performance) test
  • -i this option disables the iperf (network performance) test
  • -g this option disables the Geekbench (system performance) test
  • -h this option prints the help message with usage, flags detected, and local package (fio/iperf) status
  • -r this option reduces the number of iperf locations (Online.net/Clouvider LON+NYC) to lessen bandwidth usage
  • -4 this option overrides the Geekbench 5 performance test and runs a Geekbench 4 test instead
  • -9 this option runs the Geekbench 4 test in addition to the Geekbench 5 test

Options can be grouped together to skip multiple tests, i.e. -fg to skip the disk and system performance tests (effectively only testing network performance).

Geekbench License Key: A Geekbench license key can be utilized during the Geekbench test to unlock all features. Simply put the email and key for the license in a file called geekbench.license. echo "[email protected] ABCDE-12345-FGHIJ-57890" > geekbench.license

Tests Conducted

  • fio - the most comprehensive I/O testing software available, fio grants the ability to evaluate disk performance in a variety of methods with a variety of options. Four random read and write fio disk tests are conducted as part of this script with 4k, 64k, 512k, and 1m block sizes. The tests are designed to evaluate disk throughput in near-real world (using random) scenarios with a 50/50 split (50% reads and 50% writes per test).
  • iperf3 - the industry standard for testing download and upload speeds to various locations. This script utilizes iperf3 with 8 parallel threads and tests both download and upload speeds. If an iperf server is busy after 10 tries, the speed test for that location/direction is skipped.
  • Geekbench - Geekbench is a benchmarking program that measures system performance, which is widely used in the tech community. The web URL is displayed to be able to see complete test and individual benchmark results and allow comparison to other geekbench'd systems. The claim URL to add the Geekbench result to your Geekbench profile is written to a file in the directory that this script is executed from. By default, Geekbench 5 is the only Geekbench test performed, however, Geekbench 4 can also be toggled on by passing the appropriate flag.

Security Notice

This script relies on external binaries in order to complete the performance tests. The network (iperf3) and disk (fio) tests use binaries that are compiled by myself utilizing a Holy Build Box compiliation environment to ensure binary portability. The reasons for doing this include ensuring standardized (parsable) output, allowing support of both 32-bit and 64-bit architectures, bypassing the need for prerequisites to be compiled and/or installed, among other reasons. For the system test, a Geekbench tarball is downloaded, extracted, and the resulting binary is run. Use this script at your own risk as you would with any script publicly available on the net. Additional information regarding the binaries, including compilation notes and steps, can be found in the bin directory's README page.

Example Output

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

Mon 21 Sep 2020 12:31:13 AM EDT

Basic System Information:
---------------------------------
Processor  : Intel(R) Xeon(R) E-2276G CPU @ 3.80GHz
CPU cores  : 12 @ 800.087 MHz
AES-NI     : ✔ Enabled
VM-x/AMD-V : ✔ Enabled
RAM        : 15Gi
Swap       : 14Gi
Disk       : 865G

fio Disk Speed Tests (Mixed R/W 50/50):
---------------------------------
Block Size | 4k            (IOPS) | 64k           (IOPS)
  ------   | ---            ----  | ----           ----
Read       | 445.04 MB/s (111.2k) | 475.05 MB/s   (7.4k)
Write      | 446.22 MB/s (111.5k) | 477.55 MB/s   (7.4k)
Total      | 891.26 MB/s (222.8k) | 952.60 MB/s  (14.8k)
           |                      |
Block Size | 512k          (IOPS) | 1m            (IOPS)
  ------   | ---            ----  | ----           ----
Read       | 474.42 MB/s    (926) | 472.32 MB/s    (461)
Write      | 499.63 MB/s    (975) | 503.77 MB/s    (491)
Total      | 974.05 MB/s   (1.9k) | 976.10 MB/s    (952)

iperf3 Network Speed Tests (IPv4):
---------------------------------
Provider        | Location (Link)           | Send Speed      | Recv Speed
                |                           |                 |
Clouvider       | London, UK (10G)          | 1.19 Gbits/sec  | 2.39 Gbits/sec
Online.net      | Paris, FR (10G)           | 2.35 Gbits/sec  | 2.04 Gbits/sec
WorldStream     | The Netherlands (10G)     | 2.17 Gbits/sec  | 1.29 Gbits/sec
Wifx            | Zurich, CH (10G)          | 1.28 Gbits/sec  | 522 Mbits/sec
Biznet          | Jakarta, Indonesia (1G)   | 19.4 Mbits/sec  | 41.8 Mbits/sec
Clouvider       | NYC, NY, US (10G)         | 9.40 Gbits/sec  | 9.41 Gbits/sec
Velocity Online | Tallahassee, FL, US (10G) | 2.39 Gbits/sec  | 2.94 Gbits/sec
Clouvider       | Los Angeles, CA, US (10G) | 2.40 Gbits/sec  | 2.89 Gbits/sec
Iveloz Telecom  | Sao Paulo, BR (2G)        | 136 Mbits/sec   | 192 Mbits/sec

iperf3 Network Speed Tests (IPv6):
---------------------------------
Provider        | Location (Link)           | Send Speed      | Recv Speed
                |                           |                 |
Clouvider       | London, UK (10G)          | 803 Mbits/sec   | 2.09 Gbits/sec
Online.net      | Paris, FR (10G)           | 2.32 Gbits/sec  | 2.20 Gbits/sec
WorldStream     | The Netherlands (10G)     | 1.95 Gbits/sec  | 1.49 Gbits/sec
Wifx            | Zurich, CH (10G)          | 168 Mbits/sec   | 579 Mbits/sec
Clouvider       | NYC, NY, US (10G)         | 9.28 Gbits/sec  | 9.28 Gbits/sec
Clouvider       | Los Angeles, CA, US (10G) | 2.80 Gbits/sec  | 2.90 Gbits/sec

Geekbench 4 Benchmark Test:
---------------------------------
Test            | Value
                |
Single Core     | 6035
Multi Core      | 24473
Full Test       | https://browser.geekbench.com/v4/cpu/15770150

Geekbench 5 Benchmark Test:
---------------------------------
Test            | Value
                |
Single Core     | 1348
Multi Core      | 5857
Full Test       | https://browser.geekbench.com/v5/cpu/3844555

IPv6 Only Machines

GitHub's CDN does not resolve via IPv6. You will need to run the following command to download and run the script.

curl -s -k -g --header 'Host: raw.githubusercontent.com' "https://[2a04:4e42::133]/masonr/yet-another-bench-script/master/yabs.sh" | bash

(2a04:4e42::133 is fastly.net's [GitHub's CDN Provider] IPv6 address)

Acknowledgements

This script was inspired by several great benchmarking scripts out there, including, but not limited to, bench.sh, nench.sh, ServerBench, among others. Members of the HostedTalk, LowEndSpirit, and LowEndTalk hosting-related communities play a pivotal role in testing, evaluating, and shaping this script as it matures.

License

            DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
                    Version 2, December 2004

 Copyright (C) 2019 Mason Rowe <[email protected]>

 Everyone is permitted to copy and distribute verbatim or modified
 copies of this license document, and changing it is allowed as long
 as the name is changed.

            DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

  0. You just DO WHAT THE FUCK YOU WANT TO.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].