удаленные сервера не работают (порт не слушается) контрольный сервер сразу получает TCP reset, что приводит к исключению, завершению работы get_status и отдаче пустого ответа.
Когда появляется удаленный сервер, возможно он отвечает на запрос контрольного сервера довольно долго (какое там тело ответа кстати?), в результате исполнение блокируется.
GIL при этом отпустится, но процессор будет занят интерпретатором питона, так думаю. Соответственно в профайлере должно на первом месте быть ожидание ввода -вывода или чтение из сокета.
Долгие синхронные запросы + один поток = наблюдаемая ситуация.
Если надо хоть как-то исправить прямо сейчас, дайте больше тредов серверу на случай конкуррентных запросов и используйте треды или асинхронность для опроса серверов.
Обсуждают сегодня