Đây là những con số mà mọi kỹ sư máy tính nên biết

Năm 2010, Jeff Dean từ Google đã có một buổi nói chuyện tuyệt vời tại Stanford khiến anh ấy trở nên khá nổi tiếng. Trong đó, ông đã thảo luận về một vài con số có liên quan đến hệ thống máy tính. Sau đó, Peter Norvig đã công bố những con số đó lần đầu tiên trên internet.

Thời gian trôi qua, và những con số đã thay đổi. Dưới đây là một giao diện người dùng web tương tác rất tốt với những con số đó cho biết đại khái chúng đã thay đổi bao nhiêu trong những năm qua theo thời gian.

Bài báo này không chỉ là tổng hợp dữ liệu ước tính của Jeff Dean, mà còn tập hợp tất cả những con số như vậy từ các nguồn khác nhau. Điều này sẽ giúp bạn với tư cách là một nhà thiết kế và kiến ​​trúc hệ thống. Trong khi thiết kế, bạn có thể sử dụng những con số này để ước tính lượng tài nguyên mà hệ thống của bạn cần.

Ước tính sơ bộ về dữ liệu độ trễ cho năm 2019:

  1. Tham chiếu bộ nhớ cache L1: 1 nano giây.
  2. Tham chiếu bộ nhớ cache L2: 4 nano giây.
  3. Khóa / Mở khóa Mutex: 17 nano giây.
  4. Tham chiếu bộ nhớ chính / RAM: 100 nano giây.
  5. Nén 1 KB bằng Zippy (hiện được gọi là Snappy): 2000 nano giây hoặc 2 micro giây.
  6. Nhánh CPU dự đoán sai: 3 nano giây.
  7. Đọc ngẫu nhiên Ổ đĩa thể rắn (SSD): 16 micro giây.
  8. Đĩa (Ổ cứng / ổ từ) tìm kiếm: 3 mili giây.
  9. Đọc tuần tự 1.000.000 byte từ bộ nhớ chính: 4 micro giây.
  10. Đọc tuần tự 1.000.000 byte từ SSD: 62 micro giây.
  11. Đọc tuần tự 1.000.000 byte từ đĩa: 947 micro giây.
  12. Yêu cầu mạng khứ hồi trong cùng một trung tâm dữ liệu: 500 micro giây.
  13. Gửi 2000 byte qua mạng hàng hóa: 62 nano giây.

Thời gian cần thiết để tải trọng di chuyển qua TCP:

Đây là khoảng thời gian cần thiết để truyền tải các trọng tải dữ liệu khác nhau trên các mạng di động điển hình trên khắp thế giới với giả định không mất dữ liệu.

RTT - Thời gian khứ hồi - Tổng thời gian cần thiết để một gói dữ liệu (nhiều byte dữ liệu) di chuyển từ người gửi đến người nhận và người nhận đến người gửi qua mạng. Tóm lại, nó được gọi là thời gian Ping.

  1. Việc chuyển dữ liệu từ 1 byte đến 13.000 byte (khoảng 13 KB) mất 1 chuyến khứ hồi hoặc 1 RTT. Thời gian thực hiện gần như - Mỹ: 150 mili giây, Ấn Độ: 1200 mili giây, Brazil: 600 mili giây.
  2. 13,001 byte - 39,000 byte (13 KB đến 39 KB) mất 2 RTT. Thời gian thực hiện gần như - Hoa Kỳ: 300 mili giây, Ấn Độ: 2400 mili giây, Brazil: 1200 mili giây.
  3. 39.001 byte - 91.000 byte (39 KB đến 91KB) mất 3 RTT. Thời gian thực hiện thô sơ-Hoa Kỳ: 450 mili giây, Ấn Độ: 3600 mili giây, Brazil: 1800 mili giây.
  4. 91.001 byte - 195.000 byte (91 KB đến 195 KB) mất 4 RTT. Thời gian thực hiện gần như - Hoa Kỳ: 600 mili giây, Ấn Độ: 4800 mili giây, Brazil: 2400 mili giây.

Vì vậy, kích thước phản hồi càng lớn có nghĩa là càng nhiều byte, thời gian vòng quay dài hơn, độ trễ API nhiều hơn và cuối cùng là ứng dụng ít thân thiện với người dùng hơn.

Bài đăng này sẽ được cập nhật khi tìm thấy số mới hoặc cập nhật. Vui lòng cho tôi biết nếu bạn biết về các số mới.

Bài báo này ban đầu được đăng trên bức tường vừa của Tác giả. Nếu bạn thích nó, xin vui lòng cho một vỗ tay.

Tài liệu tham khảo:

  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