Server Comparison
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
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
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
Further interesting lists of servers
C5/C6/C7 Large Instances 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.