У меня был очень похожий опыт, но я остановился на другом решении.
Я тоже тестировал скрипт на 8 ядерном 32 гб дедике с широким каналом и там еле еле 10 потоков шло.
Работающими решением оказалось взять 32 ядерный локальный сервер с 64 оперативки, на не очень быстром канале, с сокс5, на нем 100+ потоков запускалось.
Скрипт тот же, никаких оптимизаций не делалось.
Стоит конечно побольше, чем аренда дедика но тут уж зависит от окупаемости твоей темы, стоит ли оно того или нет.
Но соксы могут быть узким местом, по возможности нужно делать свои соксы. Для этого, можно брать дешевые VPS и установить сокс через опенсурсный софт microsocks для линукса (в инете полно инструкций по установке, занимает не более 5 минут вручную, и можно установку через БАС автоматизировать также на случай если нужны сотни соксов).
Статистика по каждому потоку
-
Подскажите кто может. Хотелось бы выводить во вкладку результатов статку по потокам. Например: 1 поток - 5 успешно, 2 - поток 3 успешно. Можно реализовать через запись и чтение в файл глобальных переменных, но не хочется костылить. Помогите с логикой. Как лучше?
-
База данных. Запишите в таблицу номера потоков, и пункты статистики. Выставьте везде по дефолту 0. При старте потока получайте номер потока, и выдирайте запись базы, которая подойдет под фильтр по номеру потока. Увеличивайте нужные показатели и в конце потока изменяйте запись статистики для потока.
-
-
@kodes said in Статистика по каждому потоку:
хорошая идея, но я в скрипте не использую БД. Работать с БД ради статистики - тоже считаю тот еще костыль. Я подумал может файл лога читать? он же где то хранится вроде.Там же есть : Поток 1 - Статус Успех. Найти количество и вот она статка для 1 потока.
Я думаю, читать каждый раз файл лога и анализировать его что бы отображать статистику в реальном времени нагрузка побольше будет чем коннект и запросы к базе)
Можете тогда не вести статистику, а просто после завершения скрипта, взять файл лога, и отдельно написанным скриптом пройтись по нему, собрать и выдать статистику