По делу:
Lexander,
Сколько вы говорите у вас потоков - 100 и более?Да, обычно меньше 100 не использовал
Чтобы проверить эту гипотезу, проверьте время до замедления с разным количеством потоков.Не очень понял что вы имеете ввиду? Если имеется ввиду зависимость влияния количества потоков на время замедления, то её я проверил и, как писал постом выше - она обратная: чем больше потоков - тем меньше времени проходит до замедления.
либо уменьшить количество потоков - этот вариант подойдет, если сетевой интерфейс нагружен на 50 и более процентов;Проверил нагрузку сетевого интерфейса: как до замедления, так и после, сетевой интерфейс используется обычно не более чем на 5%
либо переписать код на multiprocessing, twisted, asyncore и т.п. вещахУже смотрю в сторону twisted, но не увидел в нём поддержки socks5. Только socks4, если не ошибаюсь
lorien,
для этого я и сделал Grab::Spider, чтобы сотни тредов или процессов не создавать.Но Spider подойдёт только в целях работы с http. А моя проблема наблюдается и в случае работы с smtp