Server Comparison

Compare cloud servers and their characteristics, such as CPU, GPU, memory, and storage details, and the performance of the instances by various benchmarking workloads to find the optimal compute resource for your needs.
To get started, select at least two servers using the checkboxes in the left column of our servers listing page, and optionally add/remove servers on their dedicated server details pages as well via the "Compare" button, or find below a curated list of server comparison sets.

Best multi-core performance servers

Manually curated lists of servers with the best multi-core performance as per stress-ng's div16 CPU burning method. This benchmark is a good indicator of how well a server can handle CPU-bound workloads that can perfectly scale to all available processor cores.

Servers using the same CPU model at the same vendor were deduplicated, and only the most general options were kept with similar memory amounts (e.g. from AWS's r6a.large, m6a.large, and c6a.large showing only m6a.large with 8 GiB of memory; similarly GCP's c2d-highmem-2, c2d-standard-2, and c2d-highcpu-2 showing only c2d-standard-2 with 8 GiB of memory).

SQL query used to select instances
WITH minprice AS (
  SELECT vendor_id, server_id, MIN(price) AS price
  FROM server_price
  WHERE allocation = 'ONDEMAND'
  GROUP BY 1, 2
),
benchmarks AS (
  SELECT vendor_id, server_id, MAX(score) AS score
  FROM benchmark_score
  WHERE benchmark_id = 'stress_ng:bestn' AND status = 'ACTIVE'
  GROUP BY 1, 2
)
SELECT
  s.vendor_id, s.family, s.api_reference,
  s.cpu_architecture, s.cpu_manufacturer, s.cpu_family, s.cpu_model, s.cpu_speed,
  s.memory_amount / 1024,
  b.score,
  p.price
FROM server AS s
LEFT JOIN benchmarks AS b
  ON s.vendor_id = b.vendor_id and s.server_id = b.server_id
LEFT JOIN minprice AS p
  ON s.vendor_id = p.vendor_id and s.server_id = p.server_id
WHERE 
  s.status = 'ACTIVE' 
  -- AND s.vcpus = 2
  -- AND s.cpu_cores = 2
ORDER BY b.score DESC
LIMIT 25;

Best single-core performance servers

Manually curated lists of servers with the best single-core performance as per stress-ng's div16 CPU burning method.

Servers using the same CPU model at the same vendor were deduplicated, and only the cheaper options were kept, usually with lower number of physical cores (e.g. from AWS's m7a.medium and c7a.large showing only m7a.medium with a single core; or from c6i.large, c6in.large, and c6id.large only the first).

SQL query used to select instances
WITH minprice AS (
  SELECT vendor_id, server_id, MIN(price) AS price
  FROM server_price
  WHERE allocation = 'ONDEMAND'
  GROUP BY 1, 2
),
benchmarks AS (
  SELECT vendor_id, server_id, MAX(score) AS score
  FROM benchmark_score
  WHERE benchmark_id = 'stress_ng:best1' AND status = 'ACTIVE'
  GROUP BY 1, 2
)
SELECT
  s.vendor_id, s.family, s.api_reference,
  s.cpu_architecture, s.cpu_manufacturer, s.cpu_family, s.cpu_model, 
  s.vcpus, s.cpu_cores, s.cpu_speed,
  b.score,
  p.price
FROM server AS s
LEFT JOIN benchmarks AS b
  ON s.vendor_id = b.vendor_id and s.server_id = b.server_id
LEFT JOIN minprice AS p
  ON s.vendor_id = p.vendor_id and s.server_id = p.server_id
WHERE 
  s.status = 'ACTIVE' 
  -- AND s.memory_amount / 1024 = 4
ORDER BY b.score DESC
LIMIT 25;

Best performance servers for static web serving

Manually curated list of servers with the highest performance for serving static websites as per our extrapolated RPS based on the binserve + wrk benchmarks.
SQL query used to select instances
WITH minprice AS (
  SELECT vendor_id, server_id, MIN(price) AS price
  FROM server_price
  WHERE allocation = 'ONDEMAND'
  GROUP BY 1, 2
),
benchmarks AS (
  SELECT vendor_id, server_id, MAX(score) AS score
  FROM benchmark_score
  WHERE benchmark_id = 'static_web:rps-extrapolated' AND status = 'ACTIVE'
  GROUP BY 1, 2
)
SELECT
  s.vendor_id, s.family, s.api_reference,
  s.cpu_architecture, s.cpu_manufacturer, s.cpu_family, s.cpu_model, s.cpu_speed, s.vcpus,
  s.memory_amount / 1024 AS memory,
  b.score,
  p.price
FROM server AS s
LEFT JOIN benchmarks AS b
  ON s.vendor_id = b.vendor_id and s.server_id = b.server_id
LEFT JOIN minprice AS p
  ON s.vendor_id = p.vendor_id and s.server_id = p.server_id
WHERE 
  s.status = 'ACTIVE' 
  -- AND p.price < 0.1
ORDER BY b.score DESC
LIMIT 25;

Best performance servers for Redis

Manually curated list of servers with the highest performance for Redis as per our extrapolated RPS based on memetier_benchmark.
SQL query used to select instances
WITH minprice AS (
  SELECT vendor_id, server_id, MIN(price) AS price
  FROM server_price
  WHERE allocation = 'ONDEMAND'
  GROUP BY 1, 2
),
benchmarks AS (
  SELECT vendor_id, server_id, MAX(score) AS score
  FROM benchmark_score
  WHERE benchmark_id = 'redis:rps-extrapolated' AND status = 'ACTIVE'
  GROUP BY 1, 2
)
SELECT
  s.vendor_id, s.family, s.api_reference,
  s.cpu_architecture, s.cpu_manufacturer, s.cpu_family, s.cpu_model, s.cpu_speed, s.vcpus,
  s.memory_amount / 1024 AS memory,
  b.score,
  p.price
FROM server AS s
LEFT JOIN benchmarks AS b
  ON s.vendor_id = b.vendor_id and s.server_id = b.server_id
LEFT JOIN minprice AS p
  ON s.vendor_id = p.vendor_id and s.server_id = p.server_id
WHERE 
  s.status = 'ACTIVE' 
  -- AND p.price < 0.1
ORDER BY b.score DESC
LIMIT 25;

Hetzner Cloud offerings

List of all Hetzner Cloud server types with 2, 4, 8, and 16 vCPUs for easy comparison.

Further interesting lists of servers

Curated lists of servers from various vendors that we used to publish blog posts or in social media.

C5/C6/C7 Large Instances at AWS

3 generations with mixed x86 and ARM architecture of the large size instances from the C series at AWS.

You made it to the bottom of the page and still missing the list of servers you hoped to see?

Compile your own comparison as per above on our servers listing page, then open a GitHub ticket with the crafted URL and some details on why you find it useful, and we will be happy to review your request and add to our repository! Alternatively, open a pull request editing the special-compares.js file directly.