Многопоток (100+)
-
Есть ли допустимый адекватный предел того, что может переварить BAS, если не писать скрипт на запросах? 100-200-300 одновременно работающих браузеров? Или лучше открыть 3 версии BAS'а по 100 потоков в каждом? Или 6 версий по 50 шт.?
Теоретически виртуальная машина на хосте бесконечна - хоть 512 Гб перативы ставь, хоть 64 ядра CPU. Но сможет ли это переварить BAS?
Пытаюсь под VMVare запустить на арендованном сервере с 32 CPU и 64 ОЗУ - BAS вешается потока после 30-40ого.
-
-
Хмм... Да, там снимается вопрос о том, что запуски лучше дробить.
Но остаётся много вопросов.Например, я скомпилил скрипт - мне 10 раз запустить его из одной папки релиза.
Или скопировать 10 разных папок (Каждая скачает себе свой Fast-Script движок) и запустить по одной копии оттуда?
-
@AngelOfAncient said in Многопоток (100+):
Хмм... Да, там снимается вопрос о том, что запуски лучше дробить.
Но остаётся много вопросов.Например, я скомпилил скрипт - мне 10 раз запустить его из одной папки релиза.
Или скопировать 10 разных папок (Каждая скачает себе свой Fast-Script движок) и запустить по одной копии оттуда?Скомпилить можно и один раз, но запускать лучше разные копии скрипта из разных каталогов
-
@Fox БД нормально отнесётся к этому?
У неё есть какой-то понятно-допустимый предел прочности?
Количества обращений в секунду?И вопрос в догонку - как тогда автоматизировать запуск 50 копий скрипта в разных папках? Засунуть все 50 в Таскер запуска? Или запустить через BAS "Выполнить любое приложение"? Если второе - то как ему в командной строке передать параметры запуска? (Которые в таскере на одном из шагов проставляются).
-
На производительность в многопотоке очень сильно влиет параметр из настроек проекта
Пропуск кадров
у меня на 3900x 128 гиг оперативы c пропуском 0 кадров максиум идет 40-50 потоков, потом комп начинает тормазить
а если ставлю пропуск 60 то и 120 потоков тянет, где то только на половину нагружая проц, думаю 200 точно должен вытянуть
Так что советую Вам играться с параметром Пропуск кадров, так как это может в разы увеличить максимальное кол-во используемых Вами потоков.В качестве бд использую mysql 8 c увеличиной настройкой максимальных соединений
Connection Settings
max_connections = 8192
так как у меня там пулы соеденений по 32 штуки на поток
без этой настройки короче часто бд просто падала
-
@gomeapat не было идеи использовать для работы с бд отдельный поток например?
-
У меня связь с бд у каждого бота потока своя,
так как изменения о том что бот поток запущен, нужно вносить в базу что снова этот бот не был выбран другим потоком,
при любой причине остановке потока нужно вносить изменения связанные с тем что поток остановлен, это это через супер глобальный массив потоков.
кроме того нужно вносить изменения сколько за каждую сессию бот заработал.
Короче там достаточно много взаимодействий каждого потока с базой, и как это все вынести в отдельный поток просто не предтавляю, так как изменения должны вноситься полюбому и своевременно, иначе если будут запушены 2 аккаунта разными потоками с разными ip, то все хана блокировка этих акков.
С бд mysql работаю уже лет 10, так что мне она наиболее знакома, и для моих целей полностью подходит, на счет других бд не знаю с ними не работал.
-
@gomeapat по описанию можно сделать потоки через асинхронные функции.
запуск функции - запрос в бд,
завершение функции - запрос в бд.и все запуски и запросы через основной поток, который запускает и ждет пока функция/поток не исполнит задачу
-
@gomeapat said in Многопоток (100+):
На производительность в многопотоке очень сильно влиет параметр из настроек проекта
Пропуск кадров
у меня на 3900x 128 гиг оперативы c пропуском 0 кадров максиум идет 40-50 потоков, потом комп начинает тормазить
а если ставлю пропуск 60 то и 120 потоков тянет, где то только на половину нагружая проц, думаю 200 точно должен вытянуть
Так что советую Вам играться с параметром Пропуск кадров, так как это может в разы увеличить максимальное кол-во используемых Вами потоков.В качестве бд использую mysql 8 c увеличиной настройкой максимальных соединений
Connection Settings
max_connections = 8192
так как у меня там пулы соеденений по 32 штуки на поток
без этой настройки короче часто бд просто падалаА не влияет ли как-то пропуск кадров на то, как нас видит сайт?
-
@Evheniu said in Многопоток (100+):
А не влияет ли как-то пропуск кадров на то, как нас видит сайт?
Чисто в теории может заметить наверное делая замеры производительности. И из-за пропуска кадров могут происходить ошибки в работе сайтов, плюс сам скрипт работает гораздо медленней. Я его не использую.
-
@UserTrue said in Многопоток (100+):
@Evheniu said in Многопоток (100+):
А не влияет ли как-то пропуск кадров на то, как нас видит сайт?
Чисто в теории может заметить наверное делая замеры производительности. И из-за пропуска кадров могут происходить ошибки в работе сайтов, плюс сам скрипт работает гораздо медленней. Я его не использую.
Спасибо, я тоже стараюсь не использовать эту функцию
-
@UserTrue said in Многопоток (100+):
@Evheniu said in Многопоток (100+):
А не влияет ли как-то пропуск кадров на то, как нас видит сайт?
Чисто в теории может заметить наверное делая замеры производительности.
Так есть же эмуляция производительности.
-
@FastSpace said in Многопоток (100+):
Так есть же эмуляция производительности.
Ну ну ) Хотя я не использую совсем не из-за этого, а как уже писал выше из-за того что падает скорость выполнения потока и возможны ошибки. Сомнительная выгода
-
@FastSpace said in Многопоток (100+):
@UserTrue said in Многопоток (100+):
@Evheniu said in Многопоток (100+):
А не влияет ли как-то пропуск кадров на то, как нас видит сайт?
Чисто в теории может заметить наверное делая замеры производительности.
Так есть же эмуляция производительности.
А ты используешь пропуск кадров?
Если да, сколько пропуск ставишь?
А ты заменяешь действие спать,на выполнить код и там что-то типа sleep?
-
Спасибо всем, попробую поиграться и с пропуском тоже.
Потому как уже не знаю, что что грешить.У виртуалки 128 Гб оперативы, 32 ядра проца (16 по 2 сокета), диск поставил на максимальное FastSSD.
Остаются только настройки самого BAS.
-
@AngelOfAncient said in Многопоток (100+):
Спасибо всем, попробую поиграться и с пропуском тоже.
Потому как уже не знаю, что что грешить.У виртуалки 128 Гб оперативы, 32 ядра проца (16 по 2 сокета), диск поставил на максимальное FastSSD.
Остаются только настройки самого BAS.На сколько потоков тебе хватает такой конфигурации?
-
@Evheniu На ~200 (Если по процу и памяти, 200 загруженных Твичей с запретом на видео и картинки). Но тормоза не из-за системных ресурсов. Грешу на SSD (Создание или обращение к 200 профилей примерно одновременно) - типа I\O Error, может не успевает писать на диск.
-
@AngelOfAncient said in Многопоток (100+):
типа I\O Error, может не успевает писать на диск.
можно подумать о https://ru.wikipedia.org/wiki/RAM-диск
-
@tet-vivi Я беру диск в облаке! В ЦОДе.
Там должно быть всё нормально с этим)
И так самый быстрый SSD у них взял.
Но под виртуалкой ещё RAM-диск запустить.
Хм... Ну можно пробнуть.
Только что там хранить?
Если BAS установлена на системном, она и обращаться будет к нему же.
Или если весь релиз приложеньки вылить на RAM-диск, то он и работать будет только с него?