Кейс
Кейс: локалізація зупинок зв’язку з промисловою камерою на кілька секунд
Технічний кейс про зупинки зв’язку з промисловою камерою на кілька секунд: симптоми, обмеження, спостереження, локалізація проблеми та покращення.
Огляд кейсу
Цей кейс стосується керування промисловою камерою, де зв’язок зазвичай працював, але зрідка зупинявся лише на кілька секунд. Оскільки це могло бути схоже і на зупинку на боці застосунку, і на проблему мережі, спершу довелося розділити питання: «що саме зупиняється».
Симптоми
- Зв’язок зрідка зупинявся на кілька секунд
- Інтерфейс і процес загалом не виглядали повністю завислими
- У керуванні обладнанням навіть кількасекундна зупинка має значний вплив на виробничому майданчику
Обмеження
- Частота виникнення була низькою, і за самими журналами умови відтворення було важко побачити
- Здавалося, що причина може бути де завгодно: в SDK камери, мережевій карті, комутаторі або в коді застосунку
- Локалізацію потрібно було виконати, не порушуючи умов, наближених до робочої конфігурації
Що ми спостерігали
- Щоб спершу виключити причини зупинки всередині застосунку, ми перевірили затримки обробки та наявність винятків
- Захоплення пакетів показало
Retransmissionі часові проміжки - Ми перевірили, чи збігається картина параметрів TCP і часу очікування повторної передачі із симптомом
Як ми локалізували проблему
Ми перевірили, чи можна розглядати зупинку зв’язку не як «застосунок зупинився», а як очікування повторної передачі після втрати пакетів. Унаслідок цього ми дійшли висновку, що причина зупинки не у взаємному блокуванні (deadlock) застосунку, а в структурі, де на поверхню виходить час очікування на боці TCP.
Що ми покращили
- Оцінили, чи застосовні за цих умов налаштування міток часу за RFC1323
- Підлаштували конфігурацію так, щоб час очікування повторної передачі можна було скоротити
- Упорядкували процедуру спостереження та критерії локалізації, щоб і надалі можна було перевіряти рівень мережевого каналу (wire)
Послуги, з якими пов’язаний цей кейс
Цей кейс пов’язаний як із розслідуванням дефектів і аналізом першопричин, що на основі доказів локалізує зупинки зв’язку, які важко відтворити, так і з розробкою застосунків для Windows, що переглядає проєктні рішення щодо зв’язку та моніторингу з боку застосунку.
Пов’язані статті
Звернутися за консультацією
Якщо у вас є проблема, близька до змісту цієї сторінки, проконсультуйтеся з нами: розкажіть про поточний стан і про те, яка підтримка вам потрібна.