self-host →

RunsOn m9g.xlarge · tmpfs vs Blacksmith 4 vCPU arm64

RunsOn does the Rust and TypeScript builds for 2.7–2.9× less and 2.5–3.1× faster. Both 4 vCPU arm64.

Price per minute 2.9× cheaper on RunsOn: $0.0018 vs $0.0050the builds are not all compared on cost yet
Rust build 2.9× cheaper on RunsOn: $0.0091 vs $0.0267RunsOn 2.5× faster: 2m 04s vs 5m 04s
TypeScript build 2.7× cheaper on RunsOn: $0.0049 vs $0.0132RunsOn 3.1× faster: 46s vs 2m 21s
Docker build 12m 12s Blacksmith only · RunsOn not run

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.0091 $0.0267 2.9× RunsOn
Cost per TypeScript build $0.0049 $0.0132 2.7× RunsOn
Cost per Docker build n/a: Not run: needs more than 32 GB of RAM with tmpfs, where Docker's data root lives in RAM; PostHog's layers plus the build's own memory exceeded it and the runner was shut down mid-build. The 64 GB tmpfs runner builds it. $0.0654 —
Price per minute $0.0018 $0.0050 2.9× RunsOn
Real builds, wall time
Rust build (spotify-⁠player) 2m 04s 5m 04s 2.5× RunsOn
TypeScript build (opencode) 46s 2m 21s 3.1× RunsOn
Docker build (PostHog) n/a: Not run: needs more than 32 GB of RAM with tmpfs, where Docker's data root lives in RAM; PostHog's layers plus the build's own memory exceeded it and the runner was shut down mid-build. The 64 GB tmpfs runner builds it. 12m 12s —
CPU & memory
PassMark single-⁠thread (points) 2,464 1,343 1.8× RunsOn
PassMark CPU Mark, all cores (points) 5,606 3,778 1.5× RunsOn
sysbench CPU, 1 thread (events/s) 4,019 930 4.3× RunsOn
7-⁠Zip compression (MIPS) 34,272 15,351 2.2× RunsOn
Memory read bandwidth 27.9 GiB/s 9.0 GiB/s 3.1× RunsOn
Measurement RunsOn Blacksmith Gap
Workspace disk (fio)
Random read, 4k QD32 (IOPS) 2,690,916 155,975 17.3× RunsOn
Random write, 4k QD32 (IOPS) 2,487,599 24,132 103.1× RunsOn
Random read, 4k QD1 (IOPS) 674,926 24,897 27.1× RunsOn
QD1 read latency, p99 <1 µs 39 µs 130.7× RunsOn
Sequential read 15.1 GiB/s 1.7 GiB/s 8.7× RunsOn
Sequential write 4.6 GiB/s 742 MiB/s 6.4× RunsOn
Sync write, 4k + fdatasync (IOPS) 634,741 7,118 89.2× RunsOn
Network, cache & Docker
Download from GitHub 254 MiB/s 85 MiB/s 3.0× RunsOn
Cache restore, 4 GB (actions/cache) 8s 36s 4.5× RunsOn
Cache save, 4 GB (actions/cache) 7s 21s 3.0× RunsOn
docker pull 5.3s 13.7s 2.6× RunsOn
Database
pgbench read/write (TPS) 9,905 1,893 5.2× RunsOn
pgbench read-⁠only (TPS) 64,651 14,786 4.4× RunsOn
Queue
Queue under burst load 17s 15s 1.1× 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)
  • 2 missing on one side or both
  • 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