Кейс

Кейс: локалізація зупинок зв’язку з промисловою камерою на кілька секунд

Технічний кейс про зупинки зв’язку з промисловою камерою на кілька секунд: симптоми, обмеження, спостереження, локалізація проблеми та покращення.

Огляд кейсу

Цей кейс стосується керування промисловою камерою, де зв’язок зазвичай працював, але зрідка зупинявся лише на кілька секунд. Оскільки це могло бути схоже і на зупинку на боці застосунку, і на проблему мережі, спершу довелося розділити питання: «що саме зупиняється».

Симптоми

  • Зв’язок зрідка зупинявся на кілька секунд
  • Інтерфейс і процес загалом не виглядали повністю завислими
  • У керуванні обладнанням навіть кількасекундна зупинка має значний вплив на виробничому майданчику

Обмеження

  • Частота виникнення була низькою, і за самими журналами умови відтворення було важко побачити
  • Здавалося, що причина може бути де завгодно: в SDK камери, мережевій карті, комутаторі або в коді застосунку
  • Локалізацію потрібно було виконати, не порушуючи умов, наближених до робочої конфігурації

Що ми спостерігали

  • Щоб спершу виключити причини зупинки всередині застосунку, ми перевірили затримки обробки та наявність винятків
  • Захоплення пакетів показало Retransmission і часові проміжки
  • Ми перевірили, чи збігається картина параметрів TCP і часу очікування повторної передачі із симптомом

Як ми локалізували проблему

Ми перевірили, чи можна розглядати зупинку зв’язку не як «застосунок зупинився», а як очікування повторної передачі після втрати пакетів. Унаслідок цього ми дійшли висновку, що причина зупинки не у взаємному блокуванні (deadlock) застосунку, а в структурі, де на поверхню виходить час очікування на боці TCP.

Що ми покращили

  • Оцінили, чи застосовні за цих умов налаштування міток часу за RFC1323
  • Підлаштували конфігурацію так, щоб час очікування повторної передачі можна було скоротити
  • Упорядкували процедуру спостереження та критерії локалізації, щоб і надалі можна було перевіряти рівень мережевого каналу (wire)

Послуги, з якими пов’язаний цей кейс

Цей кейс пов’язаний як із розслідуванням дефектів і аналізом першопричин, що на основі доказів локалізує зупинки зв’язку, які важко відтворити, так і з розробкою застосунків для Windows, що переглядає проєктні рішення щодо зв’язку та моніторингу з боку застосунку.

Звернутися за консультацією

Якщо у вас є проблема, близька до змісту цієї сторінки, проконсультуйтеся з нами: розкажіть про поточний стан і про те, яка підтримка вам потрібна.

Повернутися на головну