Wget bị treo ở giữa yêu cầu


0

Đôi khi, wget hoặc cuộn ngẫu nhiên bị treo ở giữa yêu cầu nhận được trong Ubuntu 10.10:

curl "http://api.indeed.com/ads/apisearch?publisher=7570038743238473"
wget "http://api.indeed.com/ads/apisearch?publisher=7570038743238473" -O - -d

Có vẻ như vấn đề là ở một số thư viện cấp thấp thực hiện yêu cầu, nhưng không phải trong tiêu đề, cookie hoặc bộ nhớ cache.

Có ý kiến ​​gì không?


Đối với URL cụ thể đó, tần suất "đôi khi" là bao nhiêu?
RedGrittyBrick

Câu trả lời:


1

URL này tìm nạp mà không có lỗi hoặc treo cho tôi. Như wgetcurlđược, nói chung, các thư viện này ở mức độ thấp, và họ chỉ chia sẻ các giao thức HTTP / TCP, các lỗi có thể ở hai nơi:

  1. Yêu cầu có thể được xử lý sai về phía bạn. Tôi đã gặp các triệu chứng như vậy nhiều lần và có vẻ như chúng có thể do một nút trên tuyến đến máy chủ của bạn có MTU ít hơn của bạn (thường là VPN của nhà cung cấp của bạn, nếu họ sử dụng nó) và vì các gói bị bỏ đi (tôi không biết chính xác điều gì xảy ra ở đó, vì chúng sẽ bị phân mảnh trong lý thuyết).

    Kiểm tra nhanh là hạ MTU cục bộ trên liên kết Ethernet / WiFi của bạn như thế này:

    sudo ip link set $IFACE mtu 1300
    

    trong đó $ iface là giao diện của bạn trên mạng ( eth0, wlan0hay như vậy).

  2. Yêu cầu có thể được cung cấp bởi máy chủ. Máy chủ có thể bị quá tải, bị định cấu hình sai hoặc chỉ chặn các yêu cầu của bạn một cách chọn lọc. Đây là biến thể ít xảy ra hơn và không thể chẩn đoán dễ dàng.


0

Ý tưởng của tôi:

  • Máy chủ đôi khi bị quá tải.
  • Sử dụng một sniffer (như Wireshark) để xem những gì đang xảy ra khi nó bị treo.
  • Sử dụng strace để xem wget / curl đang làm gì khi nó bị treo.

0

Tôi sẽ sử dụng tcpdump để xem chính xác nó treo ở đâu. Bạn có thể tìm thấy thường xuyên.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.