У меня был очень похожий опыт, но я остановился на другом решении.
Я тоже тестировал скрипт на 8 ядерном 32 гб дедике с широким каналом и там еле еле 10 потоков шло.
Работающими решением оказалось взять 32 ядерный локальный сервер с 64 оперативки, на не очень быстром канале, с сокс5, на нем 100+ потоков запускалось.
Скрипт тот же, никаких оптимизаций не делалось.
Стоит конечно побольше, чем аренда дедика но тут уж зависит от окупаемости твоей темы, стоит ли оно того или нет.
Но соксы могут быть узким местом, по возможности нужно делать свои соксы. Для этого, можно брать дешевые VPS и установить сокс через опенсурсный софт microsocks для линукса (в инете полно инструкций по установке, занимает не более 5 минут вручную, и можно установку через БАС автоматизировать также на случай если нужны сотни соксов).
А как получить информацию по ресурсам машины?
-
Как узнать сколько оперативы используется 1 потоком и всем БАСом в принципе? Подскажите направление хотя бы, куда и где копать.
Хочу знать, сколько потоков выдерживает машина смотря по пункту "что именно делают эти потоки". Хочу нормально следить за ресурсами машины.
-
Есть некторые встроенные функции, которые позволяют следить за ресурсами системы
memory_virtual_total() memory_virtual_available() memory_physical_total() memory_physical_available()Используя их и ручное управление браузером можно создавать браузеры только когда система это выдержит.
Ну и всегда можно написать свой модуль, который получает информацию о ресурсах в процессе и в системе.
Минимальный пример
https://github.com/bablosoft/BAS/tree/master/Modules/Processes -
@support отлично что есть функции, спасибо.
А как собственно "открыть и закрыть браузер"? Этой функции вроде раньше не было и я ее так и не обнаружил. Видел только "алгорритм на псевдокоде", типо "Открой, сделай, проверь, закрой". а как собственно сделать это "открой, закрой".
Открой как я понял это типо Browser() + загрузить...
А вот закрой...Прочитал в ветках, мол в новой версии было добавлены эти 2 действия. Я не знаю, мб auto updater не сработал, да и сам вручную вроде проверял, не раз. Ща заново переустановлю