Nguyên nhân thời gian yêu cầu hết hạn: Chẩn đoán độ trễ mạng và trình duyệt

Nguyên nhân gây ra thời gian yêu cầu hết hạn là gì?

API thu thập thông tin không thu thập thông tin giải pháp thu thập dữ liệu công cộng và hỗ trợ kết xuất JavaScript trong giới hạn thực thi do dịch vụ định nghĩa.

Thời gian yêu cầu hết hạn có nghĩa là một thao tác không hoàn thành trước khi thành phần giám sát nó đạt được thời hạn của nó. Thao tác chưa hoàn thành có thể là mở kết nối, tải lên một yêu cầu, chờ phản hồi, hoặc chờ một phần tử trình duyệt. Những thất bại đó cần các cuộc điều tra khác nhau. Tăng giá trị thời gian chờ đơn lẻ mà không xác định được giai đoạn chưa hoàn thành có thể để lại vấn đề thực tế không được giải quyết.

Đối với một công việc thu thập dữ liệu, hãy bắt đầu với hai câu hỏi: thành phần nào đã dừng lại việc chờ đợi, và điều gì đã hoàn thành? Một ngoại lệ của khách hàng, phản hồi HTTP, và một lỗi điều hướng trình duyệt là những mảnh chứng cứ khác nhau. Ghi lại sự khác biệt trước khi thay đổi lộ trình mạng hoặc logic trích xuất của bạn.

Nguyên nhân gây ra thời gian yêu cầu hết hạn là gì?

Thời gian yêu cầu hết hạn xảy ra khi tiến trình mạng, công việc của máy chủ, hoặc một ứng dụng chờ đợi vượt quá ngân sách thời gian đã cấu hình của nó. Thời gian phân giải DNS chậm, vấn đề thiết lập kết nối, xử lý upstream bị trì hoãn, chuyển đổi lớn, và chờ các phần tử trang không có thể tiêu tốn ngân sách đó.

Xem xét con đường hoàn chỉnh: công việc của bạn vào trong một hàng đợi cục bộ, thiết lập một kết nối, gửi một yêu cầu, nhận một phản hồi, và xử lý kết quả. Một trang đã được kết xuất thêm khởi động trình duyệt, tải tài liệu, thực thi kịch bản, và sẵn sàng cho phần tử. Một thời hạn có thể bao gồm một giai đoạn hoặc nhiều giai đoạn cùng nhau. Từ “hết thời gian” một mình không xác định được ranh giới.

Một bản ghi sự cố hữu ích liệt kê rõ ràng thao tác: “việc thiết lập kết nối vượt quá giới hạn của nó” truyền tải nhiều hơn “trang web đã hết thời gian.” Bao gồm tên máy chủ yêu cầu, tên thao tác, thời gian đã trôi qua, và liệu các tiêu đề phản hồi có được nhận hay không. Những thực tế này thu hẹp cuộc điều tra mà không làm lộ thông tin tài khoản.

Thời gian hết hạn của khách hàng, HTTP 408 và HTTP 504

Thời gian hết hạn của khách hàng là một quyết định địa phương để ngừng chờ đợi; HTTP 408 và HTTP 504 là các phản hồi được gửi bởi một máy chủ. Theo ngữ nghĩa trạng thái HTTP, 408 liên quan đến một máy chủ không nhận được một yêu cầu hoàn chỉnh kịp thời, trong khi 504 liên quan đến một cổng chờ quá lâu cho một phản hồi phía trên.

Kết quả quan sátĐiều gì được thiết lậpChứng cứ tiếp theo hữu ích
Thời gian hết hạn kết nối của khách hàngKhách hàng không thiết lập được kết nối của mình trong thời gian cho phép.Đầu ra của Resolver, giai đoạn kết nối, đích đến, và cấu hình proxy.
HTTP 408Máy chủ phản hồi báo cáo một yêu cầu không hoàn chỉnh trong thời gian chờ của nó.Kích thước tải lên, truyền tải yêu cầu, và nhật ký yêu cầu máy chủ.
HTTP 504Một cổng báo cáo rằng thời hạn phản hồi phía trên đã bị vượt quá.Các định danh cổng, thời gian phía trên, và tình trạng nguồn gốc.
Thời gian hết hạn phần tử trình duyệtMột điều kiện trang dự kiến không trở thành sự thật.URL cuối, trang hiển thị, bộ chọn, và trạng thái tài liệu.

Một thời gian hết hạn có thể xảy ra mà không có bất kỳ trạng thái HTTP nào vì khách hàng không bao giờ nhận được phản hồi HTTP. Đừng tạo ra một giá trị 504 cho trường hợp đó trong hệ thống giám sát của bạn. Bảo tồn một loại lỗi riêng cho các thất bại cục bộ, với trường trạng thái trống khi không có phản hồi nào tồn tại.

Tìm giai đoạn chậm trước khi thay đổi thời hạn

Thời gian giai đoạn giúp phân biệt một đích đến chậm từ tắc nghẽn địa phương hoặc một trình duyệt đang chờ đợi điều kiện sai. Các phép đo điều hướng trình duyệt phân biệt các giai đoạn như thiết lập kết nối và xử lý phản hồi; Thời gian điều hướng định nghĩa mô hình thời gian trình duyệt.

Kết nối và truyền tải

Kiểm tra xem đích đến có được phân giải hay không, liệu proxy đã cấu hình có thể đạt được hay không, và liệu kết nối TLS có hoàn tất hay không. Nếu kết nối thành công nhưng byte phản hồi đầu tiên đến muộn, hãy chuyển sự chú ý về phía cổng hoặc nguồn gốc. Nếu các byte đến kịp thời và sau đó việc truyền tải bị đình trệ, hãy kiểm tra kích thước và tiến trình phản hồi thay vì coi sự cố đó như một vấn đề kết nối.

Trên một hệ thống bạn điều hành, hãy so sánh thời gian xử lý ứng dụng với thời gian spent trong hàng đợi. Một bộ xử lý nhanh vẫn có thể tạo ra một trải nghiệm người dùng chậm khi các yêu cầu chờ đợi một công nhân có sẵn. Ghi lại cả hai khoảng thời gian nếu nền tảng của bạn tiết lộ chúng.

Sự sẵn sàng của trình duyệt

Một trang có thể hiển thị dữ liệu cần thiết trong khi các yêu cầu nền đang tiếp tục. Ngược lại, tài liệu có thể hoàn tất việc tải trước khi danh sách sản phẩm xuất hiện. Chọn một điều kiện hoàn tất đại diện cho dữ liệu bạn cần, chẳng hạn như một bộ chứa kết quả hiển thị cộng với một trường yêu cầu, thay vì giả định một sự kiện trang tổng quát chứng minh sự sẵn sàng trích xuất.

Khi một thời gian chờ bộ chọn kết thúc, hãy kiểm tra trang thực tế. Một thông báo đồng ý, một màn hình từ chối quyền truy cập, một mẫu đã thay đổi, hoặc một kết quả thực sự trống rỗng có thể giải thích phần tử bị thiếu. Việc chờ đợi thêm không khiến một phần tử tồn tại trên trang sai.

Cách các ngân sách thời gian hết hạn nhiều tương tác

Một quy trình làm việc có thể có nhiều thời hạn độc lập, và thời hạn có thể áp dụng sớm nhất có thể kết thúc thao tác. Khách hàng HTTP, cổng, dịch vụ được quản lý, điều hướng trình duyệt, và trình chạy công việc của bạn có thể giám sát mỗi một khoảng thời gian khác nhau.

Các Chính sách thời gian chờ của API Scraping Toàn cầu không cần xử lý phân biệt việc tải trang với việc thực hiện lệnh tích lũy. Giới hạn tải trang đã được tài liệu hóa là 30 giây, trong khi giới hạn thực hiện lệnh toàn cục là 180 giây. Giới hạn tải trang có thể dừng xử lý trước khi đạt được giới hạn toàn cục. Đây là các giá trị cụ thể cho dịch vụ, không phải là mặc định cho mọi khách hàng HTTP hoặc trình duyệt.

Ví dụ, một người gọi được cấu hình với thời hạn ngắn hơn có thể ngừng lắng nghe trước khi dịch vụ hoàn thành một hoạt động được phép khác. Điều đó không chứng minh rằng dịch vụ đã thất bại vào cùng một thời điểm. Căn chỉnh ngân sách của người gọi với hành vi dịch vụ đã được tài liệu hóa và thời hạn kinh doanh của công việc, đồng thời bảo toàn một giới hạn trên hữu hạn.

Ghi lại những giới hạn này trước khi điều chỉnh chúng. Xác định những cài đặt nào mà đội ngũ của bạn kiểm soát và những cài đặt nào thuộc về nhà cung cấp upstream. Một thay đổi cấu hình cục bộ không thể vượt qua giới hạn upstream mà nhà cung cấp thực thi độc lập.

Một Cuộc Điều Tra Thực Tế Về Thời Gian Tạm Dừng

Một cuộc điều tra thời gian chờ hữu ích theo dõi một yêu cầu qua các giai đoạn quan sát được của nó và chỉ thay đổi cài đặt liên quan đến bằng chứng. Sử dụng một trang công khai mà bạn được phép thu thập, và giữ cuộc điều tra trong giới hạn.

  1. Chụp lại ngoại lệ hoặc phản hồi chính xác, tên hoạt động, URL cuối cùng nếu có, và thời gian đã trôi qua.
  2. Xác định xem có kết nối, tiêu đề phản hồi, thân phản hồi và nội dung trang yêu cầu được quan sát hay không.
  3. Kiểm tra thời hạn gắn liền với giai đoạn chưa hoàn thành và bất kỳ thời hạn công việc bao quanh nào.
  4. Kiểm tra đại diện cuối cùng trước khi thay đổi bộ chọn hoặc điều kiện chờ.
  5. So sánh việc sử dụng tài nguyên cục bộ và độ sâu hàng đợi với thời gian ở phía đích khi những phép đo đó có sẵn.
  6. Thực hiện một thay đổi dựa trên bằng chứng và đánh giá cả hoàn thành và độ chính xác của đầu ra trên một mẫu nhỏ được ủy quyền.

Giả sử một công việc danh mục nhận được HTML thành công nhưng không bao giờ quan sát thấy một thùng chứa giá. Nhiệm vụ đầu tiên là xác định liệu HTML có chứa danh mục, bộ chọn vị trí, hay phản hồi bảo mật hay không. Nếu danh mục có mặt với một mẫu đánh dấu mới, hãy cập nhật điều kiện trích xuất. Nếu phản hồi là từ chối, hãy chuyển công việc đến một cuộc xem xét quyền truy cập. Nếu giá tải sau khi có lựa chọn hợp lệ của người dùng, hãy đại diện cho lựa chọn đó trong quy trình làm việc đã được phê duyệt.

Ví dụ này là một tình huống chẩn đoán, không phải là một tuyên bố hiệu suất đã được đo lường. Mục đích của nó là để chỉ ra tại sao triệu chứng nhìn thấy giống nhau có thể dẫn đến các hành động sửa chữa khác nhau.

Ngăn chặn Công việc Chậm Lại Lan Truyền Qua Một Dây Chuyền

Các đơn vị công việc có giới hạn và hồ sơ thất bại rõ ràng ngăn chặn một trang chậm làm mờ trạng thái của toàn bộ tập dữ liệu. Giữ kết quả ở cấp yêu cầu tách biệt với hồ sơ kinh doanh mà việc trích xuất sẽ tạo ra.

Không ghi lại giá, tiêu đề hoặc giá trị khả dụng trống chỉ vì yêu cầu đã hết hạn. Một trường bị thiếu trong một trang hợp lệ và một trang chưa bao giờ được lấy có ý nghĩa khác nhau. Ghi lại "không quan sát được vì việc thu mua không thành công" riêng biệt với một kết quả thật sự trống.

Hạn chế số lượng công việc đồng thời sử dụng cùng một tài nguyên bị hạn chế. Khi dung lượng trình duyệt cục bộ đã đạt mức tối đa, việc thêm công việc mới có thể kéo dài thời gian chờ đợi thay vì tăng cường khả năng xử lý. Chọn độ đồng thời dựa trên dung lượng đã đo và khối lượng được phép của mục tiêu, không phải từ một con số chung sao chép từ trang web khác.

The API Quét Dữ Liệu Toàn Cầu Không Rác cung cấp một bề mặt thu nhận được quản lý cho các trang web công cộng. Ứng dụng của bạn vẫn cần xác thực đầu ra, chính sách thời hạn và một bản ghi lỗi xác định giai đoạn thất bại. Xem xét Giá không bị ảnh hưởng bởi việc thu thập dữ liệu đối với phạm vi công việc của bạn trước khi mở rộng nó.

Cuộc thảo luận về PHP thu thập dữ liệu web và thời gian trình duyệt từ xa cung cấp một ví dụ liên quan về lý do tại sao cấu hình khách hàng và môi trường thực thi phải đồng nhất. Xem xét các lựa chọn triển khai của nó như là cụ thể cho quy trình công việc đó, chứ không phải là các cài đặt thời gian chờ chung.

Kết luận

Chẩn đoán một yêu cầu timeout bằng cách xác định thành phần đã ngừng chờ và giai đoạn còn lại chưa hoàn thành. Giữ cho ngoại lệ của khách hàng tách biệt với phản hồi HTTP, sử dụng các điều kiện sẵn sàng cụ thể về nội dung của trình duyệt, và căn chỉnh các thời hạn lồng ghép với hợp đồng dịch vụ. Cải tiến tốt nhất là cải tiến loại bỏ điểm nghẽn đã quan sát trong khi vẫn bảo tồn dữ liệu chính xác và công việc có giới hạn.

Làm cho các thời hạn tiếp nhận của bạn trở nên rõ ràng

Sử dụng quy trình trang công khai có giới hạn và giữ bằng chứng thời gian bên cạnh kết quả đã được xác minh.

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

Nhận tín dụng $5 của bạn →

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

Thời gian chờ yêu cầu có nghĩa là trang web đang bị sập không?

Thời gian chờ yêu cầu không xác định rằng một trang web đã bị ngừng hoạt động. Thời hạn có thể thuộc về khách hàng của bạn, một cổng thông tin, hoặc tình trạng trình duyệt. Kiểm tra giai đoạn nào đã hoàn thành và so sánh thất bại với chứng cứ máy chủ hoặc trang web có sẵn trước khi xác định nguyên nhân.

Bạn Có Nên Luôn Tăng Thời Gian Chờ?

Tăng thời gian chờ chỉ khi có bằng chứng cho thấy công việc hợp pháp cần thêm thời gian và dịch vụ bao quanh cho phép điều đó. Một bộ chọn sai, điểm đến không khả dụng, hoặc trang bị từ chối quyền truy cập cần một sự sửa đổi khác. Bảo tồn một hạn chót tổng thể để một công việc không chiếm dụng tài nguyên mãi mãi.

Một Proxy có thể gây ra thời gian chờ không?

Một proxy có thể gây ra độ trễ kết nối hoặc độ trễ trên đường vì nó thêm một thành phần khác vào đường dẫn yêu cầu. Ghi lại khả năng truy cập proxy và thời gian kết nối riêng biệt so với thời gian phản hồi của mục tiêu. Thay đổi định tuyến mà không có chẩn đoán có thể che giấu nguyên nhân gốc rễ.

Một Trang có thể hết thời gian sau khi trả về HTTP 200 không?

Một tác vụ trình duyệt có thể hết thời gian chờ sau khi nhận được phản hồi HTTP 200 nếu điều kiện sẵn sàng sau đó không bao giờ hoàn thành. Trạng thái phản hồi mô tả sự trao đổi HTTP, trong khi tác vụ trình duyệt có thể vẫn đang chờ dữ liệu đã được hiển thị hoặc một phần tử cụ thể.

Tài liệu tham khảo