Skip to content

Comparison with Other Bench Scripts

Mason Rowe edited this page Oct 31, 2026 · 1 revision

Comparison with Other Bench Scripts

In short

YABS is one of several one-line Linux benchmark scripts. They overlap a lot — all print system information and all test the disk and network in some way — but they differ in which tools they wrap and therefore in what their numbers mean. This page is a neutral map of the field so you can read other scripts' output, choose the right tool for a question, and understand why YABS results cannot be compared with bench.sh or nench results.

Side-by-side

YABS bench.sh (teddysun) nench.sh (n-st) ServerBench / vpsbench / busytest family
First released Oct 2019 2015 2017 early–mid 2010s
Run command curl -sL yabs.sh | bash wget -qO- bench.sh | bash curl -s wget.racing/nench.sh | bash varies
CPU test Geekbench 4/5/6/7 (single + multi, public result URL) none timed SHA-256, bzip2 and AES (OpenSSL) passes over 500 MB from /dev/zero (single-thread, seconds) none or simple loops
Disk test fio, random mixed 50/50 at 4k/64k/512k/1m, IOPS + MB/s, direct I/O; dd fallback dd sequential write 1 GiB ×3 (conv=fdatasync) ioping latency/seq read + dd sequential write 1 GiB (conv=fdatasync) dd sequential write
Network test iperf3, 8 parallel streams, upload and download, 7 public servers, IPv4 + IPv6, ping Ookla speedtest CLI to ~12 Speedtest.net nodes (download, upload, latency) 9 × 100 MB curl downloads (Cachefly, Leaseweb, Softlayer, OVH, Online.net ...), IPv4 and IPv6, 10 s timeout wget downloads from mirrors
Needs installed tools bash + coreutils + curl/wget (+ tar for Geekbench); downloads static fio/iperf3 downloads Ookla speedtest binary curl, gawk, coreutils, util-linux, procps; downloads static ioping wget
Root required no no no no
Machine-readable output JSON (-j/-w/-s) + several databases accept it no no no
Architectures x64, x86, aarch64, arm, riscv64 x86/ARM (wherever the Ookla binary exists) x86_64 (static ioping binary) x86
Typical runtime 5–15 min 2–5 min 1–3 min 1–3 min
Data moved tens of GB on fast ports (use -r/-i) a few GB ~1 GB ~1 GB

Other tools people reach for, which are not one-liners but overlap in purpose:

Tool What it adds Where it falls short for VPS shopping
sysbench (cpu, memory, fileio, oltp) Standardised CPU prime loop, memory bandwidth, database-style I/O; good for A/B between two hosts Scores depend heavily on version and flags; not widely posted so little to compare against
UnixBench Classic whole-system index Old, single-number, very long runtime, sensitive to compiler
Phoronix Test Suite Hundreds of real-application benchmarks Heavy, slow, needs dependencies
ServerScope (defunct) fio-based web service with result storage; an inspiration for YABS's fio test and JSON uploads No longer operating
VPSBenchmarks "Private Trials" Multi-day endurance, web and database workloads, run by a third party Paid / not something you run yourself in a minute
ioping / fio by hand Latency percentiles, long sustained runs, your own mix and block sizes You have to know what you are doing; nothing to compare with
iperf3 to your own server Honest throughput between two endpoints you control Needs a second machine

What this means for reading results

Disk numbers are not interchangeable

  • A bench.sh or nench "I/O speed" of 500 MB/s is a sequential write with one request in flight (dd). It tells you how fast a big file copies. It says nothing about random I/O, and because it is a single stream it undersells NVMe badly.
  • A YABS 1m Total is the closest analogue (large blocks, but random and mixed read/write, 128 requests in flight) and will usually be higher than a dd figure on the same disk.
  • A YABS 4k IOPS figure has no counterpart in the other scripts at all; it is the number that predicts database and web-application responsiveness.
  • nench's ioping output (request latency in microseconds/milliseconds and a "seq read" MB/s) is useful but cache-affected, which is exactly why YABS dropped ioping in January 2020 after a brief trial.

Network numbers are not interchangeable either

  • bench.sh uses Ookla's Speedtest, which measures what a browser-style client would see to a nearby consumer speed-test node: multiple connections, short duration, optimised for showing the port's peak. Results are often higher than YABS to far locations and similar nearby.
  • nench measures the throughput of one HTTP download per location; on fast ports this is bounded by the single-stream TCP window and by the mirror, so 1 Gbit/s servers often show 200–600 Mbit/s.
  • YABS pushes 8 parallel TCP streams in both directions to dedicated iperf3 servers. It is the only one of the three that measures upload properly and the only one that shows what a server (as opposed to a client) can do.

CPU

Only YABS and nench test the CPU at all, and in very different ways. nench's timed hash/compression/encryption passes over 500 MB is a quick single-core sanity check in seconds (lower is better). Geekbench runs a battery of real-world workloads, produces single- and multi-core scores calibrated against a reference machine, and publishes a page you can compare against millions of other results. That comparability is the main reason YABS chose it, despite Geekbench being closed-source, needing ~1 GiB RAM, and uploading results publicly.

Why YABS exists alongside them

YABS did not set out to replace bench.sh or nench — its README still credits both as inspiration and its author called it "just yet another bench script to add to your arsenal". What it set out to do was bundle the three tools the low-end hosting community was already running by hand (iperf3, fio, Geekbench) into something as easy to run as bench.sh. The trade-off it accepted is longer runtime and heavier bandwidth use in exchange for numbers that are closer to how a server is actually used. See History and Design Principles.

Choosing a tool for the question

You want to know... Use
"Is this new VPS roughly what I paid for?" YABS (full run)
"How does it compare with what others got on the same plan?" YABS + a results database, or the Geekbench Browser link
"Quick sanity check in 60 seconds on a tiny bandwidth plan" yabs.sh -i (no network), or nench
"What does a typical consumer speed test say from this box?" bench.sh
"Is my disk's tail latency acceptable for a database?" fio by hand with latency percentiles, or ioping
"Will my application be faster here?" Your application, timed

See also

Clone this wiki locally