Studium przypadku
Studium przypadku: wyizolowanie kilkusekundowych zatrzymań komunikacji kamery przemysłowej
Techniczne studium przypadku przerw w komunikacji z kamerą przemysłową trwających kilka sekund: objawy, ograniczenia, obserwacje, zawężanie przyczyny i usprawnienia.
Przegląd przypadku
Ten przypadek dotyczy sterowania kamerą przemysłową, w którym komunikacja zwykle działała, ale sporadycznie zatrzymywała się na zaledwie kilka sekund. Objaw mógł wyglądać zarówno na zatrzymanie po stronie aplikacji, jak i na problem sieciowy, dlatego pierwszym krokiem było rozdzielenie, co dokładnie się zatrzymuje.
Objawy
- Komunikacja zatrzymywała się na kilka sekund, z niską częstotliwością
- Nie wyglądało na to, by interfejs użytkownika lub cały proces były całkowicie zawieszone
- W sterowaniu urządzeniami nawet kilkusekundowe zatrzymanie ma duży wpływ na środowisko produkcyjne
Ograniczenia
- Błąd występował rzadko, a warunki jego odtworzenia trudno było dostrzec wyłącznie w logach
- Wyglądało na to, że może pojawiać się wszędzie: w SDK kamery, karcie sieciowej (NIC), przełączniku lub w kodzie aplikacji
- Izolowanie przyczyny trzeba było prowadzić bez zaburzania warunków zbliżonych do konfiguracji produkcyjnej
Co obserwowaliśmy
- Aby najpierw wykluczyć przyczyny zatrzymania w samej aplikacji, sprawdziliśmy opóźnienia przetwarzania i występowanie wyjątków
- Dzięki przechwytywaniu pakietów zaobserwowaliśmy zdarzenia
Retransmissionoraz odstępy czasowe - Sprawdziliśmy, czy kształt opcji TCP i czasu oczekiwania na retransmisję zgadza się z objawem
Jak zawęziliśmy przyczynę
Zweryfikowaliśmy, czy zatrzymanie komunikacji można traktować nie jako „zatrzymanie aplikacji”, lecz jako oczekiwanie na retransmisję po utracie pakietów. W rezultacie mogliśmy stwierdzić, że przyczyną zatrzymania nie było zakleszczenie (deadlock) aplikacji, lecz struktura, w której na pierwszy plan wysuwa się czas oczekiwania po stronie TCP.
Jak poprawiliśmy sytuację
- Oceniliśmy, czy zachodzą warunki, w których ustawienia znaczników czasu w stylu RFC 1323 faktycznie przynoszą efekt
- Dostosowaliśmy konfigurację tak, aby czas oczekiwania na retransmisję można było skrócić
- Uporządkowaliśmy procedurę obserwacji i kryteria izolowania przyczyny, aby w przyszłości można było ponownie sprawdzić ruch na poziomie sieci (wire level)
Usługi powiązane z tym przypadkiem
Ten przypadek łączy się zarówno z usługą Diagnostyka błędów i analiza przyczyn źródłowych, która pozwala na podstawie dowodów wyizolować trudne do odtworzenia przerwy w komunikacji, jak i z usługą Tworzenie aplikacji dla systemu Windows, w ramach której od strony aplikacji przeglądamy projekt komunikacji i monitorowania.
Zapraszamy do konsultacji
Jeśli mają Państwo problem zbliżony do treści tej strony, prosimy o konsultację z nami, przekazując obecny kontekst oraz rodzaj potrzebnego wsparcia.