> ## Documentation Index
> Fetch the complete documentation index at: https://help.freakhosting.com/llms.txt
> Use this file to discover all available pages before exploring further.

# How to Benchmark Your VPS with YABS, Geekbench and fio

> Benchmark a VPS with YABS (fio, iperf3 and Geekbench in one script) or run fio and Geekbench yourself. What each test measures and the load it causes.

To benchmark a VPS, run YABS (Yet-Another-Bench-Script) with `curl -sL yabs.sh | bash`. It tests disk speed with fio, network throughput with iperf3 and CPU performance with Geekbench, then prints a summary. Skip parts with flags (`-i` no network, `-g` no Geekbench, `-f` no disk) or run `fio` directly. Benchmarks create heavy disk, CPU and network load, so run them once, at a quiet time.

| Difficulty | Time | Works on | Needs |
| - | - | - | - |
| Intermediate | 10 to 20 minutes for a full YABS run | Any modern Linux distribution (x86\_64; ARM is experimental in YABS) | 2 GB free disk for the YABS disk test; about 1 GB RAM or swap for Geekbench 5 and later |

## Before you start

* [Connect with SSH](https://help.freakhosting.com/portals/other/how-to-connect-to-a-linux-server-with-ssh.md). YABS doesn't need root. `sudo` is only needed to install `fio` from your package manager; root users can leave it out.
* Benchmark a fresh or quiet server. Anything else running (backups, game servers, databases) lowers the results and is slowed down by the test.
* Results are a snapshot. Disk and network numbers on any virtual server vary from run to run and over the day, so compare several runs and don't read too much into one.

> [!WARNING]
>
> Benchmarks are designed to push hardware to its limit. The YABS disk test writes a 2 GB file and hammers it for about 2 minutes; the network test tries to fill your connection for about 20 seconds per location. Your own services slow down while it runs, data transfer counts towards any [traffic allowance](https://help.freakhosting.com/portals/vps-panel/understanding-vps-traffic-and-bandwidth.md), and repeated runs on shared hardware also load the host. Run a full benchmark once, not in a loop or from cron, and never on a production server during busy hours.

## What do YABS, Geekbench and fio measure?

| Tool | Measures | Result you see |
| - | - | - |
| **fio** | Disk: random read/write speed and operations per second (IOPS) | MB/s and IOPS for 4k, 64k, 512k and 1m block sizes |
| **iperf3** | Network throughput to public test servers | Send and receive speed in Mbit/s or Gbit/s per location |
| **Geekbench** | CPU: a set of real-world workloads (compression, image processing and more) | Single-core and multi-core scores and a link to the full result |
| **YABS** | Runs all three plus a system summary (CPU model, RAM, disk, virtualisation, AES-NI) | One combined report |

Small 4k block results show how the disk handles databases and many small files. Large 1m blocks show throughput for big files, backups and game world saves.

## How to run YABS

**1. Go to a folder on the disk you want to test**

YABS tests the disk of the current directory and needs at least 2 GB free there (512 MB on ARM).

```bash theme={null}
cd ~
df -h .
```

**2. Download and read the script**

Piping a script from the internet straight into `bash` runs whatever it contains. Download it first so you can see what it does:

```bash theme={null}
curl -sL yabs.sh -o yabs.sh
less yabs.sh
```

**3. Run it**

For the full test:

```bash theme={null}
bash yabs.sh
```

For a lighter run with fewer network locations:

```bash theme={null}
bash yabs.sh -r
```

**4. Wait for the report**

YABS prints each section as it finishes. It removes its temporary test folder at the end. If Geekbench ran, it also writes the result's claim link to `geekbench_claim.url` in the current folder.

### Useful YABS flags

| Flag | Effect |
| - | - |
| `-f` or `-d` | Skip the fio disk test |
| `-i` | Skip the iperf3 network tests |
| `-g` | Skip Geekbench |
| `-n` | Skip the network information lookup |
| `-r` | Fewer iperf3 locations |
| `-4`, `-5` | Run Geekbench 4 or 5 instead of the default |
| `-j` | Print results as JSON |
| `-w file.json` | Save JSON results to a file |

Combine flags: `bash yabs.sh -ig` runs the disk test only.

> [!NOTE]
>
> YABS uses `fio` and `iperf3` from your system if they are installed; otherwise it downloads pre-built binaries from its GitHub repository. Geekbench is always downloaded from Primate Labs. On a server with 1 GB of RAM or less, Geekbench 5 and later can fail: [add swap](https://help.freakhosting.com/portals/other/how-to-add-swap-space-on-linux.md) or use `-4`.

## How to test disk speed with fio

Run fio yourself when you only care about the disk, or want to repeat the same test after a change.

**1. Install fio**

> [tab] Ubuntu / Debian
>
> ```bash theme={null}
> sudo apt install fio
> ```

> [tab] AlmaLinux / Rocky
>
> ```bash theme={null}
> sudo dnf install fio
> ```

**2. Random read and write (small files, databases)**

```bash theme={null}
fio --name=randrw4k --filename=fio-test.bin --size=1G \
  --rw=randrw --rwmixread=50 --bs=4k --ioengine=libaio \
  --iodepth=64 --numjobs=2 --direct=1 \
  --runtime=30 --time_based --group_reporting
```

**3. Sequential write (large files)**

```bash theme={null}
fio --name=seqwrite --filename=fio-test.bin --size=1G \
  --rw=write --bs=1M --ioengine=libaio --iodepth=16 \
  --direct=1 --runtime=30 --group_reporting
```

**4. Delete the test file**

```bash theme={null}
rm fio-test.bin
```

`--direct=1` bypasses the page cache so you measure the disk, not RAM. `--filename` must point to a **file**.

> [!WARNING]
>
> Never point `--filename` at a device such as `/dev/vda` or `/dev/sda` on a server with data. A write test on a raw device overwrites the partition table and file systems on it, and the data is lost.

### How to read fio output

```text theme={null}
  read: IOPS=…, BW=…MiB/s (…MB/s)(…MiB/30001msec)
     lat (usec): min=…, max=…, avg=…, stdev=…
  write: IOPS=…, BW=…MiB/s (…MB/s)(…MiB/30001msec)
```

| Field | Meaning |
| - | - |
| `IOPS` | Read or write operations per second. Matters most for 4k tests |
| `BW` | Bandwidth (throughput). Matters most for 1M tests |
| `lat` | Time per operation. Lower and steadier is better |

## How to run Geekbench on its own

Download the Linux build from [geekbench.com](https://www.geekbench.com/download/), extract it and run the `geekbench6` binary (or the binary for the version you downloaded). With no options it runs the CPU benchmark. In the free edition, results are saved to the online [Geekbench Browser](https://browser.geekbench.com/); Geekbench Pro can keep them offline.

Compare scores only with the same Geekbench major version: a Geekbench 5 score and a Geekbench 6 score use different scales.

## How to check it worked

A finished YABS run ends with the Geekbench section (or the last section you didn't skip) and a total run time. Check no test file was left behind:

```bash theme={null}
ls ~ | grep -E "fio-test|^20[0-9]{2}-"
```

No output means nothing was left. If you stopped YABS with `Ctrl+C`, it cleans up its folder too.

## Frequently asked questions

### Is it safe to run yabs.sh?

The script is open source and doesn't need root. As with any script from the internet, read it before you run it, and run it on a server where a few minutes of heavy load is acceptable.

### Why are my results different every time?

Disk and network performance on virtual servers depends on activity elsewhere on the host and on the internet path to each iperf3 server. Run the test two or three times at different times and use the typical result.

### Why is the network test slow to a far-away location?

TCP throughput drops as latency rises, so a server in Europe usually shows lower speeds to Asia or South America. That reflects distance, not a fault. For a test to your own endpoints, see [test network speed with iperf3](https://help.freakhosting.com/portals/other/how-to-test-network-speed-with-iperf3.md).

### Can I benchmark a Windows server?

YABS supports Windows only through WSL 2. On Windows Server, use the Windows builds of Geekbench or fio instead, and the same caution about load applies.

## Related guides

> [card] [VPS and dedicated server guides](https://help.freakhosting.com/portals/other/vps-and-dedicated-server-guides.md)
>
> Every server guide in one place.

> [card] [Check disk I/O](https://help.freakhosting.com/portals/other/how-to-check-disk-io-performance-on-linux.md)
>
> iostat and iotop under real load.

> [card] [Test network speed with iperf3](https://help.freakhosting.com/portals/other/how-to-test-network-speed-with-iperf3.md)
>
> Measure throughput to your own server.

> [card] [Find what is using CPU](https://help.freakhosting.com/portals/other/how-to-find-what-is-using-cpu-on-linux.md)
>
> When the CPU score looks low.

> [card] [VPS traffic and bandwidth](https://help.freakhosting.com/portals/vps-panel/understanding-vps-traffic-and-bandwidth.md)
>
> How transfer is counted on your VPS.

***

> [!NOTE]
>
> **Checked against the [YABS README and script](https://github.com/masonr/yet-another-bench-script) (version v2026-10-31), the [fio documentation](https://fio.readthedocs.io/) and [Primate Labs' Geekbench documentation](https://support.primatelabs.com/kb/geekbench/geekbench-6-command-line-tool)** on 4 November 2026; fio commands tested on Ubuntu 24.04 LTS (fio 3.36). YABS and Geekbench were not run. Commands can differ on other distributions or releases.

> [!NOTE]
>
> ### Need Extra Help?
>
> If you encounter any issues, our support team is ready to assist:
>
> * **Live Chat:** Quick assistance via our website.
> * **Support Ticket:** [Open a Ticket](https://freakhosting.com/clientarea/submitticket.php)
> * **Discord:** [Join our Community](https://discord.gg/freakhosting)
> * **Email:** [support@freakhosting.com](mailto:support@freakhosting.com)

> [!TIP]
>
> ### Save on Your Hosting
>
> Ready to upgrade your hosting? Use code **KB20** at checkout for **20% off** your first order!

***

**Last Updated:** November 2026


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.