Sari la conținut

inginerie

Construirea unui cache CI care nu se accelerează

Cum servim restaurările cache la 1 GB/s și de ce lățimea de bandă contează mai mult decât capacitatea.

{autor} · {rol} · {data} · {minute} {minuteLabel}

Discuțiile din memoria cache se concentrează pe capacitate — limita de 10 GB, politica de evacuare, rata de accesare. În practică, lățimea de bandă este constrângerea pe care oamenii o simt și rareori o numesc.

De ce domină restabilirea vitezei

O intrare în cache ajută numai dacă restaurarea este mai rapidă decât recrearea acesteia. La o rată de transfer suficient de scăzută, fiecare cache devine o pierdere netă și va raporta o rată de succes perfectă tot timpul.

Ce am construit

  • Cache-ul stocat pe NVMe în aceeași zonă de disponibilitate ca și pool-ul de runner
  • Bucățile adresate de conținut, astfel încât părțile neschimbate să nu fie re-transferate
  • compresie zstd, aleasă mai degrabă pentru viteza de decompresie decât pentru raport
  • Preluare paralelă a fragmentelor care saturează legătura, mai degrabă decât un singur flux

Rezultatul este o restaurare susținută de aproximativ 1 GB/s. Asta schimbă lucrurile care merită memorate în cache - în acest ritm, memorarea în cache a unui director de lanț de instrumente de 6 GB devine în mod evident mai degrabă corectă decât marginală.

Următorul tău build poate fi de două ori mai rapid, la jumătate de preț

Începe gratuit. Plecarea înseamnă aceeași linie, iar acel diff îl publicăm și noi.