मुख्य कंटेंट तक स्किप करें

Cutting GPU Cold Starts on EKS, with Numbers

· 2 मिनट में पढ़ें
Tanmay Mohan
Cloud Physicist

Scale-to-zero is cheap until the first request waits on an image pull. I benchmarked NVMe instance storage, Bottlerocket, SOCI, AL2023 FastImagePull, and EBS throughput on a fresh node every time.

Setup: g4dn.xlarge, a 3.6 GB image, one run per configuration. Treat the numbers as indicative, not a paper.

TestConfigurationPull timevs baseline
t0AL2023, gp3, 3 parallel downloads94.3 s—
t1plus NVMe instance store91.0 s−4%
t2plus 10 parallel downloads82.6 s−12%
t3aBottlerocket, EBS, 10 parallel downloads76.7 s−19%
t3bBottlerocket plus NVMe77.4 s−18%
t4Bottlerocket plus SOCI lazy loading92.8 s−2%
t4bBottlerocket plus SOCI parallel-pull60.8 s−36%
t5AL2023 FastImagePull, EBS at 600 MiB/s43.0 s−54%
t5bBottlerocket, SOCI parallel-pull, NVMe48.5 s−49%

What actually moved​

Lazy loading barely helps ML images. The process needs the model layers immediately, so "start while the rest pulls" does not hide the bytes. Parallel pulling and disk throughput do.

NVMe on its own was a 4% change. Bottlerocket without a pull-mode change was about 19%. The two configs under 50 seconds both pushed more bytes at once: SOCI in parallel-pull mode, or FastImagePull on a faster gp3 volume.

Two caveats before you copy t5​

Test t5 ran on a 4-vCPU instance. FastImagePull is reportedly ignored below 8 vCPUs. The EBS jump from 125 to 600 MiB/s may deserve the credit. Re-test on a larger instance before you publish a claim about FastImagePull itself.

SOCI indexes have to be re-pushed for every image and version-matched to the node. Otherwise they are silently ignored, and you are back on a normal pull with extra CI work.

For a roughly 19-node general apps pool, 300 MiB/s of EBS throughput was the cost-efficient point. GPU root volumes in the inference NodePool are a different story: 150 GiB gp3 at 4,000 IOPS and 600 MiB/s, because the image is tens of gigabytes, not 3.6.

A full inference cold start is still minutes once you add the driver and the model load. This table is only the pull. The platform around it is in Scale-to-zero GPU inference on EKS.