Dette er de numre, som enhver computeringeniør skal kende

I 2010 holdt Jeff Dean fra Google en vidunderlig tale i Stanford, der gjorde ham ret berømt. I det diskuterede han et par tal, der er relevante for computersystemer. Så offentliggjorde Peter Norvig disse numre for første gang på Internettet.

Tiden gik, og tallene ændrede sig. Her er et meget godt interaktivt web-UI af disse tal, der groft fortæller, hvor meget de har ændret sig gennem årene som en funktion af tiden.

Denne artikel er ikke kun en samling af Jeff Deans estimerede data, men snarere samler den alle sådanne numre fra forskellige kilder. Dette skal hjælpe dig som systemdesigner og arkitekt. Mens du designer, kan du bruge disse tal til at estimere mængden af ​​ressourcer, dit system har brug for.

Groft skøn over latensdata for 2019:

  1. L1 cache-reference: 1 nanosekund.
  2. L2-cache-reference: 4 nanosekunder.
  3. Mutex-lås / oplåsning: 17 nanosekunder.
  4. Hovedhukommelse / RAM-reference: 100 nanosekunder.
  5. Komprimer 1 KB med Zippy (i øjeblikket kaldet Snappy): 2000 nanosekunder eller 2 mikrosekunder.
  6. Forudsigelse af CPU-gren: 3 nanosekunder.
  7. Solid State Drive (SSD) tilfældig læsning: 16 mikrosekunder.
  8. Disk (harddisk / magnetisk drev) søger: 3 millisekunder.
  9. Læs 1.000.000 byte sekventielt fra hovedhukommelsen: 4 mikrosekunder.
  10. Læs 1.000.000 byte sekventielt fra SSD: 62 mikrosekunder.
  11. Læs 1.000.000 byte sekventielt fra disk: 947 mikrosekunder.
  12. Rundtur netværksanmodning i samme datacenter: 500 mikrosekunder.
  13. Send 2000 byte over varenetværk: 62 nanosekunder.

Tid, det tager for nyttelast at rejse over TCP:

Her er den tid, der kræves til at transmittere forskellige datanyttelast på typiske cellenetværk rundt om i verden, forudsat at intet datatab antages.

RTT - rundturstid - Samlet tid, det tager for en datapakke (flok databytes) at rejse fra afsender til modtager og modtager til afsender over netværket. Kort sagt kaldes det Ping-tid.

  1. Overførsel af 1 byte til 13.000 bytes (ca. 13 KB) data tager 1 rundtur eller 1 RTT. Rough tid taget - USA: 150 millisekunder, Indien: 1200 millisekunder, Brasilien: 600 millisekunder.
  2. 13.001 bytes - 39.000 bytes (13 KB til 39 KB) tager 2 RTT. Rough tid taget - USA: 300 millisekunder, Indien: 2400 millisekunder, Brasilien: 1200 millisekunder.
  3. 39.001 bytes - 91.000 bytes (39 KB til 91KB) tager 3 RTT. Grov tid taget - USA: 450 millisekunder, Indien: 3600 millisekunder, Brasilien: 1800 millisekunder.
  4. 91.001 bytes - 195.000 bytes (91 KB til 195 KB) tager 4 RTT. Rough tid taget - USA: 600 millisekunder, Indien: 4800 millisekunder, Brasilien: 2400 millisekunder.

Så jo større svarstørrelse betyder flere byte, en længere returflyvning, mere API-latenstid og i sidste ende en mindre brugervenlig app.

Dette indlæg opdateres, når der findes nye eller opdaterede numre. Giv mig besked, hvis du er opmærksom på nye numre.

Denne artikel blev oprindeligt offentliggjort på forfatterens mellemvæg. Hvis du kan lide det, bedes du give klapper.

Reference:

  1. //colin-scott.github.io/blog/2012/12/24/latency-trends/
  2. //blog.std.in/2015/05/23/http-response-sizes-and-tcp/
  3. //medium.com/@kousiknath/must-know-numbers-for-every-computer-engineer-6338a12c292c