Αυτοί είναι οι αριθμοί που κάθε μηχανικός υπολογιστών πρέπει να γνωρίζει

Το 2010, ο Jeff Dean από την Google έδωσε μια υπέροχη ομιλία στο Στάνφορντ που τον έκανε αρκετά διάσημο. Σε αυτό, συζήτησε μερικούς αριθμούς που σχετίζονται με τα υπολογιστικά συστήματα. Στη συνέχεια, ο Peter Norvig δημοσίευσε αυτούς τους αριθμούς για πρώτη φορά στο Διαδίκτυο.

Ο χρόνος πέρασε και οι αριθμοί άλλαξαν. Εδώ είναι μια πολύ καλή διαδραστική διεπαφή χρήστη ιστού με αυτούς τους αριθμούς που υπολογίζει περίπου πόσο έχουν αλλάξει με τα χρόνια ως συνάρτηση του χρόνου.

Αυτό το άρθρο δεν είναι μόνο μια συλλογή των εκτιμώμενων δεδομένων του Jeff Dean, αλλά συγκεντρώνει όλους αυτούς τους αριθμούς από διαφορετικές πηγές. Αυτό θα σας βοηθήσει ως σχεδιαστής και αρχιτέκτονας συστήματος. Κατά το σχεδιασμό, μπορείτε να χρησιμοποιήσετε αυτούς τους αριθμούς για να εκτιμήσετε τον πόρο που χρειάζεται το σύστημά σας.

Τραχιά εκτίμηση των δεδομένων καθυστέρησης για το 2019:

  1. Αναφορά προσωρινής μνήμης L1: 1 νανοδευτερόλεπτο.
  2. Αναφορά προσωρινής μνήμης L2: 4 νανοδευτερόλεπτα.
  3. Κλείδωμα / ξεκλείδωμα Mutex: 17 νανοδευτερόλεπτα.
  4. Κύρια αναφορά μνήμης / RAM: 100 νανοδευτερόλεπτα.
  5. Συμπίεση 1 KB με Zippy (ονομάζεται Snappy): 2000 nanoseconds ή 2 microseconds.
  6. Εσφαλμένος υπολογιστής κλάδου CPU: 3 νανοδευτερόλεπτα.
  7. Τυχαία ανάγνωση μονάδας στερεάς κατάστασης (SSD): 16 μικροδευτερόλεπτα.
  8. Αναζήτηση δίσκου (σκληρός δίσκος / μαγνητική μονάδα): 3 χιλιοστά του δευτερολέπτου.
  9. Διαβάστε 1.000.000 byte διαδοχικά από την κύρια μνήμη: 4 μικροδευτερόλεπτα.
  10. Διαβάστε 1.000.000 byte διαδοχικά από SSD: 62 μικροδευτερόλεπτα.
  11. Διαβάστε 1.000.000 byte διαδοχικά από δίσκο: 947 μικροδευτερόλεπτα.
  12. Αίτημα δικτύου μετ 'επιστροφής στο ίδιο κέντρο δεδομένων: 500 μικροδευτερόλεπτα.
  13. Στείλτε 2000 bytes μέσω δικτύου εμπορευμάτων: 62 nanoseconds.

Χρόνος που απαιτείται για το ωφέλιμο φορτίο για να ταξιδέψετε μέσω TCP:

Εδώ είναι ο χρόνος που απαιτείται για τη μετάδοση διαφόρων ωφέλιμων δεδομένων σε τυπικά δίκτυα κυψελών σε όλο τον κόσμο, με την προϋπόθεση ότι δεν θα υπάρξει απώλεια δεδομένων.

RTT - Χρόνος ταξιδιού μετ 'επιστροφής - Συνολικός χρόνος που απαιτείται για τη μεταφορά ενός πακέτου δεδομένων (δέσμη byte δεδομένων) από τον αποστολέα στον παραλήπτη και τον παραλήπτη στον αποστολέα μέσω του δικτύου. Εν ολίγοις, ονομάζεται Ping time.

  1. Η μεταφορά δεδομένων 1 byte σε 13.000 bytes (περίπου 13 KB) διαρκεί 1 μετ 'επιστροφής ή 1 RTT. Απαιτείται σκληρός χρόνος - ΗΠΑ: 150 χιλιοστά του δευτερολέπτου, Ινδία: 1200 χιλιοστά του δευτερολέπτου, Βραζιλία: 600 χιλιοστά του δευτερολέπτου.
  2. 13,001 bytes - 39,000 bytes (13 KB έως 39 KB) παίρνει 2 RTT. Απαιτείται σκληρός χρόνος - ΗΠΑ: 300 χιλιοστά του δευτερολέπτου, Ινδία: 2400 χιλιοστά του δευτερολέπτου, Βραζιλία: 1200 χιλιοστά του δευτερολέπτου.
  3. 39,001 bytes - 91,000 bytes (39 KB έως 91 KB) παίρνει 3 RTT. Απαραίτητος χρόνος-ΗΠΑ: 450 χιλιοστά του δευτερολέπτου, Ινδία: 3600 χιλιοστά του δευτερολέπτου, Βραζιλία: 1800 χιλιοστά του δευτερολέπτου.
  4. 91,001 bytes - 195,000 bytes (91 KB έως 195 KB) παίρνει 4 RTT. Απαιτείται σκληρός χρόνος - ΗΠΑ: 600 χιλιοστά του δευτερολέπτου, Ινδία: 4800 χιλιοστά του δευτερολέπτου, Βραζιλία: 2400 χιλιοστά του δευτερολέπτου.

Έτσι, όσο μεγαλύτερο είναι το μέγεθος απόκρισης σημαίνει περισσότερα bytes, μεγαλύτερο δρομολόγιο μετ 'επιστροφής, περισσότερος λανθάνων χρόνος API και τελικά μια λιγότερο φιλική προς τον χρήστη εφαρμογή.

Αυτή η ανάρτηση θα ενημερωθεί όταν βρεθούν νέοι ή ενημερωμένοι αριθμοί. Ενημερώστε μας εάν γνωρίζετε νέους αριθμούς.

Αυτό το άρθρο δημοσιεύθηκε αρχικά στον τοίχο του συγγραφέα. Αν σας αρέσει, παρακαλώ δώστε χειροκροτήματα.

Αναφορά:

  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