2026-10-30

Press Space or click the green arrow icons to navigate the slides ->
A couple weeks ago at an undisclosed location not too far, far away… Gergely and Attila met and among other topics they discussed how badly their Python app scales… Despite using Kubernetes…



Guess the Number!
How much better is the highest performing 2-vCPU cloud server's single-core performance compared to the lowest?
Your guesses
| SERVER A | SERVER B | |
|---|---|---|
| Vendor | Hyperscaler | Hyperscaler |
| Server SKU | 👻 | 👻 |
| vCPUs | 2 | 2 |
| Architecture | x86_64 | x86_64 |
| Physical cores | 1 | 2 |
| CPU allocation | Shared | Dedicated |
| CPU (turbo) frequency | 2.2 GHz | 5.0 GHz |
| CPU L1D cache | 32 KiB | 96 KiB |
| Memory | 1 GiB | 8 GiB |
| Single-core SCore | 133 | 4,645 |
| Performance ratio | x34.92481 | |


Source: sparecores.com



Before: AWS · EKS · Cluster Autoscaler + fixed node groups
→ capacity, not single-core / latency
Then: Karpenter → EKS Auto mode
→ dynamic EC2 pick under load — easy
But Karpenter AWS filters: family · cpu count · gen · …
plus instance-cpu-sustained-clock-speed-mhz — vendor clock, not a benchmark
→ how do we pick the fastest core for GILty?


Within one clock band: up to about +200% PassMark ST spread
Simple idea: instance-cpu-sustained-clock-speed-mhz >= 5000
| r5a.large | c8a.large | m8azn.large | |
|---|---|---|---|
| catalog GHz | 2.5 | 4.5 | 5.0 |
| PassMark ST | ~1400 | ~3800 | ~4300 |
| on-demand | ~$0.11 | ~$0.11 | ~$0.21 |
| regions | ~16 | ~7 | ~6 |
Pub talk → need benchmark-ranked types in Karpenter (incl. EKS Auto)
Plan (sc-karpenter-nodepool ADRs + sequenced v1 plans):
NodeOverlaySCNodePool → one NodePool — template verbatim + selected instance-type listinstance-type · arch · capacity)
Great for picking types · not for inspector-style multi-cloud JIT
Limitations (vs “pod annotation → any cloud / region / AZ / SKU”):
NodePool (instance-type list)node.kubernetes.io/instance-type) — but only if it’s already in the poolstart.yml)Ideal stack for sc-inspector (replace GH Actions + Pulumi start.yml):
nodeSelector (vendor/type) → pending → cheapest offering → boot → inspect → tear downWould you find something like this* useful?
* any k8s cluster + cloud credential + capacity need =>
ephemeral instances from any region of any cloud
GitHubgithub.com/SpareCores
LinkedInlinkedin.com/company/SpareCores
Emailhi@sparecores.com
