self-host →

RunsOn m8id.xlarge · local NVMe vs Blacksmith 4 vCPU x64

RunsOn does the three builds for 1.2× less in total (less on the Rust and TypeScript builds and about the same on the Docker build); on time, Blacksmith is faster on the Docker build and tied on the Rust and TypeScript builds. Both 4 vCPU x64.

All three builds 1.2× cheaper on RunsOn: $0.0593 vs $0.0728Blacksmith 1.7× faster: 8m 12s vs 13m 35s
Rust build 2.5× cheaper on RunsOn: $0.0071 vs $0.0175about the same time: 2m 57s · 1m 59s
TypeScript build 2.4× cheaper on RunsOn: $0.0037 vs $0.0089about the same time: 1m 20s · 54s
Docker build ≈ same cost RunsOn $0.0485 · Blacksmith $0.0464Blacksmith 1.7× faster: 5m 19s vs 9m 18s

Side by side

Every measurement both runners share, cost first. The dot marks the better value; gap is the larger over the smaller.

Measurement RunsOn Blacksmith Gap
Cost
Cost per Rust build $0.0071 $0.0175 2.5× RunsOn
Cost per TypeScript build $0.0037 $0.0089 2.4× RunsOn
Cost per Docker build $0.0485 $0.0464 ≈ even
Price per minute $0.0017 $0.0080 4.7× RunsOn
Real builds, wall time
Rust build (spotify-⁠player) 2m 57s 1m 59s ≈ even
TypeScript build (opencode) 1m 20s 54s ≈ even
Docker build (PostHog) 9m 18s 5m 19s 1.7× Blacksmith
CPU & memory
PassMark single-⁠thread (points) 3,269 4,236 1.3× Blacksmith
PassMark CPU Mark, all cores (points) 8,058 15,036 1.9× Blacksmith
sysbench CPU, 1 thread (events/s) 3,298 6,419 1.9× Blacksmith
7-⁠Zip compression (MIPS) 19,421 27,863 1.4× Blacksmith
Memory read bandwidth 20.0 GiB/s 31.5 GiB/s 1.6× Blacksmith
Measurement RunsOn Blacksmith Gap
Workspace disk (fio)
Random read, 4k QD32 (IOPS) 67,089 873,112 13.0× Blacksmith
Random write, 4k QD32 (IOPS) 33,526 251,762 7.5× Blacksmith
Random read, 4k QD1 (IOPS) 11,056 84,854 7.7× Blacksmith
QD1 read latency, p99 210 µs 14 µs 14.7× Blacksmith
Sequential read 451 MiB/s 6.9 GiB/s 15.7× Blacksmith
Sequential write 216 MiB/s 1.6 GiB/s 7.7× Blacksmith
Sync write, 4k + fdatasync (IOPS) 7,841 18,024 2.3× Blacksmith
Network, cache & Docker
Download from GitHub 195 MiB/s 107 MiB/s 1.8× RunsOn
Cache restore, 4 GB (actions/cache) 32s 14s 2.3× Blacksmith
Cache save, 4 GB (actions/cache) 25s 8s 3.1× Blacksmith
docker pull 7.5s 6.5s 1.2× Blacksmith
Database
pgbench read/write (TPS) 7,180 11,775 1.6× Blacksmith
pgbench read-⁠only (TPS) 62,052 89,914 1.4× Blacksmith
Queue
Queue under burst load 21s 11s 1.9× Blacksmith
  • ≈ even: under 5% apart, or a build inside both runners' run-to-run spread
  • Queue: identical jobs queued at the same instant (burst suite)
  • RunsOn at EC2 spot, its default (7-day average of the cheapest us-east-1 zone's spot price, fetched 5 Oct 2026); the jobs ran on spot
  • Cost: a managed SaaS runner against RunsOn self-hosted on your AWS account; the effort of running it was not measured

Other head-to-heads