# Hetzner CPX22

[Helsinki DC Park 1](https://rackcensus.com/locations/helsinki-vps-benchmarks "Every provider in Helsinki")

Benchmark complete

Finished Oct 11, 2026

Geekbench 7 single-core

1,674

Faster than 85% of 2 vCPU plans

Geekbench 7 multi-core

3,257

Faster than 88% of 2 vCPU plans

Disk 4K IOPS

79,395

fio random read and write, 50/50

Monthly price at test time

$22.99

142 multi-core points per dollar

Same price today

## Server

[Hetzner](https://rackcensus.com/vps-providers/hetzner-benchmarks)[CPX22](https://rackcensus.com/plans/sa2c28-hetzner-cpx22-benchmarks?location=hel1)

-

Provider

Hetzner

-

Plan

CPX22

-

Location

Helsinki DC Park 1

-

vCPU

2

-

RAM

4 GB

-

Storage

80 GB NVMe

-

Network

Unknown

-

OS image

ubuntu-24.04

-

Trigger

Scheduled

-

Queued at

Oct 11, 2026, 09:32:00 UTC

[Visit Hetzner](https://rackcensus.com/go/hetzner)

## Latest runs of this plan

- [Falkenstein DC Park 1 Oct 10, 2026](https://rackcensus.com/benchmarks/fskjok-hetzner-cpx22-fsn1-benchmark)1,886

[Full history of this plan](https://rackcensus.com/plans/sa2c28-hetzner-cpx22-benchmarks/history)

## CPU

| Version | Single-core | Multi-core | Result link |
| --- | --- | --- | --- |
| Geekbench 7 | 1,674 | 3,257 | [Geekbench Browser](https://browser.geekbench.com/v7/cpu/604307) |

Scores from different Geekbench versions aren't comparable with each other. Charts only use Geekbench 7.

### Geekbench 7 workloads

| Workload | Single-core | Multi-core |
| --- | --- | --- |
| File Compression | 1,74718th of 71 | 3,03824th of 63 |
| Navigation | 1,58223rd of 71 | Single-core only |
| HTML5 Browser | 1,65315th of 71 | Single-core only |
| PDF Viewer | 1,65219th of 71 | Single-core only |
| Photo Library | 1,7675th of 71 | 3,34524th of 63 |
| Clang | 1,47516th of 71 | 3,09530th of 63 |
| Text Processing | 1,60913th of 71 | 2,88430th of 63 |
| Asset Compression | 1,71016th of 71 | 3,37030th of 63 |
| HDR | 1,75215th of 71 | 3,29121st of 63 |
| Photo Editor | 2,02413th of 71 | 3,93118th of 63 |
| Ray Tracer | 1,59718th of 71 | 3,20531st of 63 |
| Structure from Motion | 1,68224th of 71 | Single-core only |
| Game Physics | 1,61117th of 71 | Single-core only |
| Video Encoder | 1,61118th of 71 | Single-core only |
| Audio Encoder | 1,59124th of 71 | Single-core only |
| Video Player | 1,78018th of 71 | Single-core only |

Rank among the 71 runs with Geekbench 7 workload scores. Bars are relative to the best run. Geekbench doesn't run every workload multi-core, so some rows only have a single-core score.

## Memory, TLS and scheduler

### Memory bandwidth (STREAM)

| Test | Result | Runs | Spread |
| --- | --- | --- | --- |
| Copy higher is better | 49.7 GB/s | 3 | 1.72% |
| Scale higher is better | 41.2 GB/s | 3 | 0.545% |
| Add higher is better | 39 GB/s | 3 | 1.12% |
| Triad higher is better | 38.9 GB/s | 3 | 1.14% |

Average of 3 runs. Spread is the standard deviation as a share of the average.

### TLS and crypto (OpenSSL)

| Test | Result | Runs | Spread |
| --- | --- | --- | --- |
| RSA 4096 signs higher is better | 1,306/s | 3 | 0.534% |
| RSA 4096 verifies higher is better | 31,161/s | 3 | 3.02% |
| SHA-256 higher is better | 1.95 GB/s | 3 | 1.16% |
| AES-256-GCM higher is better | 19.5 GB/s | 3 | 0.863% |
| ChaCha20-Poly1305 higher is better | 7.37 GB/s | 3 | 0.376% |

Average of 3 runs. Spread is the standard deviation as a share of the average.

### Scheduler latency (schbench)

| Test | Result | Runs | Spread |
| --- | --- | --- | --- |
| Request latency, median lower is better | 4.12 ms | 3 | 0.388% |
| Requests per second, 90th percentile higher is better | 478/s | 3 | 0.362% |
| Request latency, 99.9th percentile lower is better | 9.46 ms | 3 | 8.9% |
| Requests per second, average higher is better | 465/s | 3 | 1.1% |

Average of 3 runs. Spread is the standard deviation as a share of the average.

## Disk

| Block size | Read | Write | Total |
| --- | --- | --- | --- |
| 4K | 154.9 MB/s (39,645 IOPS) | 155.3 MB/s (39,750 IOPS) | 310.1 MB/s (79,395 IOPS) |
| 64K | 1.55 GB/s (25,374 IOPS) | 1.56 GB/s (25,507 IOPS) | 3.11 GB/s (50,881 IOPS) |
| 512K | 2.47 GB/s (5,057 IOPS) | 2.6 GB/s (5,325 IOPS) | 5.07 GB/s (10,382 IOPS) |
| 1M | 2.59 GB/s (2,653 IOPS) | 2.76 GB/s (2,829 IOPS) | 5.35 GB/s (5,482 IOPS) |

fio random read and write, 50/50, run by YABS against the boot disk.

## Network

### IPv4 transfer speed

Loading...

| Target | Protocol | Send | Receive |
| --- | --- | --- | --- |
| Clouvider, London, UK (10G) | IPv4 | 4.59 Gbps | 5.56 Gbps |
| Eranium, Amsterdam, NL (100G) | IPv4 | 2.16 Gbps | 3.61 Gbps |
| Leaseweb, Singapore, SG (10G) | IPv4 | 1.05 Gbps | 1.26 Gbps |
| Clouvider, Los Angeles, CA, US (10G) | IPv4 | 1 Gbps | 1.19 Gbps |
| Leaseweb, NYC, NY, US (10G) | IPv4 | 2.12 Gbps | 2.36 Gbps |

Public iperf3 servers vary in capacity and availability. Compare a target only with itself over time.

## Datastores

### PostgreSQL

#### fsync speed (pg\_test\_fsync)

| Method | Operations per second | Time per operation |
| --- | --- | --- |
| One 8 kB write |
| --- |
| open\_datasync | 3,809 | 0.263 ms |
| fdatasync | 3,696 | 0.271 ms |
| fsync | 1,929 | 0.518 ms |
| fsync\_writethrough | Not supported here | n/a |
| open\_sync | 2,197 | 0.455 ms |
| Two 8 kB writes |
| --- |
| open\_datasync | 2,038 | 0.491 ms |
| fdatasync | 2,996 | 0.334 ms |
| fsync | 1,777 | 0.563 ms |
| fsync\_writethrough | Not supported here | n/a |
| open\_sync | 1,161 | 0.861 ms |
| open\_sync at different write sizes |
| --- |
| 1 \* 16kB open\_sync write | 2,168 | 0.461 ms |
| 2 \* 8kB open\_sync writes | 1,082 | 0.924 ms |
| 4 \* 4kB open\_sync writes | 549 | 1.82 ms |
| 8 \* 2kB open\_sync writes | 196 | 5.1 ms |
| 16 \* 1kB open\_sync writes | 116 | 8.62 ms |
| fsync on a non-write descriptor |
| --- |
| write, fsync, close | 1,609 | 0.622 ms |
| write, close, fsync | 1,624 | 0.616 ms |
| Non-synced 8 kB writes |
| --- |
| write | 613,535 | 0.002 ms |

pg\_test\_fsync against the Docker volume Postgres keeps its data on. fdatasync is Linux's default wal\_sync\_method.

#### pgbench at scale 10

| Workload | Clients | Transactions/s | Median | p95 | p99 | p99.9 | Failed |
| --- | --- | --- | --- | --- | --- | --- | --- |
| Read/write (TPC-B like) | 1 | 1,058 | 0.895 ms | 1.4 ms | 1.6 ms | 3.21 ms | 0 |
| Read/write (TPC-B like) | 8 | 5,012 | 1.42 ms | 2.79 ms | 4 ms | 6.57 ms | 0 |
| Read/write (TPC-B like) | 32 | 4,898 | 4.84 ms | 16.8 ms | 28.3 ms | 49 ms | 0 |
| Read only | 1 | 25,959 | 0.035 ms | 0.053 ms | 0.07 ms | 0.145 ms | 0 |
| Read only | 8 | 67,134 | 0.102 ms | 0.17 ms | 0.214 ms | 0.341 ms | 0 |
| Read only | 32 | 65,101 | 0.374 ms | 0.713 ms | 1.02 ms | 1.54 ms | 0 |

Scale 10 (1,000,000 accounts), loaded in 1.05 s. 60 s per run, prepared statements. Latency comes from sampled transaction logs, and p99.9 is left out when fewer than 1,000 were sampled.

#### pgbench at scale 100

| Workload | Clients | Transactions/s | Median | p95 | p99 | p99.9 | Failed |
| --- | --- | --- | --- | --- | --- | --- | --- |
| Read/write (TPC-B like) | 1 | 869 | 1.16 ms | 1.66 ms | 2.22 ms | 3.79 ms | 0 |
| Read/write (TPC-B like) | 8 | 4,450 | 1.69 ms | 2.94 ms | 4.41 ms | 7.18 ms | 0 |
| Read/write (TPC-B like) | 32 | 5,475 | 5.49 ms | 9.08 ms | 12.1 ms | 17.1 ms | 0 |
| Read only | 1 | 20,299 | 0.043 ms | 0.07 ms | 0.117 ms | 0.48 ms | 0 |
| Read only | 8 | 52,167 | 0.137 ms | 0.228 ms | 0.289 ms | 0.674 ms | 0 |
| Read only | 32 | 53,221 | 0.5 ms | 0.826 ms | 1.15 ms | 2.06 ms | 0 |

Scale 100 (10,000,000 accounts), loaded in 11 s. 60 s per run, prepared statements. Latency comes from sampled transaction logs, and p99.9 is left out when fewer than 1,000 were sampled.

### MySQL

#### sysbench OLTP

| Workload | Threads | Transactions/s | Queries/s | Median | p95 | p99 | Errors |
| --- | --- | --- | --- | --- | --- | --- | --- |
| Read/write | 1 | 328 | 6,557 | 2.76 ms | 4.41 ms | 8.43 ms | 0 |
| Read/write | 8 | 1,038 | 20,759 | 7.57 ms | 11.4 ms | 14.7 ms | 0 |
| Read/write | 32 | 1,118 | 22,361 | 28.7 ms | 45 ms | 54.8 ms | 0 |
| Read only | 1 | 989 | 15,819 | 0.954 ms | 1.34 ms | 1.64 ms | 0 |
| Read only | 8 | 2,263 | 36,215 | 3.3 ms | 5.57 ms | 6.55 ms | 0 |
| Read only | 32 | 2,213 | 35,402 | 14 ms | 19.6 ms | 22.7 ms | 0 |

10 tables of 100,000 rows, loaded in 6.2 s. 60 s per run, one connection per thread.

### Redis

#### memtier

| Mix | Operations/s | Hits/s | Median | p99 | p99.9 |
| --- | --- | --- | --- | --- | --- |
| 1:10 set:get | 71,331 | 64,846 | 0.655 ms | 2.66 ms | 3.76 ms |
| 1:1 set:get | 61,553 | 30,776 | 0.751 ms | 2.99 ms | 4.29 ms |

1,000,000 keys of 32 bytes. 64 connections over 2 threads, 60 s per ratio.

## Web frameworks

| Framework | Fortunes req/s | Single query req/s | JSON req/s | Fortunes p99 at 256 connections |
| --- | --- | --- | --- | --- |
| Next.js nextjs | 835 | 2,867 | 4,299 | 427 ms |
| Express express-postgresjs | 8,415 | 12,579 | 44,316 | 59.7 ms |
| Fastify fastify-postgres | 8,159 | 13,363 | 50,919 | 57.5 ms |
| NestJS nestjs | 6,294 | 6,991 | 28,767 | 83.2 ms |
| Nuxt nuxt | 7,676 | 12,364 | 42,824 | 95.9 ms |
| FastAPI fastapi | 4,715 | 5,828 | 26,726 | 225 ms |
| Django django-postgresql | 2,194 | 2,517 | 6,270 | 190 ms |
| Rails rails | 3,976 | 5,146 | 17,926 | 86.1 ms |
| Laravel laravel | 967 | 1,036 | 2,000 | 301 ms |
| Symfony symfony | 1,222 | 1,350 | 3,755 | 239 ms |

Peak requests per second across the 64 and 256 connection levels, measured with wrk. Each test has to pass the TechEmpower response checks first, or it's marked invalid.

### WooCommerce

#### Page mix

| Step | Requests/s | Median | p95 | p99 | Error rate |
| --- | --- | --- | --- | --- | --- |
| 8 virtual users |
| --- |
| Home page | 2.92 | 539 ms | 639 ms | 706 ms | 0% |
| Shop page | 2.92 | 728 ms | 847 ms | 904 ms | 0% |
| Category page | 2.92 | 465 ms | 730 ms | 801 ms | 0% |
| Product page | 2.92 | 502 ms | 602 ms | 673 ms | 0% |
| Product search | 2.92 | 435 ms | 528 ms | 568 ms | 0% |
| 32 virtual users |
| --- |
| Home page | 2.89 | 2.05 s | 2.32 s | 2.41 s | 0% |
| Shop page | 2.89 | 2.65 s | 3.03 s | 3.2 s | 0% |
| Category page | 2.89 | 2.34 s | 2.79 s | 2.93 s | 0% |
| Product page | 2.89 | 2.05 s | 2.31 s | 2.45 s | 0% |
| Product search | 2.89 | 1.88 s | 2.14 s | 2.2 s | 0% |

#### Cart and checkout

| Step | Requests/s | Median | p95 | p99 | Error rate |
| --- | --- | --- | --- | --- | --- |
| 8 virtual users |
| --- |
| Add to cart | 5.45 | 603 ms | 737 ms | 790 ms | 0% |
| Cart | 5.45 | 480 ms | 604 ms | 631 ms | 0% |
| Checkout | 5.45 | 374 ms | 466 ms | 497 ms | 0% |
| 32 virtual users |
| --- |
| Add to cart | 5.58 | 1.96 s | 2.37 s | 2.47 s | 0% |
| Cart | 5.58 | 2.05 s | 2.27 s | 2.33 s | 0% |
| Checkout | 5.58 | 1.66 s | 1.96 s | 2.01 s | 0% |

k6 with a fixed number of virtual users, 61 to 66 s per level. The error rate counts responses that weren't a 200.

## Advertised vs. measured

| Spec | Advertised | Measured |
| --- | --- | --- |
| vCPU | 2 | 2 |
| CPU | Shared vCPU | 0% of busy CPU time stolen |
| RAM | 4 GB | 3.7 GiB |
| Storage | 80 GB NVMe | 75 GiB |
| Architecture | x86\_64 | x86\_64 |
| Virtualization | KVM | KVM |

Guests usually report slightly less RAM and disk than advertised because of kernel reservations and filesystem overhead.

## Detected hardware

**CPU model:** AMD EPYC-Genoa Processor

**CPU cores:** 2

**CPU frequency:** 2400 MHz

**AES-NI:** Yes

**VM-x/AMD-V:** No

**RAM reported:** 3.7 GiB

**Swap reported:** 0 MiB

**Disk reported:** 75 GiB

**Virtualization reported:** KVM

**CPU steal:** 0% of busy CPU time stolen

**Distro:** Ubuntu 24.04.4 LTS

**Kernel:** 6.8.0-138-generic

**Architecture:** x86\_64

**IPv4 reachable:** Yes

**IPv6 reachable:** Yes

## Advertised at test time

**Plan:** CPX22

**Product line:** regular\_purpose

**Location:** Helsinki DC Park 1

**vCPU:** 2 shared vCPU

**Architecture:** x86\_64

**RAM:** 4 GB

**Storage:** 80 GB NVMe

**Virtualization:** KVM

**Network:** Unknown

**Transfer:** 21.99 TB

**Port 25:** On request

**Monthly price at test time:** $22.99

**Hourly price at test time:** $0.037

**YABS version:** v2026-09-20

**Ran at:** Oct 11, 2026, 09:33:05 UTC

**Parser version:** 5

## Run timeline

**Queued:** Oct 11, 2026, 09:32:00 UTC

**Server created:** Oct 11, 2026, 09:32:39 UTC

**First update from the server:** Oct 11, 2026, 09:32:39 UTC

**Completed:** Oct 11, 2026, 10:47:09 UTC

**Server deleted:** Oct 11, 2026, 10:47:09 UTC

**Cost of this run:** $0.046

Tests 61 of 61 done Live output 775 lines

Setup 2 cores, 3.7 GiB RAM 4 of 4Done

Disk (fio) 325 MB/s at 4k, 5.74 GB/s at 1m 5 of 5Done

Network, IPv4 (iperf3) Median 2.12 Gbit/s send, 2.36 Gbit/s receive, 1 retried 5 of 5Done

Geekbench 7, single-core Score 1,674 17 of 17Done

Geekbench 7, multi-core Score 3,257 9 of 9Done

Phoronix (memory, TLS, scheduler) 3 of 3Done

Datastores 5 of 5Done

Web frameworks 12 of 12Done

Finish Results saved 1 of 1Done

Watch party 0 watching

This party closed at 10:43 UTC. It's read only now.

## Watch party

Loading the party
