Odpowiedź, która od czasu do czasu dostarcza kilka bajtów, może pozostawać w granicach każdego limitu bezczynności odczytu, a jednocześnie zajmować znacznie zbyt dużo czasu ogółem. Limit czasu odczytu nie musi mierzyć całego czasu trwania transferu.

Wybierz politykę odpowiednio do obciążenia. Ograniczone archiwum potrzebuje budżetu ukończenia; strumień zdarzeń może legalnie trwać godzinami i czasami milczeć.

Mierz użyteczny postęp

W przypadku pobierania pliku zachowaj ogólny termin i rozważ obsługiwane przez klienta mechanizmy niskiej prędkości lub postępu. Zdefiniuj interwał i ilość użytecznych danych. Bajt pulsu może pokazywać aktywność bez rzeczywistego postępu w kierunku ukończenia pliku.

Utrzymuj konfigurację tunelu oddzielnie od transferu ciała. Czekanie na zakończenie CONNECT i odbieranie wolnego ciała docelowego to różne etapy z różnymi dowodami.

Konsumuj lub zamykaj odpowiedź na każdej ścieżce wyjścia. Pozostawienie wolnego strumienia otwartego może sprawić, że następne żądanie będzie czekać na pojemność puli, co powoduje kolejny limit czasu z innego powodu.

Jeśli zaobserwowany czas przekracza zamierzoną politykę, sprawdź dokładną wersję klienta i pętlę odczytu. Poprawnie działający licznik bezczynności, zachowanie niestandardowej pętli i błąd implementacji wymagają różnych poprawek.

Powiązane artykuły