2010. godine Jeff Dean iz Googlea održao je prekrasan govor na Stanfordu zbog kojeg je postao prilično poznat. U njemu je razgovarao o nekoliko brojeva koji su relevantni za računalne sustave. Tada je Peter Norvig prvi put objavio te brojeve na internetu.
Vrijeme je prolazilo, a brojevi su se mijenjali. Evo vrlo dobrog interaktivnog web korisničkog sučelja tih brojeva koji otprilike govori koliko su se oni tijekom godina promijenili u ovisnosti o vremenu.
Ovaj članak nije samo kompilacija procijenjenih podataka Jeffa Deana, već okuplja sve takve brojeve iz različitih izvora. To bi vam trebalo pomoći kao dizajneru sustava i arhitektu. Tijekom dizajniranja pomoću ovih brojeva možete procijeniti količinu resursa potrebnih vašem sustavu.
Gruba procjena podataka o kašnjenju za 2019 .:
- Referenca L1 predmemorije: 1 nanosekunda.
- Referenca L2 predmemorije: 4 nanosekunde.
- Zaključavanje / otključavanje mutexa: 17 nanosekundi.
- Referenca glavne memorije / RAM-a: 100 nanosekundi.
- Stisnite 1 KB sa Zippyjem (trenutno se naziva Snappy): 2000 nanosekundi ili 2 mikrosekunde.
- CPU grana pogrešno predvidjela: 3 nanosekunde.
- Slučajno očitavanje SSD-a (SSD): 16 mikrosekundi.
- Traženje diska (tvrdog diska / magnetskog pogona): 3 milisekunde.
- Uzastopno pročitajte 1.000.000 bajtova iz glavne memorije: 4 mikrosekunde.
- Uzastopno pročitajte 1.000.000 bajtova s SSD-a: 62 mikrosekunde.
- Čitajte s diska 1.000.000 bajtova uzastopno: 947 mikrosekundi.
- Zahtjev za povratnu mrežu u istom podatkovnom centru: 500 mikrosekundi.
- Pošaljite 2000 bajtova preko robne mreže: 62 nanosekunde.
Vrijeme potrebno za putovanje korisnog tereta preko TCP-a:
Ovo je vrijeme potrebno za prijenos različitih nosivosti podataka na tipičnim staničnim mrežama širom svijeta, pod pretpostavkom da nema gubitka podataka.
RTT - Povratno vrijeme putovanja - Ukupno vrijeme potrebno da podatkovni paket (hrpa bajtova podataka) putuje od pošiljatelja do primatelja, a primatelj do pošiljatelja preko mreže. Ukratko, zove se Ping vrijeme.
- Prijenos podataka od 1 bajta do 13.000 bajtova (otprilike 13 KB) traje 1 povratno putovanje ili 1 RTT. Grubo vrijeme - SAD: 150 milisekundi, Indija: 1200 milisekundi, Brazil: 600 milisekundi.
- 13.001 bajta - 39.000 bajtova (13 KB do 39 KB) traje 2 RTT. Grubo vrijeme - SAD: 300 milisekundi, Indija: 2400 milisekundi, Brazil: 1200 milisekundi.
- 39.001 bajta - 91.000 bajtova (39 KB do 91KB) traje 3 RTT. Grubo vrijeme - SAD: 450 milisekundi, Indija: 3600 milisekundi, Brazil: 1800 milisekundi.
- 91.001 bajt - 195.000 bajtova (91 KB do 195 KB) traje 4 RTT. Grubo vrijeme - SAD: 600 milisekundi, Indija: 4800 milisekundi, Brazil: 2400 milisekundi.
Dakle, veća veličina odgovora znači više bajtova, dulje povratno putovanje, više kašnjenja API-ja i na kraju manje korisnu aplikaciju.
Ovaj će se post ažurirati kad se pronađu novi ili ažurirani brojevi. Obavijestite me ako znate nove brojeve.
Ovaj je članak izvorno objavljen na Autorskom medijskom zidu. Ako vam se sviđa, molim vas pljeskajte.
Referenca:
- //colin-scott.github.io/blog/2012/12/24/latency-trends/
- //blog.std.in/2015/05/23/http-response-sizes-and-tcp/
- //medium.com/@kousiknath/must-know-numbers-for-every-computer-engineer-6338a12c292c