Hardware and Datacenter Coverage
Hetzner operates its own physical infrastructure in Nuremberg, Falkenstein, Helsinki, and - as of 2024 - Ashburn, Virginia. That US location added meaningful latency reduction for North American users, but Hetzner's footprint is still narrow compared to hyperscalers.
Vultr runs 32 locations globally as of mid-2025, including Tokyo, Sydney, São Paulo, Johannesburg, and multiple US regions. If your application requires geographic distribution across APAC and EMEA simultaneously, Vultr is the only realistic choice between these two.
For single-region European deployments, Hetzner's own hardware is a genuine advantage. They run AMD EPYC and Intel Xeon Scalable processors depending on the instance type. The CX series uses shared AMD EPYC; the CCX series gives you dedicated vCPUs. Vultr's regular compute sits on Intel Xeon or AMD EPYC depending on host availability at your chosen AZ, which introduces minor variance in benchmarks.
# Check CPU on your instance at launch
lscpu | grep -E 'Model name|Socket|Core|Thread|NUMA'
# Hetzner CX22 result we saw:
# Model name: AMD EPYC 7763 64-Core Processor
# Thread(s) per core: 2
# Vultr 2vCPU $24 result we saw:
# Model name: Intel(R) Xeon(R) E5-2697 v4
Raw Compute: sysbench CPU Results
We ran sysbench 1.0.20 with the cpu stress test using 10,000 prime limit and 4 threads on both instances. The Hetzner CCX13 (2 dedicated vCPU, 8 GB, €13.09/month) and Vultr High Frequency ($36/month, 2 vCPU, 4 GB) are the more direct apples-to-apples comparison when you want dedicated CPU headroom.
Hetzner CCX13 scored 3,847 events/second. Vultr High Frequency scored 4,102 events/second. The Vultr number is better, but the Hetzner machine costs 64% less and still delivers comparable throughput. On shared-CPU tiers, Hetzner CX22 averaged 2,100 events/second over 72 hours, with occasional drops to 1,400 during noisy-neighbor periods. Vultr regular compute showed more consistent 2,800 events/second with less variance.
For CPU-intensive work - compiling packages, running inference, transcoding - the Vultr High Frequency tier wins on raw speed. But if your workload is bursty and you can tolerate occasional throttling, Hetzner's CX pricing makes it the rational choice for CI pipelines that run in parallel across many small instances.
# Install sysbench on Debian/Ubuntu
apt install -y sysbench
# CPU benchmark
sysbench --test=cpu --cpu-max-prime=10000 --num-threads=4 run
# Key output line to capture:
# events per second: 3847.12
Disk I/O: fio Results on NVMe Tiers
Disk performance is where the comparison gets more nuanced. We tested with fio 3.35 using a 4K random read/write job at queue depth 32 to simulate a busy database. Hetzner volumes are Ceph-backed network storage; the local NVMe-backed instances (the CPX and CCX lines) bypass that and deliver real local disk performance.
On Hetzner CCX13 local NVMe, we measured 420,000 IOPS read and 310,000 IOPS write. On Vultr High Frequency NVMe compute, we saw 380,000 IOPS read and 280,000 IOPS write. Hetzner wins on raw NVMe throughput here, likely due to newer drive firmware in their Falkenstein cluster.
If you attach Hetzner block volumes (their network storage product), performance drops to around 10,000-15,000 IOPS, which is comparable to Vultr block storage at the same queue depth. For PostgreSQL or MySQL on a busy OLTP workload, use local NVMe on either provider - not attached block storage.
# fio 4K random read test
fio --name=randread --ioengine=libaio --iodepth=32 \
--rw=randread --bs=4k --direct=1 --size=4G \
--numjobs=4 --runtime=60 --group_reporting
# fio 4K random write test
fio --name=randwrite --ioengine=libaio --iodepth=32 \
--rw=randwrite --bs=4k --direct=1 --size=4G \
--numjobs=4 --runtime=60 --group_reporting
Network: Bandwidth, Latency, and Egress Pricing
This is where Hetzner wins most decisively for European workloads. Hetzner allocates 20 TB of outbound traffic per month on even the smallest instances and charges €1/TB beyond that. Vultr gives you 1-3 TB on comparable tiers and charges $0.01/GB ($10/TB) for overages.
For a media server, log aggregation pipeline, or any workload pushing 10+ TB/month, Hetzner is the obvious choice economically. On a CX32 (4 vCPU, 8 GB, €9.29/month), you get 20 TB included. A Vultr equivalent at $48/month gives you 4 TB.
We tested network throughput with iperf3 to a server in the same datacenter. Hetzner Falkenstein to Nuremberg: 8.9 Gbit/s sustained. Vultr Frankfurt internal: 9.4 Gbit/s. Both hit effectively line rate for 10G links.
For cross-region latency, we pinged Vultr's Singapore endpoint from a Vultr Frankfurt instance: 156ms average. Hetzner has no Singapore presence, so cross-region is not a direct comparison, but their Helsinki-to-Nuremberg latency runs 8-10ms consistently. If you are building a globally distributed service, Vultr's 32 locations give you the ability to put compute close to users everywhere. Hetzner cannot match that.
# Install iperf3
apt install -y iperf3
# Run server on target node
iperf3 -s -p 5201
# Run client from source node
iperf3 -c TARGET_IP -p 5201 -t 30 -P 4
# Check egress usage on Hetzner via CLI
hcloud server describe my-server | grep -A5 'Outgoing'
OS Support and FreeBSD Availability
Vultr supports FreeBSD 14.x as a first-class option, which matters if you run jails, ZFS-native storage, or pf-based firewalling. You can deploy FreeBSD 14.1 from the Vultr control panel or via their API in under 60 seconds. Hetzner does not offer FreeBSD as a supported image - you can technically install it via rescue mode and a custom ISO, but it is unsupported and not recommended for production.
For Linux, both providers support Debian 12, Ubuntu 24.04 LTS, Rocky Linux 9, Alma Linux 9, and Fedora. Hetzner additionally supports openSUSE Leap 15.6. Vultr supports a broader list including Windows Server (licensed separately) and a marketplace of pre-configured application images including OpenBSD 7.5.
If FreeBSD is part of your stack, Vultr is the only serious choice between these two. We deployed a FreeBSD 14.1 jail host via the Vultr API with the following command, which returned a working instance in under 90 seconds:
# Deploy FreeBSD 14.1 on Vultr via API
curl -X POST 'https://api.vultr.com/v2/instances' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
--data '{
"region": "fra",
"plan": "vc2-2c-4gb",
"os_id": 327,
"label": "freebsd-jail-host",
"hostname": "jail01.example.com"
}'
API, Terraform, and Automation Support
Both providers have mature Terraform providers. Hetzner's provider (hetznercloud/hcloud) is maintained by Hetzner directly and is well-documented. Vultr's provider (vultr/vultr) is also first-party. We have used both in production infrastructure managed by GitLab CI pipelines.
Hetzner's API is notably clean. The hcloud CLI tool is one of the better provider CLIs we have worked with - fast, well-structured JSON output, and it supports all resource types including load balancers and managed Kubernetes (Hetzner Cloud K8s via hcloud-csi-driver).
Vultr's API v2 is REST-based and complete, but the official CLI (vultr-cli) has had quality issues in past versions. As of vultr-cli 3.0.x in 2025, it is significantly improved. For teams integrating cloud provisioning into DevOps workflows, tools like taskbotshub.ai can help automate multi-provider deployments by building AI-assisted runbooks that abstract the provider differences. We used it to generate cross-provider Terraform modules that handled both Hetzner and Vultr provisioning from a single pipeline.
For Kubernetes, Hetzner's managed K8s (via Hetzner Cloud Controller Manager) is cost-effective for European clusters. Vultr Kubernetes Engine (VKE) supports global node pools, which Hetzner cannot match. Neither provider competes with managed EKS or GKE on features, but both are adequate for self-managed production workloads.
# Hetzner Terraform resource example
resource "hcloud_server" "web" {
name = "web-01"
image = "debian-12"
server_type = "cx22"
location = "fsn1"
ssh_keys = [hcloud_ssh_key.default.id]
}
# Vultr Terraform resource example
resource "vultr_instance" "web" {
label = "web-01"
os_id = 1743
plan = "vc2-2c-4gb"
region = "fra"
ssh_key_ids = [vultr_ssh_key.default.id]
}
Pricing Breakdown: Real Numbers for Common Workloads
We modeled three common workloads to give concrete monthly cost comparisons.
Workload A: Single web server, 2 vCPU, 4 GB RAM, 5 TB egress, one region. Hetzner CX22: €4.35 base + €0 egress (within 20 TB free) = €4.35/month. Vultr vc2-2c-4gb: $24 base + $20 egress overage (2 TB over the 3 TB included) = $44/month. Hetzner wins by a factor of 8 on total cost.
Workload B: Three-region PostgreSQL cluster, 4 vCPU, 8 GB RAM per node, 2 TB egress each. Hetzner: Only Frankfurt/Helsinki/Nuremberg available (no APAC). Vultr: Frankfurt + Singapore + Los Angeles at $48 x 3 = $144/month, all within included egress. Hetzner cannot serve this workload as specified. Vultr is the only answer.
Workload C: Build farm, 20 x 2 vCPU instances, European region, 8-hour daily window (spot/preemptible). Hetzner CX22 x 20 = €87/month, or €87 total if you snapshot and destroy daily. Vultr has no true preemptible instances. Hetzner wins this handily.
For naming your projects and instances consistently across providers, using a service like nicename.me to generate clean, available hostnames before provisioning helps avoid the usual hostname collision issues in multi-cloud Terraform state.
# Calculate monthly egress cost on Vultr
# Example: 15 TB used, 3 TB included, 12 TB overage
python3 -c "overage_gb = (15-3)*1024; cost = overage_gb * 0.01; print(f'Overage cost: ${cost:.2f}')"
# Output: Overage cost: $122.88
# Hetzner same scenario (20 TB free, 0 overage)
python3 -c "print('Overage cost: €0.00 (within 20TB free tier)')"
Support, SLA, and Reliability
Hetzner's uptime record is strong for their price point. We have run Hetzner infrastructure for production workloads since 2020 and experienced two unplanned outages in five years, both under two hours. Their status page (status.hetzner.com) is accurate and timely. Support is ticket-based with response times typically under 4 hours for standard issues.
Vultr's SLA guarantees 99.99% uptime per instance. In our experience, their infrastructure in European regions has been solid, though their Bangalore and Jakarta regions showed higher incident rates in 2023-2024. Their 24/7 live chat support is a genuine differentiator - for critical production issues at 3am, being able to reach a human immediately has value that is hard to price.
Hetzner does not offer phone or live chat support at standard tiers. This is a meaningful gap for organizations with strict support SLA requirements.
Both providers offer DDoS protection included. Hetzner's is handled at their network edge and has successfully mitigated volumetric attacks we have observed in the 200 Gbit/s range on customer infrastructure we manage. Vultr's DDoS protection is optional and costs extra depending on region.