Latency là gì? Giải thích độ trễ mạng cho API

Độ trễ là gì? Giải thích độ trễ mạng cho các API

Trình duyệt Thu thập Dữ liệu Không Rác cung cấp các phiên duyệt web trên đám mây được quản lý để thu thập dữ liệu từ các trang web công khai hiển thị bằng JavaScript.

TL;DR

  • Độ trễ đo thời gian trễ. Nó mô tả thời gian dữ liệu hoặc công việc mất để di chuyển từ một sự kiện bắt đầu đến một kết quả quan sát được.
  • Thời gian đi vòng là phổ biến nhưng không phải là phổ quát. Độ trễ một chiều, thời gian đến byte đầu tiên, độ trễ đầu vào, và thời gian công việc từ đầu đến cuối trả lời những câu hỏi khác nhau.
  • Băng thông và độ trễ là những chiều độc lập. Một con đường có dung lượng cao vẫn có thể có độ trễ lan truyền hoặc xử lý dài.
  • Một yêu cầu tích lũy độ trễ qua các lớp. DNS, thiết lập kết nối, đàm phán bảo mật, truyền tải mạng, hàng đợi máy chủ, tính toán, chuyển giao và kết xuất đều có sự đóng góp.
  • Tối ưu hóa tốt bắt đầu với một phân tích. Đo lường các giai đoạn đã đặt tên trước khi chọn bộ nhớ đệm, tái sử dụng kết nối, vị trí khu vực hoặc giảm tải.

Độ trễ là thời gian chờ đợi

Độ trễ là khoảng thời gian giữa một sự kiện khởi tạo và kết quả tương ứng. Trong mạng, thuật ngữ này có thể đề cập đến thời gian để một gói dữ liệu di chuyển theo một hướng hoặc thời gian đi-về cho một tin nhắn và xác nhận của nó. Trong một API, người dùng thường quan tâm đến thời gian phản hồi từ đầu đến cuối. Trong một trình duyệt, độ trễ được cảm nhận còn kéo dài hơn nữa, thông qua việc phân tích tài liệu, công việc kịch bản, bố cục và hiển thị. Do đó, một tuyên bố về độ trễ hữu ích sẽ nêu tên cả sự kiện bắt đầu và sự kiện kết thúc.

Khoảng cách vật lý đặt ra một giới hạn thấp cho độ trễ mạng vì tín hiệu cần thời gian để lan truyền qua sợi quang, đồng, liên kết radio, bộ định tuyến và các hệ thống trung gian. Tài liệu lưu trữ của Apple giải thích về độ trễ mạng đặt nó dưới dạng thời gian vòng đi và lưu ý rằng khoảng cách góp phần ngay cả khi không có quá tải. Các hệ thống thực tế thêm độ trễ phân tích, xếp hàng, giao thức, xử lý và lập lịch bên trên mức đó.

Ngân sách độ trễ của Một Yêu cầu

Một mô hình hữu ích của Độ trễ bắt đầu từ sự kiện khởi tạo và theo dõi quá trình đến kết quả được trả về. Chia nhỏ con đường đó ngăn chặn một giai đoạn chậm hoặc thất bại bị quy trách nhiệm cho giai đoạn khác.

Giải quyết tên và thiết lập kết nối

Một khách hàng có thể giải quyết một tên miền, chọn một địa chỉ, thiết lập trạng thái truyền tải, và thương lượng mã hóa trước khi gửi yêu cầu ứng dụng. Các câu trả lời DNS đã được lưu vào bộ nhớ đệm và các kết nối được sử dụng lại có thể loại bỏ một số giai đoạn này, trong khi một kết nối lạnh lại phơi bày chúng.

Vận chuyển và xếp hàng

Gói vượt qua các liên kết và thiết bị chuyển tiếp. Sự lan truyền phản ánh khoảng cách và môi trường; tuần tự hóa phản ánh tỷ lệ liên kết và kích thước gói; hàng đợi phản ánh lưu lượng cạnh tranh. Hàng đợi là thành phần có biến động nhất và có thể tăng cao khi một đường dẫn bị tải.

Máy chủ và máy khách hoạt động

Dịch vụ nhận xác thực, xác minh, đọc dữ liệu, thực thi logic ứng dụng và tuần tự hóa phản hồi. Khách hàng sau đó phân tích, chuyển đổi và có thể hiển thị nó. Một mạng nhanh không thể bù đắp cho một truy vấn cơ sở dữ liệu dài, và một máy chủ nhanh không thể xóa một chuyến đi xa.

Các chỉ số độ trễ trả lời các câu hỏi khác nhau

Một sự so sánh chỉ hữu ích khi các hàng mô tả cùng một lớp. Bảng này đặt Khái Niệm Độ Trễ bên cạnh các khái niệm có khả năng bị nhầm lẫn nhất với nó.

Khái niệmÝ nghĩaTín hiệu thực tế
Trì hoãn một chiềuThời gian từ sự kiện người gửi đến sự kiện người nhận.Đồng hồ đồng bộ và phân tích định hướng.
Thời gian vòng chuyếnĐã đến lúc gửi đi một thông điệp và nhận lại một phản hồi.Sức khỏe đường đi, khoảng cách và giao thức tương tác.
Thời gian đến byte đầu tiênThời gian từ khi bắt đầu yêu cầu cho đến khi bắt đầu nhận byte phản hồi.Kết nối, xử lý máy chủ và quá trình vận chuyển ban đầu.
Thời gian tải xuốngThời gian từ byte phản hồi đầu tiên đến byte cuối cùng.Kích thước tải, tắc nghẽn và băng thông khả dụng.
Thời gian làm việc từ đầu đến cuốiThời gian từ hành động người dùng cho đến đầu ra có thể sử dụng được.Trải nghiệm sản phẩm đầy đủ, bao gồm cả công việc với khách hàng.

Nơi Độ Trễ Thay Đổi Hành Vi Hệ Thống

Các trường hợp sử dụng cho Thời Gian Trễ khác nhau về quy mô và khán giả, nhưng mỗi trường hợp phụ thuộc vào một hợp đồng hoặc thuộc tính hiệu suất cụ thể. Các thẻ gọi ra rằng sự phụ thuộc đó.

Giao diện tương tác

Các độ trễ lặp đi lặp lại nhỏ ảnh hưởng đến việc đánh máy, gợi ý tìm kiếm, điều hướng, và bất kỳ quy trình nào có các yêu cầu phụ thuộc.

API phân tán

Các cuộc gọi giữa các dịch vụ có thể nhân đôi độ trễ khi một yêu cầu chờ trên một chuỗi các hoạt động phía dưới.

Thu thập dữ liệu

Điều hướng, kết xuất, trích xuất, và lưu trữ đều thêm thời gian, vì vậy các phép đo cấp độ pha xác định được ràng buộc thực tế.

Kiểm soát thời gian thực

Giọng nói, trò chơi, kiểm soát công nghiệp, và các công cụ hợp tác nhạy cảm với sự thay đổi cũng như độ trễ trung bình.

Cách Đo lường Thời Gian Trễ Mà Không Pha Trộn Tín Hiệu

Định nghĩa các ranh giới đồng hồ trước. Một chuyến đi qua ping không bao gồm xử lý ứng dụng. Thời gian đến byte đầu tiên bao gồm nhiều hơn về đường đi yêu cầu nhưng không phải toàn bộ nội dung. Hoàn tất trình duyệt bao gồm thực thi khách hàng mà một API giám sát không có. Báo cáo tên chỉ số, phần trăm, vị trí, giao thức, trạng thái kết nối, và cửa sổ quan sát để người khác có thể giải thích nó.

Sử dụng phân phối thay vì một trung bình. Độ trễ trung vị mô tả một quan sát điển hình, trong khi các phần trăm trên phơi bày việc xếp hàng, các đường đi lạnh, và sự tranh chấp tài nguyên chung. Ghi lại các hoạt động thất bại và bị hủy riêng biệt vì việc loại bỏ chúng có thể khiến một hệ thống trông nhanh hơn so với cảm nhận.

Thiết bị các ranh giới tương ứng với quyết định. Thông số thời gian điều hướng W3C định nghĩa các thuộc tính thời gian của trình duyệt cho các giai đoạn điều hướng. Các dấu vết máy chủ có thể tách thời gian xếp hàng ra khỏi công việc ứng dụng, trong khi các khoảng thời gian của khách hàng có thể cô lập việc phân tích và kết xuất. Mục tiêu là một ngân sách độ trễ mà các mục có thể được hành động, không phải một bảng điều khiển đầy các bộ đếm không liên quan.

Các Đọc Sai Thời Gian Trễ Lãng phí Thời Gian Kỹ Thuật

  • Gọi mọi kết quả chậm là một vấn đề mạng. Các hàng đợi máy chủ, công việc cơ sở dữ liệu, script trình duyệt, và lưu trữ có thể chiếm ưu thế trong độ trễ quan sát được.
  • Tối ưu hóa trung bình một mình. Một trung vị ổn định có thể che giấu một đuôi đau đớn mà một phần đáng kể các yêu cầu trải nghiệm.
  • Bỏ qua độ sâu phụ thuộc. Nhiều cuộc gọi tuần tự thêm sự chờ đợi của chúng; các cuộc gọi song song thường hoàn thành gần nhánh chậm nhất thay vì.
  • So sánh các tải trọng khác nhau. Các phản hồi lớn hơn mất nhiều thời gian hơn để chuyển và phân tích, điều này có thể bị nhầm với việc thay đổi độ trễ ban đầu.
  • Kiểm tra từ một vùng. Khoảng cách vật lý và các đường kết nối làm cho việc đặt địa lý trở thành một phần của kết quả.

Giảm Thời Gian Trễ trong Các Dòng Dữ liệu Web

Loại bỏ các ranh giới tuần tự không cần thiết. Nếu cần hai tài nguyên độc lập, hãy lấy chúng đồng thời trong các giới hạn có trách nhiệm. Nếu cùng một tài nguyên ổn định cần thiết lặp đi lặp lại và cho phép cache, hãy tái sử dụng nó. Giữ các kết nối mở khi giao thức và dịch vụ cho phép, và đặt tính toán gần nguồn dữ liệu hoặc người dùng khi địa lý là một thành phần chính.

Chọn phương pháp tiếp nhận theo hành vi của trang. Một phản hồi có cấu trúc trực tiếp có thể tránh khởi động trình duyệt và kết xuất. Một phiên trình duyệt là hợp lý khi trang phụ thuộc vào JavaScript, tương tác, hoặc trạng thái phiên. Khi một trình duyệt được yêu cầu, hãy giữ các bước phụ thuộc trong cùng một phiên để việc thiết lập lại lặp đi lặp lại không trở thành dòng lớn nhất trong ngân sách thời gian trễ.

Giảm công việc tải trọng sau byte đầu tiên. Yêu cầu chỉ các trường cần thiết khi API hỗ trợ lựa chọn, nén định dạng văn bản, ngừng tải xuống tài sản không liên quan, phân tích theo từng phần khi thực tế, và viết đầu ra chuẩn hóa mà không cần chuyển đổi lặp lại. Những thay đổi này cải thiện thời gian hoàn tất ngay cả khi thời gian vòng đi không thể được giảm.

Danh sách Kiểm tra Đánh giá Thời Gian Trễ

Sử dụng những kiểm tra này để biến định nghĩa Thời Gian Trễ thành bằng chứng thực hiện mà một nhà phát triển, người vận hành, hoặc người đánh giá có thể tạo lại.

  1. Nêu lại ranh giới. Đối với Thời Gian Trễ, xác định người gọi, nhà cung cấp, con đường, và sự kiện chính xác đánh dấu một kết quả hoàn thành.
  2. Xác minh tuyên bố trung tâm. Xác nhận tuyên bố này với các tài liệu thực hiện và của nó: Độ trễ đo thời gian. Nó mô tả thời gian mà dữ liệu hoặc công việc cần để di chuyển từ một sự kiện bắt đầu đến một kết quả quan sát.
  3. Theo dõi cơ chế. Quan sát quá trình phân giải tên và thiết lập kết nối, quá trình và xếp hàng, công việc máy chủ và khách hàng, và ghi lại thành phần nào sở hữu mỗi giai đoạn.
  4. Kiểm tra sự phân biệt gần nhất. Tài liệu lý do mà Độ trễ một chiều có nghĩa là “Thời gian từ sự kiện gửi đến sự kiện nhận.” trong hệ thống này.
  5. Kiểm tra một trường hợp sử dụng đại diện. Sử dụng các giao diện tương tác với dữ liệu thực tế, vị trí, khối lượng, và các ranh giới quyền hạn.
  6. Phòng tránh một lỗi đã biết. Xem lại “Gọi mọi kết quả chậm là một vấn đề mạng.” và thêm một kiểm tra chấp nhận để bắt giữ nó.
  7. Ràng buộc khối lượng công việc. Đặt giới hạn phù hợp với chủ đề cho What Is Latency, bao gồm tải trọng, đồng thời, thời gian thực thi và đầu ra lưu trữ khi chúng áp dụng.
  8. Ghi lại quyết định. Giải thích lý do tại sao What Is Latency phù hợp với ranh giới này và nêu bằng chứng sẽ biện minh cho cách tiếp cận khác sau này.

Kết luận

What Is Latency nên mô tả một phần thiết kế có thể kiểm tra được thay vì chỉ đóng vai trò như một nhãn lỏng cho hành vi lân cận. Đánh giá nên giữ lại quyết định trung tâm này: Latency đo lường độ trễ. Nó mô tả thời gian dữ liệu hoặc công việc mất để di chuyển từ một sự kiện khởi đầu đến một kết quả quan sát. Nó cũng nên ngăn chặn việc gọi mọi kết quả chậm là vấn đề mạng, và giữ What Is Latency trong phạm vi quyền truy cập được tài liệu hóa cho giao diện hoặc mạng.

Sẵn sàng để Xây dựng Quy trình Dữ liệu Web của Bạn?

Kết nối một bước thu thập hoặc tích hợp What Is Latency đã được đo lường với các thực hành xác minh và lưu trữ được mô tả ở trên.

Đăng ký hôm nay và nhận $5 tín dụng miễn phíkhông yêu cầu thẻ tín dụng.

Yêu cầu Tín dụng $5 của Bạn →

Câu hỏi thường gặp

Độ trễ tốt là gì?

Độ trễ tốt là độ trễ đáp ứng yêu cầu của người dùng và hệ thống cho một hoạt động đã định danh. Không có ngưỡng phổ quát nào vì một tương tác gõ phím, xuất lô và thu thập qua đêm chịu đựng những khoảng chờ khác nhau. Đo lường sự kiện quan trọng từ đầu đến cuối và đặt ra một mục tiêu rõ ràng.

Độ trễ có giống như ping không?

Không. Ping thường báo cáo một vòng đi và trở lại của mạng sử dụng một giao thức chẩn đoán, trong khi độ trễ ứng dụng có thể bao gồm DNS, thiết lập kết nối, mã hóa, xử lý máy chủ, truyền phản hồi, phân tích cú pháp và kết xuất. Ping có thể giúp chẩn đoán nhưng không đại diện cho mọi giai đoạn ứng dụng.

Có thể tăng băng thông có làm giảm độ trễ không?

Băng thông nhiều hơn giảm thời gian tuần tự và chuyển giao khi một liên kết là nút thắt cổ chai, đặc biệt cho các tải trọng lớn. Nó không loại bỏ khoảng cách lan truyền hoặc tính toán máy chủ, và có thể không cải thiện vòng đi và trở lại cho các yêu cầu nhỏ trên một đường dẫn không hoạt động khác.

Tại sao độ trễ API lại khác nhau?

Độ trễ API thay đổi vì các lộ trình, hàng đợi, sử dụng lại kết nối, tải máy chủ, bộ nhớ đệm, phụ thuộc và tải trọng thay đổi. Phân đoạn các phép đo theo khu vực, điểm cuối, kích thước phản hồi, trạng thái và trạng thái kết nối trước khi rút ra kết luận.

Tài liệu tham khảo