CPU speed decides how fast PHP renders a page, how many requests a Node app serves, how quickly code compiles and how smoothly a game server ticks. sysbench and Geekbench are the two most common ways to put a number on it. Each has strengths, and neither replaces testing your own application.

Know your CPU first

lscpu | grep -E 'Model name|^CPU\(s\)|Thread|MHz'
nproc

On a VPS, nproc shows your vCPUs. Each one is a thread on the host’s physical CPU. The model name tells you the CPU generation, which affects per-core speed as much as clock frequency does. See CPU info and how many CPU cores you need.

sysbench: quick and scriptable

sudo apt install sysbench     # or: dnf install sysbench (EPEL)
sysbench cpu --threads=1 --time=30 run
sysbench cpu --threads=$(nproc) --time=30 run

Look at:

CPU speed:
    events per second:  1452.31
  • threads=1 — single-core performance.
  • threads=nproc — total throughput. Ideally close to single-core × cores.

sysbench’s CPU test calculates prime numbers. It’s simple and repeatable, but it exercises only a narrow part of the CPU. It’s great for comparing the same test across servers, not for absolute claims.

Compare versions too. Results from sysbench 0.4 and 1.x aren’t comparable.

Geekbench: broad and comparable

Geekbench runs many realistic workloads (compression, image processing, HTML parsing, cryptography, machine learning) and gives single-core and multi-core scores you can compare with a public database of results.

wget https://cdn.geekbench.com/Geekbench-6.x-Linux.tar.gz    # get the current link from geekbench.com
tar xf Geekbench-*-Linux.tar.gz
cd Geekbench-*-Linux
./geekbench6

Results are uploaded to the Geekbench Browser, and the command prints a link. Notes:

  • The free version uploads results publicly. A paid licence allows offline use.
  • A run takes a few minutes, and needs a few GB of RAM for some tests.
  • Single-core score is the best predictor for typical web workloads (PHP, WordPress, most interpreted languages).

Steal time: the VPS factor

On a VPS, another kind of measurement matters: consistency. Watch steal time while benchmarking:

vmstat 1        # 'st' column
top             # '%st' in the CPU line

Steal is time your vCPU wanted to run but the hypervisor scheduled another guest. A few percent is normal. Consistently high steal, especially if benchmark results vary a lot between runs, means CPU contention on the host. See load average.

Comparing fairly

  • Same benchmark version, same OS and kernel family.
  • Several runs, at different times of day. Use the median.
  • Note the vCPU count and RAM. Multi-core scores scale with cores, so compare per-core when plans differ.
  • Turbo and boost behaviour differs between hosts. Sustained runs (60 s+) are more realistic than bursts.

When synthetic scores mislead

Your workload Better test
WordPress / PHP site Time uncached page loads (curl -w '%{time_total}') or wrk against a test page
Node.js API wrk or k6 against real endpoints
Compiling code Time a real build (time make -j$(nproc))
Minecraft / game server Tick time (MSPT) under a typical player load
Database sysbench oltp_* or pgbench, which also depends on disk and RAM
Video encoding Time an ffmpeg encode of a sample file

A CPU with a better Geekbench score usually wins these too, but real tests reveal the bottlenecks benchmarks miss: disk latency, memory size, PHP-FPM settings and caching. See benchmark a VPS and website speed optimization.

Quick reference

Task Command
CPU model and cores lscpu, nproc
Single-core (sysbench) sysbench cpu --threads=1 run
All cores (sysbench) sysbench cpu --threads=$(nproc) run
Geekbench ./geekbench6
Steal time vmstat 1 (st)
Real workload time your build or encode, wrk your site

Related: fio disk benchmark and high CPU usage.

  • Performance
  • VPS Guides
  • Linux