У меня был очень похожий опыт, но я остановился на другом решении.
Я тоже тестировал скрипт на 8 ядерном 32 гб дедике с широким каналом и там еле еле 10 потоков шло.
Работающими решением оказалось взять 32 ядерный локальный сервер с 64 оперативки, на не очень быстром канале, с сокс5, на нем 100+ потоков запускалось.
Скрипт тот же, никаких оптимизаций не делалось.
Стоит конечно побольше, чем аренда дедика но тут уж зависит от окупаемости твоей темы, стоит ли оно того или нет.
Но соксы могут быть узким местом, по возможности нужно делать свои соксы. Для этого, можно брать дешевые VPS и установить сокс через опенсурсный софт microsocks для линукса (в инете полно инструкций по установке, занимает не более 5 минут вручную, и можно установку через БАС автоматизировать также на случай если нужны сотни соксов).
Можно ли как-то сделать продолжение выполнения скрипта по времени после окончания прошлого потока?
-
Есть скрипт который отправляет пост запрос на сервер, но при тех же 10 потоках строки проскакивают в одну секунду, рандомная задержка не сильно спасла ситуацию. Можно ли как-то сделать чтобы по окончанию прошлого потока через N-ое кол-во секунд выполнялась функция у последующего потока?
-
@EvilBanana можно сделать блокировку через глобальную переменную
-
@EvilBanana Не совсем понятна логика данного действия. Если второй поток будет ждать завершение первого (то есть потоки все равно будут работать не одновременно), то нельзя ли просто запускать скрипт в один поток
-
@EvilBanana
Вот решение для запуска каждого потока с определенной задержкой. В примере 30 минут. На англ, но думаю разберетесь
Ссылка -
@EvilBanana что то вроде

там где помечено можно засунуть что то полезное. например вызов функции или Break.