# Hetzner CPX22

Falkenstein DC Park 1

Benchmark complete

Finished Oct 10, 2026

Geekbench 7 single-core

1,886

Faster than 95% of 2 vCPU plans

Geekbench 7 multi-core

3,588

Faster than 94% of 2 vCPU plans

Disk 4K IOPS

137,643

fio random read and write, 50/50

Monthly price at test time

$22.99

156 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=fsn1)

-

Provider

Hetzner

-

Plan

CPX22

-

Location

Falkenstein DC Park 1

-

vCPU

2

-

RAM

4 GB

-

Storage

80 GB NVMe

-

Network

Unknown

-

OS image

ubuntu-24.04

-

Trigger

Scheduled

-

Queued at

Oct 10, 2026, 17:02:00 UTC

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

## Latest runs of this plan

- [Helsinki DC Park 1 Oct 11, 2026](https://rackcensus.com/benchmarks/yjt3xx-hetzner-cpx22-hel1-benchmark)1,674

[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,886 | 3,588 | [Geekbench Browser](https://browser.geekbench.com/v7/cpu/598695) |

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,8048th of 71 | 3,07723rd of 63 |
| Navigation | 1,60222nd of 71 | Single-core only |
| HTML5 Browser | 1,8828th of 71 | Single-core only |
| PDF Viewer | 1,99410th of 71 | Single-core only |
| Photo Library | 1,9034th of 71 | 3,73621st of 63 |
| Clang | 1,63810th of 71 | 3,22129th of 63 |
| Text Processing | 1,7909th of 71 | 3,22828th of 63 |
| Asset Compression | 1,8859th of 71 | 3,72128th of 63 |
| HDR | 1,9854th of 71 | 3,42019th of 63 |
| Photo Editor | 2,7194th of 71 | 5,3579th of 63 |
| Ray Tracer | 1,58920th of 71 | 3,37130th of 63 |
| Structure from Motion | 1,83310th of 71 | Single-core only |
| Game Physics | 1,7389th of 71 | Single-core only |
| Video Encoder | 1,8979th of 71 | Single-core only |
| Audio Encoder | 1,8456th of 71 | Single-core only |
| Video Player | 2,3473rd 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 | 65.5 GB/s | 3 | 25.1% |
| Scale higher is better | 60.3 GB/s | 3 | 31.8% |
| Add higher is better | 61.5 GB/s | 3 | 31.6% |
| Triad higher is better | 61.9 GB/s | 3 | 32.6% |

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,294/s | 3 | 1.33% |
| RSA 4096 verifies higher is better | 35,277/s | 3 | 0.833% |
| SHA-256 higher is better | 1.96 GB/s | 3 | 1.09% |
| AES-256-GCM higher is better | 34 GB/s | 3 | 1.39% |
| ChaCha20-Poly1305 higher is better | 8.63 GB/s | 3 | 0.249% |

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 | 3.64 ms | 3 | 0.22% |
| Requests per second, 90th percentile higher is better | 508/s | 3 | 1.38% |
| Request latency, 99.9th percentile lower is better | 11.3 ms | 3 | 1.14% |
| Requests per second, average higher is better | 494/s | 3 | 0.744% |

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

## Disk

| Block size | Read | Write | Total |
| --- | --- | --- | --- |
| 4K | 268.5 MB/s (68,731 IOPS) | 269.2 MB/s (68,912 IOPS) | 537.7 MB/s (137,643 IOPS) |
| 64K | 2.16 GB/s (35,331 IOPS) | 2.17 GB/s (35,517 IOPS) | 4.32 GB/s (70,848 IOPS) |
| 512K | 2.36 GB/s (4,830 IOPS) | 2.48 GB/s (5,087 IOPS) | 4.84 GB/s (9,917 IOPS) |
| 1M | 2.35 GB/s (2,405 IOPS) | 2.51 GB/s (2,565 IOPS) | 4.85 GB/s (4,970 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 | 6.87 Gbps | 4.38 Gbps |
| Eranium, Amsterdam, NL (100G) | IPv4 | 2.21 Gbps | 5.5 Gbps |
| Leaseweb, Singapore, SG (10G) | IPv4 | 1.12 Gbps | 1.11 Gbps |
| Clouvider, Los Angeles, CA, US (10G) | IPv4 | 804 Mbps | 1.01 Gbps |
| Leaseweb, NYC, NY, US (10G) | IPv4 | 1.61 Gbps | 2.03 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 | 4,141 | 0.241 ms |
| fdatasync | 3,750 | 0.267 ms |
| fsync | 2,298 | 0.435 ms |
| fsync\_writethrough | Not supported here | n/a |
| open\_sync | 2,370 | 0.422 ms |
| Two 8 kB writes |
| --- |
| open\_datasync | 2,093 | 0.478 ms |
| fdatasync | 3,681 | 0.272 ms |
| fsync | 2,184 | 0.458 ms |
| fsync\_writethrough | Not supported here | n/a |
| open\_sync | 1,181 | 0.847 ms |
| open\_sync at different write sizes |
| --- |
| 1 \* 16kB open\_sync write | 2,288 | 0.437 ms |
| 2 \* 8kB open\_sync writes | 1,228 | 0.814 ms |
| 4 \* 4kB open\_sync writes | 613 | 1.63 ms |
| 8 \* 2kB open\_sync writes | 314 | 3.19 ms |
| 16 \* 1kB open\_sync writes | 151 | 6.63 ms |
| fsync on a non-write descriptor |
| --- |
| write, fsync, close | 2,069 | 0.483 ms |
| write, close, fsync | 1,976 | 0.506 ms |
| Non-synced 8 kB writes |
| --- |
| write | 682,965 | 0.001 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,176 | 0.837 ms | 1.13 ms | 1.52 ms | 3.93 ms | 0 |
| Read/write (TPC-B like) | 8 | 5,315 | 1.3 ms | 2.88 ms | 4.16 ms | 6.84 ms | 0 |
| Read/write (TPC-B like) | 32 | 5,481 | 4.39 ms | 14.5 ms | 25.2 ms | 43.8 ms | 0 |
| Read only | 1 | 23,599 | 0.034 ms | 0.073 ms | 0.095 ms | 0.188 ms | 0 |
| Read only | 8 | 83,278 | 0.082 ms | 0.135 ms | 0.183 ms | 0.331 ms | 0 |
| Read only | 32 | 72,380 | 0.329 ms | 0.693 ms | 1.02 ms | 1.63 ms | 0 |

Scale 10 (1,000,000 accounts), loaded in 0.98 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 | 1,034 | 0.937 ms | 1.32 ms | 1.78 ms | 3.41 ms | 0 |
| Read/write (TPC-B like) | 8 | 4,918 | 1.43 ms | 3.02 ms | 4.53 ms | 7.68 ms | 0 |
| Read/write (TPC-B like) | 32 | 7,194 | 3.98 ms | 7.79 ms | 11 ms | 16.6 ms | 0 |
| Read only | 1 | 20,031 | 0.039 ms | 0.084 ms | 0.157 ms | 0.617 ms | 0 |
| Read only | 8 | 72,510 | 0.098 ms | 0.162 ms | 0.218 ms | 0.576 ms | 0 |
| Read only | 32 | 63,962 | 0.415 ms | 0.687 ms | 0.999 ms | 2.1 ms | 0 |

Scale 100 (10,000,000 accounts), loaded in 10.1 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 | 276 | 5,527 | 3.55 ms | 5.18 ms | 7.99 ms | 0 |
| Read/write | 8 | 1,103 | 22,064 | 7.04 ms | 11.9 ms | 15.8 ms | 0 |
| Read/write | 32 | 1,349 | 26,985 | 23.5 ms | 38.2 ms | 48.3 ms | 0 |
| Read only | 1 | 1,002 | 16,024 | 0.872 ms | 1.67 ms | 2.03 ms | 0 |
| Read only | 8 | 2,971 | 47,529 | 2.62 ms | 3.19 ms | 4.25 ms | 0 |
| Read only | 32 | 2,871 | 45,943 | 10.8 ms | 13.7 ms | 15.8 ms | 0 |

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

### Redis

#### memtier

| Mix | Operations/s | Hits/s | Median | p99 | p99.9 |
| --- | --- | --- | --- | --- | --- |
| 1:10 set:get | 67,746 | 61,587 | 0.599 ms | 3.06 ms | 4.42 ms |
| 1:1 set:get | 67,333 | 33,666 | 0.615 ms | 3.04 ms | 4.42 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 | 895 | 3,081 | 4,339 | 437 ms |
| Express express-postgresjs | 9,522 | 14,231 | 54,448 | 48.4 ms |
| Fastify fastify-postgres | 9,068 | 14,601 | 57,284 | 61.1 ms |
| NestJS nestjs | 8,360 | 9,603 | 43,132 | 65.7 ms |
| Nuxt nuxt | 8,245 | 14,429 | 51,109 | 66.8 ms |
| FastAPI fastapi | 5,811 | 6,809 | 28,878 | 153 ms |
| Django django-postgresql | 2,603 | 2,742 | 7,404 | 143 ms |
| Rails rails | 4,264 | 6,282 | 25,846 | 111 ms |
| Laravel laravel | 1,029 | 1,046 | 2,087 | 284 ms |
| Symfony symfony | 1,256 | 1,374 | 4,445 | 226 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.83 | 554 ms | 647 ms | 677 ms | 0% |
| Shop page | 2.83 | 757 ms | 917 ms | 942 ms | 0% |
| Category page | 2.83 | 482 ms | 750 ms | 807 ms | 0% |
| Product page | 2.83 | 516 ms | 635 ms | 675 ms | 0% |
| Product search | 2.83 | 448 ms | 539 ms | 567 ms | 0% |
| 32 virtual users |
| --- |
| Home page | 2.89 | 2.04 s | 2.3 s | 2.47 s | 0% |
| Shop page | 2.89 | 2.66 s | 3.06 s | 3.16 s | 0% |
| Category page | 2.89 | 2.33 s | 2.78 s | 2.97 s | 0% |
| Product page | 2.89 | 2.02 s | 2.28 s | 2.41 s | 0% |
| Product search | 2.89 | 1.92 s | 2.11 s | 2.17 s | 0% |

#### Cart and checkout

| Step | Requests/s | Median | p95 | p99 | Error rate |
| --- | --- | --- | --- | --- | --- |
| 8 virtual users |
| --- |
| Add to cart | 5.64 | 597 ms | 709 ms | 741 ms | 0% |
| Cart | 5.64 | 488 ms | 577 ms | 612 ms | 0% |
| Checkout | 5.64 | 372 ms | 448 ms | 472 ms | 0% |
| 32 virtual users |
| --- |
| Add to cart | 5.56 | 1.97 s | 2.41 s | 2.55 s | 0% |
| Cart | 5.56 | 2.04 s | 2.29 s | 2.38 s | 0% |
| Checkout | 5.56 | 1.66 s | 1.98 s | 2.08 s | 0% |

k6 with a fixed number of virtual users, 61 to 67 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:** 2200 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:** Falkenstein 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 10, 2026, 17:02:39 UTC

**Parser version:** 5

## Run timeline

**Queued:** Oct 10, 2026, 17:02:00 UTC

**Server created:** Oct 10, 2026, 17:02:33 UTC

**First update from the server:** Oct 10, 2026, 17:02:33 UTC

**Completed:** Oct 10, 2026, 18:16:22 UTC

**Server deleted:** Oct 10, 2026, 18:16:22 UTC

**Cost of this run:** $0.046

Tests 61 of 61 done Live output 776 lines

Setup 2 cores, 3.7 GiB RAM 4 of 4Done

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

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

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

Geekbench 7, multi-core Score 3,588 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 18:12 UTC. It's read only now.

## Watch party

Loading the party
