sanic).
Хотя бы ключевые слова по которым гуглить - пока из идей - посмотреть gdb/strace - на чём оно хоть подвисает.
Может есть более удобные способы / дебаггеры ?
О самом приложении:
asyncio, python 3.6, sanic, принимает подключения по вебсокету, опрашивает 2й веб-сервис, читает и сохраняет информацию в базы (redis, postgresql, elastic). Таймауты на все внешние соединения висят, кроме подключений клиентов. Всё это в докере.
Клиент: python приложение, в докере, которым устанавливается websocket-соединение и по циклу опрашивается основной сервис одинаковыми запросами (id разные, конечно)
Общее число клиентов - 7.
В какой-то момент времени (через несколько часов) перестают приходить ответы на запросы.
Таймаутов, вредных сообщений в syslog нет.
До рестарта питоновское приложение не принимает в себя новые соединения.
После рестарта всё ок.
Бага нестабильная - иногда успешно прогоняется весь цикл нагрузки, иногда подвисает.
С чего начать исследовать, какой опыт у вас ?
Мне тоже интересно послушать как это дебажить. Пришлось использовать sanic и питон тоже для единственного метода апи сервера, только потому что под питон уже есть все нужные бинды для ml. Я накодил изначально дефенсивно - на каждый тред/процесс открываю новое подключение к редису и к бд.
может дело в DNS?
Обсуждают сегодня