Šie skaitļi būtu jāzina katram datoru inženierim

2010. gadā Džefs Dīns no Google Stenfordā uzstājās ar brīnišķīgu sarunu, kas viņu padarīja diezgan slavenu. Tajā viņš apsprieda dažus skaitļus, kas attiecas uz skaitļošanas sistēmām. Tad Pīters Norvigs šos numurus pirmo reizi publicēja internetā.

Pagāja laiks, un skaitļi mainījās. Šeit ir ļoti labs interaktīvais tīmekļa lietotāja interfeiss no šiem skaitļiem, kas aptuveni norāda, cik daudz tie gadu gaitā ir mainījušies kā laika funkcija.

Šis raksts ir ne tikai Džefa Dīna aplēsto datu apkopojums, bet gan apkopo visus šādus skaitļus no dažādiem avotiem. Tam vajadzētu palīdzēt jums kā sistēmas projektētājam un arhitektam. Projektēšanas laikā jūs varat izmantot šos skaitļus, lai aprēķinātu jūsu sistēmai nepieciešamo resursu daudzumu.

Aptuvens latentuma datu novērtējums par 2019. gadu:

  1. L1 kešatmiņas atsauce: 1 nanosekunde.
  2. L2 kešatmiņas atsauce: 4 nanosekundes.
  3. Mutex Lock / Unlock: 17 nanosekundes.
  4. Galvenās atmiņas / RAM atsauce: 100 nanosekundes.
  5. Saspiest 1 KB ar Zippy (pašlaik to sauc par Snappy): 2000 nanosekundes vai 2 mikrosekundes.
  6. Nepareiza CPU filiāles prognoze: 3 nanosekundes.
  7. Cietvielu diska (SSD) nejauša nolasīšana: 16 mikrosekundes.
  8. Diska (cietā diska / magnētiskā diska) meklēšana: 3 milisekundes.
  9. No galvenās atmiņas secīgi nolasiet 1 000 000 baitus: 4 mikrosekundes.
  10. No SSD secīgi nolasiet 1 000 000 baitus: 62 mikrosekundes.
  11. No diska secīgi nolasiet 1 000 000 baitus: 947 mikrosekundes.
  12. Tīkla pieprasījums turp un atpakaļ tajā pašā datu centrā: 500 mikrosekundes.
  13. Nosūtiet 2000 baitus preču tīklā: 62 nanosekundes.

Laiks, kas vajadzīgs, lai derīgā krava pārvietotos pa TCP:

Šeit ir norādīts laiks, kas nepieciešams dažādu datu lietderīgās slodzes pārsūtīšanai tipiskos šūnu tīklos visā pasaulē, pieņemot, ka dati netiek zaudēti.

RTT - turp un atpakaļ laiks - kopējais laiks, kas nepieciešams, lai datu pakete (datu baitu kopa) pārvietotos no sūtītāja uz uztvērēju un uztvērēju uz sūtītāju tīklā. Īsāk sakot, to sauc par Ping laiku.

  1. 1 baita datu pārsūtīšana uz 13 000 baitu (aptuveni 13 KB) datiem aizņem 1 turpgājienu vai 1 RTT. Nepieciešamais aptuvenais laiks - ASV: 150 milisekundes, Indija: 1200 milisekundes, Brazīlija: 600 milisekundes.
  2. 13 001 baits - 39 000 baiti (no 13 KB līdz 39 KB) aizņem 2 RTT. Nepieciešamais aptuvenais laiks - ASV: 300 milisekundes, Indija: 2400 milisekundes, Brazīlija: 1200 milisekundes.
  3. 39 001 baits - 91 000 baiti (no 39 KB līdz 91 KB) aizņem 3 RTT. Nepieciešamais aptuvenais laiks - ASV: 450 milisekundes, Indija: 3600 milisekundes, Brazīlija: 1800 milisekundes.
  4. 91 001 baits - 195 000 baiti (no 91 KB līdz 195 KB) aizņem 4 RTT. Nepieciešamais aptuvenais laiks - ASV: 600 milisekundes, Indija: 4800 milisekundes, Brazīlija: 2400 milisekundes.

Tātad lielāks atbildes lielums nozīmē vairāk baitu, ilgāku turp un atpakaļ, lielāku API latentumu un galu galā mazāk lietotājam draudzīgu lietotni.

Šis ieraksts tiks atjaunināts, kad tiks atrasti jauni vai atjaunoti numuri. Lūdzu, dariet man zināmu, ja jums ir zināmi jauni numuri.

Šis raksts sākotnēji ir publicēts autora vidējā sienā. Ja jums tas patīk, lūdzu, sniedziet klapus.

Atsauce:

  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