ESC

Start typing to search across invoices, services, domains, tickets, and more...

Search... Ctrl+K
Linux Server

Server Benchmarking Guide 2026: How to Read bench.sh, YABS and fio Results

5 steps 18 min read 7 views 0
On this page

When you get a new VPS or dedicated server, running a benchmark first confirms that the CPU, memory, disk and network match expectations, and gives you baseline data for troubleshooting performance issues later. This guide covers the four most common benchmarking tools and focuses on what each number in the results means and how to tell good from bad.

Key Takeaways

  • bench.sh is suited to a quick health check of a new server, outputting system information, a simple disk write test and multi-location download speed tests within a few minutes.
  • YABS combines fio disk tests, iperf3 network tests and Geekbench CPU scores, and is the most widely used community standard for comparing server performance.
  • In fio results, IOPS at the 4k block size reflects database and small-file read/write performance, while throughput at the 1m block size reflects large-file sequential read/write performance.
  • Geekbench 5 and Geekbench 6 use different scoring baselines, so Geekbench scores can only be compared within the same version.
  • IMIDC offers VPS and dedicated servers in multiple regions that customers can verify themselves with bench.sh, YABS and fio after delivery, and can submit a 24/7 ticket if results differ significantly from expectations.

Who This Is For / Prerequisites

  • OS: Ubuntu 22.04 / 24.04, Debian 12, Rocky Linux 9, AlmaLinux 9
  • Logged in over SSH as root or a sudo user
  • At least 4 GB of free disk space recommended (fio and YABS create test files)
  • Install the basic tools:
# Ubuntu / Debian
sudo apt update && sudo apt install -y curl wget fio
# Rocky / Alma 9
sudo dnf install -y curl wget fio

Note: these benchmark scripts come from third-party open-source projects. You can download them first and review the contents with less before running. Benchmarks briefly max out CPU, disk and bandwidth, so avoid running them on production servers during peak hours, and don't run them repeatedly for long periods.

Steps

Step 1: Quick Health Check with bench.sh

bench.sh, maintained by open-source developer Teddysun, outputs system information, a simple disk write test and multi-location download speed tests within a few minutes:

wget -qO- bench.sh | bash
# or
curl -Lso- bench.sh | bash

How to read the results:

  • CPU Model / Cores / Frequency: the CPU model, the number of cores allocated and the clock speed. Confirm they match what you purchased.
  • AES-NI / VM-x/AMD-V: when AES-NI is Enabled, encryption workloads such as HTTPS and VPNs perform better. Whether virtualization instructions are passed through determines whether you can run nested virtualization inside the VPS.
  • Virtualization: shows KVM, Dedicated (dedicated server), etc., so you can confirm the virtualization type.
  • I/O Speed: the result of a 1GB sequential write using dd. It only gives a rough indication of sequential write speed; SSD/NVMe drives typically range from several hundred MB/s to several GB/s.
  • Speedtest list: upload, download and latency to each speed test node. Results from overseas servers to nodes in mainland China depend heavily on the network route, so focus on latency stability rather than one-off peaks.

Step 2: Comprehensive Testing with YABS

YABS (Yet-Another-Bench-Script) includes fio disk tests, iperf3 network tests and Geekbench CPU scores. It is the most widely used community standard for comparing server performance:

curl -sL https://yabs.sh | bash

Common options:

# Skip the iperf3 network test
curl -sL https://yabs.sh | bash -s -- -i
# Skip Geekbench and test only disk and network
curl -sL https://yabs.sh | bash -s -- -g
# Run only Geekbench 6 (skip disk and network)
curl -sL https://yabs.sh | bash -s -- -f -i

fio section: YABS runs mixed random read/write tests with four block sizes: 4k, 64k, 512k and 1m.

  • For 4k, look at IOPS: this reflects database and small-file read/write performance. VPS plans on standard SATA SSDs commonly show a few thousand to tens of thousands of IOPS; NVMe can reach tens of thousands to hundreds of thousands.
  • For 1m, look at throughput (MB/s or GB/s): this reflects large-file sequential read/write performance, e.g. backups and video files.

iperf3 section: shows send (Send) and receive (Recv) speeds to multiple public iperf servers worldwide. Public servers are often busy, so low numbers from a few of them are normal; look at the overall trend.

Geekbench section: gives Single Core and Multi Core scores, plus an online results link you can use to compare directly with other servers. The single-core score affects the responsiveness of single-threaded applications such as PHP and Node.js; the multi-core score affects compiling, transcoding and concurrent processing.

Step 3: Precise Disk Testing with fio

To test a specific scenario, running fio directly gives you more control. The following tests 4K random read/write (simulating a database workload):

fio --name=rand4k --filename=/root/fio.test --size=1G \
    --direct=1 --ioengine=libaio --rw=randrw --rwmixread=70 \
    --bs=4k --iodepth=64 --numjobs=2 --runtime=60 --time_based \
    --group_reporting

Test 1M sequential reads:

fio --name=seq1m --filename=/root/fio.test --size=1G \
    --direct=1 --ioengine=libaio --rw=read \
    --bs=1M --iodepth=16 --numjobs=1 --runtime=30 --time_based \
    --group_reporting

Delete the test file when you're done:

rm -f /root/fio.test

Key metrics:

  • IOPS=: read/write operations per second; higher is better.
  • BW=: bandwidth throughput.
  • The average and 99.00th percentile in the clat latency figures: lower latency means more stability. If the 99th-percentile latency is far above the average, the disk is experiencing jitter.

--direct=1 bypasses the system cache so that memory caching doesn't inflate the results.

Step 4: Record and Save Your Results

Save the output so you can compare later:

curl -sL https://yabs.sh | bash 2>&1 | tee ~/yabs-$(date +%F).txt

FAQ

bench.sh shows high I/O speed, so why is my website still slow?

dd sequential writes only reflect large-file write performance; websites and databases depend more on 4K random read/write and latency. Website speed is also affected by the network route, your application and caching configuration. Combine fio 4K results with network tests for a complete picture.

The measured download speed is lower than the bandwidth I bought?

Public speed test nodes may be congested, and cross-border tests are also limited by the remote network. Test at different times and against several nodes, or run iperf3 directly between the server and your own computer. If speeds remain clearly low, submit a ticket with your test results and MTR route output.

Is it normal for VPS benchmark results to vary from run to run?

Yes. In virtualized environments, CPU and disk are shared by multiple instances, so some variation is expected. As long as repeated results fall within a similar range, you're fine; if one run drops sharply, test again later.

Can Geekbench scores be compared across versions?

No. Geekbench 5 and Geekbench 6 use different scoring baselines, so only compare scores within the same version. YABS currently uses Geekbench 6 by default.

Summary

bench.sh is good for a quick health check, YABS for comprehensive side-by-side comparisons, and fio for targeted disk testing. Together they give you a clear picture of a server's real performance. IMIDC offers VPS and dedicated servers in multiple regions, and once your server is delivered you can verify its specs yourself using the methods in this guide. If your results differ significantly from expectations, submit a 24/7 ticket through the Client Center with the test output, and our technical team will help investigate.

Related Reading

Was this answer helpful?

Related Tutorials