Raff vs Hetzner VPS Benchmark 2026: An Independent, Data-Driven Performance Comparison
When choosing a VPS provider, marketing pages and spec sheets only tell half the story. What actually matters is how your server performs under the workloads you care about — database queries, container orchestration, CI/CD pipelines, and everything in between.
This article breaks down an independent, third-party benchmark report that pits Raff against Hetzner Cloud CPX21 — two popular choices in the affordable cloud hosting space — across CPU, storage I/O, memory, and network performance. The benchmark was conducted and published by NPM Technology (npmtech.io), and we want to extend our sincere thanks for their thorough methodology, transparent data, and the time they invested in getting these results right. All benchmark data and testing effort referenced in this article belong entirely to the npmtech.io team.
You can read the full original benchmark report here: How to Actually Benchmark a VPS — What a Day of Testing Taught Us About Getting It Right
Why Independent Benchmarks Matter More Than Ever
The cloud infrastructure market in 2026 is crowded. Every provider claims "blazing fast NVMe storage" and "enterprise-grade performance." But without standardized, reproducible testing from an impartial source, those claims are essentially marketing noise.
What makes the npmtech.io benchmark especially valuable is the methodology: they ran industry-standard tools (fio, sysbench, speedtest-cli, curl, ping, dig) multiple times across both providers, controlled for variables, and documented every step of the process. They even went back to re-run Raff tests after the Raff team made server-side storage optimizations mid-evaluation — a level of transparency you rarely see in this space.
The tester also noted that Raff's support team was responsive, transparent, and proactive throughout the evaluation — making real-time infrastructure adjustments and suggesting deeper testing methodology. That kind of engagement during a public benchmark speaks volumes about a provider's confidence in their platform.
For developers, DevOps engineers, and startup founders evaluating cloud providers, this kind of head-to-head data is far more useful than any provider's own benchmark page.
Test Environment: The Configuration Details
Both servers were running Ubuntu 24.04 LTS with identical tooling. Here are the exact specifications from the report:
| Specification | Raff | Hetzner Cloud CPX21 |
|---|---|---|
| CPU | 4 cores — EPYC 8224P | 3 cores — EPYC Rome |
| RAM | 8 GB | 3.7 GB |
| Disk | 116 GB (114 free) | 75 GB (32 free) |
| OS | Ubuntu 24.04.2 LTS | Ubuntu 24.04.4 LTS |
| Virtualization | KVM | KVM |
| Monthly Cost | $9.99 | ~$19 |
Read those numbers carefully. Raff provides 4 cores, 8 GB RAM, and 116 GB of disk for $9.99 per month. Hetzner's CPX21 provides 3 cores, 3.7 GB RAM, and 75 GB of disk for nearly double the price at approximately $19 per month.
That is 2x the RAM, one extra CPU core, 50% more disk space — and roughly half the cost. Before a single benchmark even runs, Raff is delivering significantly more hardware per dollar.
Storage I/O Performance: The Headline Story
Storage performance is arguably the most critical factor for production workloads. Databases, container images, log aggregation, build artifacts — they all depend on how fast your disk can read and write data.
The benchmark tested storage at two different queue depths, and the results tell two very different stories depending on your workload pattern.
Shallow Queue (iodepth=1): Single-Request Latency
Shallow queue testing simulates isolated, single-request I/O — one database query or one file read with no concurrent operations. This is the simplest access pattern.
| Test | Raff | Hetzner | Winner |
|---|---|---|---|
| Sequential Read (MB/s) | 1,621 | 1,299 | Raff (+25%) |
| Random Read 4K IOPS | 2,694 | 3,933 | Hetzner (+46%) |
| Random Write 4K IOPS | 15,026 | 15,193 | Tie |
| Mixed R/W Read IOPS | 2,682 | 3,863 | Hetzner (+44%) |
| Mixed R/W Write IOPS | 15,001 | 15,001 | Tie |
At shallow queue depth, Hetzner wins on random 4K read IOPS. This represents best-case single-request latency and matters for isolated, sequential operations. Raff takes sequential read throughput by a 25% margin.
Deep Queue (iodepth=16, 4 parallel jobs): Where Reality Lives
Deep queue testing simulates the workload pattern that actually matters for most production environments: concurrent container and database workloads — multiple Docker containers, parallel database connections, and simultaneous file operations.
This is where the picture changes dramatically.
| Test | Raff | Hetzner | Winner |
|---|---|---|---|
| Sequential Read (MB/s) | 2,778 | 2,186 | Raff (+27%) |
| Sequential Read Latency | 22.9 ms | 29.2 ms | Raff |
| Random Read 4K IOPS | 83,160 | 46,676 | Raff (+78%) |
| Random Read 4K Latency | 0.76 ms | 1.37 ms | Raff (45% faster) |
| Random Write 4K IOPS | 30,003 | 30,002 | Tie |
| Random Write 4K Latency | 1.40 ms | 0.57 ms | Hetzner |
| Mixed R/W Read IOPS | 51,726 | 31,341 | Raff (+65%) |
| Mixed R/W Write IOPS | 30,002 | 30,002 | Tie |
| Mixed R/W Read Latency | 0.76 ms | 1.48 ms | Raff (49% faster) |
Under concurrent load — the realistic scenario for a Docker-based stack running multiple services — Raff delivers 78% more random read IOPS at nearly half the latency. Hetzner maintains better random write latency (0.57 ms versus 1.40 ms), but for read-heavy workloads typical of web applications and databases, Raff has the clear advantage.
The I/O Scaling Story: 31x vs 12x
The most striking finding in the entire report is how each provider's storage scales from shallow to deep queue:
| Provider | Shallow 4K Read IOPS | Deep 4K Read IOPS | Scaling Factor |
|---|---|---|---|
| Raff | 2,694 | 83,160 | 31x |
| Hetzner | 3,933 | 46,676 | 12x |
Raff's NVMe storage scales 31x from shallow to deep queue on random 4K reads, while Hetzner scales 12x. This reflects fundamentally different storage architectures. Raff's NVMe controller appears optimized for high queue depth parallelism, which aligns perfectly with containerized, multi-service workloads.
What This Means for Your Workload
If you are running a single application that reads files sequentially, the storage performance difference between Raff and Hetzner is negligible. But the moment you introduce:
- Multiple Docker containers sharing disk I/O
- Database workloads with concurrent read/write operations
- CI/CD build pipelines running in parallel
- Kubernetes pods with overlapping storage requests
Raff's storage architecture starts delivering measurable advantages. The 78% IOPS improvement under concurrent load is not a marginal gain — it translates directly into faster database queries, quicker container startup times, and more responsive applications under real traffic.
Performance Evolution Across Three Rounds
The benchmark also documented how Raff's storage performance improved across three testing rounds as server-side adjustments were made:
| Metric | Round 1 (Raff) | Round 2 (Raff) | Round 3 (Raff) | Hetzner (stable) |
|---|---|---|---|---|
| Sequential Read (MB/s) | 524 | 1,631 | 1,621 | 1,372 |
| Random 4K Read IOPS (shallow) | 2,705 | 2,683 | 2,694 | 3,962 |
| Random 4K Read IOPS (deep) | — | — | 83,160 | 46,676 |
| Random 4K Read Latency (deep) | — | — | 0.76 ms | 1.37 ms |
Shallow-queue results were consistent across all three Raff runs, confirming the Round 2 adjustments targeted sequential throughput specifically — boosting it from 524 MB/s to 1,631 MB/s (a roughly 3x improvement). The deep queue test in Round 3 revealed the fundamentally different scaling characteristics in Raff's storage layer.
CPU Performance: Hetzner Edges Per-Core, Raff Leads Aggregate
CPU benchmarks were conducted using sysbench for raw computational throughput.
| Test | Raff | Hetzner | Winner |
|---|---|---|---|
| Single-thread (events/sec) | 1,336 | 1,399 | Hetzner (+5%) |
| Multi-thread (events/sec) | 5,274 (4 threads) | 4,157 (3 threads) | Raff (+27%) |
Hetzner's EPYC Rome is marginally faster per-core — a 5% advantage that is unlikely to be noticeable in real-world applications. Meanwhile, Raff's extra core delivers 27% more aggregate throughput for multi-threaded workloads, which is the dominant pattern for modern web servers, application builds, and parallel data processing.
Results were consistent across all rounds, confirming stable CPU allocation with no noisy-neighbor variance on either platform.
Memory Performance: Raff Leads by 27–38%
Memory throughput was evaluated using sysbench memory read/write tests. Raff showed a consistent and significant advantage:
| Test | Raff | Hetzner | Winner |
|---|---|---|---|
| Read (MiB/sec) | 44,556 | 35,031 | Raff (+27%) |
| Write (MiB/sec) | 24,212 | 17,497 | Raff (+38%) |
Raff showed a notable memory advantage in the final round. Hetzner's numbers dipped from prior runs, likely reflecting transient load on the host node. Across all runs, Raff has been consistently equal to or ahead on memory throughput.
Keep in mind that Raff also provides 8 GB of RAM versus Hetzner's 3.7 GB — so you are not only getting faster memory, you are getting more than double the capacity. For memory-intensive workloads like Redis caching, in-memory databases, or JVM applications with large heap sizes, this combination of speed and capacity is a significant advantage.
Network Performance: A Nuanced Picture
Network performance was the most nuanced category in the benchmark. The results depend heavily on whether you look at single-stream or multi-stream testing.
| Test | Raff | Hetzner | Winner |
|---|---|---|---|
| Single-stream Download (Mbps) | 743 | 8,470 | Hetzner (11.4x) |
| Multi-stream Download (Mbps) | 2,279 | 1,566 | Raff (+46%) |
| Multi-stream Upload (Mbps) | 1,910 | 1,458 | Raff (+31%) |
| Ping (ms) | 3.94 | 10.04 | Raff |
| TLS Handshake (sec) | 0.036 | 0.039 | Raff |
| TTFB google.com (sec) | 0.155 | 0.073 | Hetzner |
| DNS Resolution (ms) | 17 | 37 | Raff |
The single-stream result — where Hetzner shows an 11.4x advantage — reflects TCP window scaling and geographic distance to the test server, not actual bandwidth capacity. The tester noted that multi-stream testing with speedtest-cli provides a more representative measure of real-world bandwidth.
Under multi-stream conditions, Raff is 46% faster on download and 31% faster on upload. Raff also delivers significantly lower ping latency (3.94 ms vs 10.04 ms) and faster DNS resolution (17 ms vs 37 ms). Hetzner wins on TTFB to google.com, likely reflecting routing differences.
For typical web application serving with a CDN in front, multi-stream results are the better indicator. For workloads involving frequent large file transfers without a CDN, single-stream behavior may still be relevant.
Sustained Load & Stability: Both Excellent
One of the more reassuring findings from the report was the stability testing. Using sustained multi-threaded CPU load over multiple windows, the tester checked for throttling or performance degradation:
| Metric | Raff | Hetzner |
|---|---|---|
| Window 1 (events/sec) | 5,282 | 4,083 |
| Window 4 (events/sec) | 5,310 | 4,196 |
| Performance Delta | 0% (stable) | +2% (stable) |
Both platforms remain stable under sustained load across all benchmark rounds. No throttling or noisy-neighbor effects were detected on either platform throughout the day of testing. This is critical for production workloads where performance consistency matters as much as peak throughput.
The Overall Scorecard
Here is the complete scorecard from the npmtech.io report:
| Category | Winner | Margin | Notes |
|---|---|---|---|
| Hardware Specs | Raff | 2x RAM, +1 core, +50% disk | Significant resource advantage |
| CPU (Single-thread) | Hetzner | +5% per-core | Marginal |
| CPU (Multi-thread) | Raff | +27% aggregate | Extra core advantage |
| Memory | Raff | +27–38% | Consistently equal or ahead |
| Disk: Shallow Queue | Hetzner | +46% random 4K read | Single-request latency |
| Disk: Deep Queue | Raff | +78% random 4K read | Concurrent workload throughput |
| Disk: Deep Queue Latency | Raff | 45–49% lower read latency | Sub-millisecond reads |
| Network: Single-stream | Hetzner | 11.4x download | TCP scaling artifact |
| Network: Multi-stream | Raff | +46% download | Realistic bandwidth measure |
| Network Latency | Mixed | Raff: lower ping; Hetzner: lower TTFB | Routing differences |
| Stability | Tie | Both excellent | No throttling detected |
| Price | Raff | $9.99 vs ~$19 | ~50% cheaper |
The Verdict: Choosing Based on Your Actual Workload
The npmtech.io benchmark report does not declare an absolute "winner" — and that is the right approach, because the best provider depends on what you are building.
Choose Raff If You Are:
- Running Docker-based production workloads where multiple containers share storage I/O — the 78% deep-queue IOPS advantage and 45–49% lower read latency translate directly into faster application performance
- Operating databases (PostgreSQL, MySQL, MongoDB) that rely on concurrent random read performance — the 31x I/O scaling factor means your database gets faster, not slower, as concurrent connections increase
- Deploying Kubernetes clusters where pod density creates parallel disk access patterns
- Building CI/CD pipelines where parallel build jobs compete for disk bandwidth
- Running memory-intensive applications like Redis, Memcached, or JVM-based services — you get 2x the RAM capacity and 27–38% faster memory throughput
- Need more hardware for less money — 4 cores, 8 GB RAM, and 116 GB disk at $9.99/mo versus 3 cores, 3.7 GB RAM, and 75 GB disk at ~$19/mo
- Budget-conscious — Raff also charges zero egress fees, meaning you never pay extra for outbound data transfer
Choose Hetzner If You Are:
- Running workloads with primarily single-threaded, isolated I/O operations where shallow-queue random read performance matters most
- Need maximum single-stream network bandwidth for large file distribution without a CDN
- Operating workloads that are heavily write-latency sensitive (Hetzner's 0.57 ms random write latency at deep queue beats Raff's 1.40 ms)
- Leveraging Hetzner's mature ecosystem and extensive European data center presence
Pricing Perspective: Total Cost of Ownership
The pricing difference in this benchmark deserves special attention because it fundamentally changes the value calculation:
At $9.99/month, Raff delivers:
- 4 CPU cores (EPYC 8224P)
- 8 GB RAM
- 116 GB NVMe storage
- Zero egress fees
- 78% higher concurrent read IOPS
- 27% faster multi-threaded CPU
- 27–38% faster memory
- 46% faster multi-stream download
At ~$19/month, Hetzner CPX21 delivers:
- 3 CPU cores (EPYC Rome)
- 3.7 GB RAM
- 75 GB NVMe storage
- 5% faster single-threaded CPU
- 46% higher shallow-queue random reads
- 11.4x single-stream download speed
You are paying nearly double for fewer cores, less than half the RAM, less disk space, and — in the workload pattern most representative of modern production environments — significantly less storage performance. The only scenarios where Hetzner's specific advantages outweigh this value gap are single-threaded, single-request, write-latency-sensitive workloads with very high single-stream bandwidth requirements.
Egress Fees: Raff charges zero egress fees — all outbound data transfer is included in your plan. For applications with unpredictable or high outbound traffic, this eliminates a significant variable cost that can catch teams off guard with other providers.
Scaling Efficiency: Raff's superior I/O performance under concurrent load means you may be able to run more services on fewer instances — or use smaller instances to achieve the same throughput. Over time, this resource efficiency compounds into meaningful savings on your cloud bill.
Methodology Notes: How the Benchmarks Were Conducted
For full transparency, here is the testing methodology from the npmtech.io benchmark report:
All benchmarks were run on March 11, 2026, using an identical bash script with consistent parameters across both servers. Three rounds were conducted on Raff (before adjustments, after adjustments, and deep queue) and two on Hetzner (initial and deep queue).
Tools used:
- sysbench — CPU single/multi-thread, memory read/write
- fio — Disk I/O at iodepth=1 (shallow) and iodepth=16 with 4 parallel jobs (deep), libaio engine with direct I/O for deep queue tests
- curl — Download speed, TLS handshake, TTFB
- speedtest-cli — Multi-stream bandwidth
- ping — Network latency to 1.1.1.1, 8.8.8.8, 9.9.9.9
- dig — DNS resolution timing
No vendor-provided benchmarking tools were used. The benchmark script is available upon request from npmtech.io.
Sequential write results appeared anomalously low on both providers across all runs under both queue depths. This is likely a fio configuration interaction with the terse output format and has been excluded from the analysis.
Report prepared using data from benchmark runs at 06:24 UTC (Raff R1), 14:05 UTC (Raff R2), 14:27 UTC (Raff R3 + Hetzner deep), and 06:37 UTC (Hetzner initial). Raw benchmark output is also available upon request.
Acknowledgment
All benchmark data, testing methodology, and analysis referenced in this article were conducted and published by the team at NPM Technology — npmtech.io. We are grateful for their rigorous, transparent approach to VPS evaluation and their willingness to share their findings publicly. Independent benchmarking like this raises the bar for the entire cloud hosting industry and helps developers make informed decisions based on real data rather than marketing promises.
Thank you, npmtech.io, for putting in the work to get this right.
Start Building on Raff
If the benchmark results resonate with your workload requirements — especially if you are running containerized applications, databases, or parallel workloads where concurrent I/O performance matters — you can deploy a Raff instance in minutes.
- 4 vCPU / 8 GB RAM starting at $9.99/month
- AMD EPYC processors with NVMe storage
- Zero egress fees — never pay for outbound data transfer
- US-based data center (Virginia) with Canadian-domiciled servers available on request
- 14-day money-back guarantee — try it risk-free
