Многопоток (100+)

Поддержка
  • @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-диск, то он и работать будет только с него?

  • @AngelOfAncient профили. но не забыть бекапить(RAM при отключении железа очистится)

  • Ошибки конечно из за включения пропуска кадров, возможны
    например с поиском элементов в iframe
    Так что нужно это все хорошо тестировать.
    Задержки в скорости работы со включенным пропуском кадров, я не заметил но может они и есть, я тесты на это не делал.
    На работу моего скрипта это ни какого существенного влияния не оказывает.
    А вот выигрыш с 40 - 50 потоков до 200 на моей системе для меня имеет принципиальное значение.

  • @tet-vivi said in Многопоток (100+):

    запуск функции - запрос в бд,
    завершение функции - запрос в бд.
    и все запуски и запросы через основной поток, который запускает и ждет пока функция/поток не исполнит задачу

    А как тогда смотреть что там в каждом браузере происходит
    Я сейчас через запуск скрипта иногда смотрю что там в каждом браузере происходит
    А если там запустить 50 браузеров ассинхроно то как тогда смотреть что в них происходит?

  • @gomeapat said in Многопоток (100+):

    А как тогда смотреть что там в каждом браузере происходит
    Я сейчас через запуск скрипта иногда смотрю что там в каждом браузере происходит
    А если там запустить 50 браузеров ассинхроно то как тогда смотреть что в них происходит?

    там так же можно будет посмотреть как и в обычном режиме

  • @gomeapat said in Многопоток (100+):

    Ошибки конечно из за включения пропуска кадров, возможны
    например с поиском элементов в iframe
    Так что нужно это все хорошо тестировать.
    Задержки в скорости работы со включенным пропуском кадров, я не заметил но может они и есть, я тесты на это не делал.
    На работу моего скрипта это ни какого существенного влияния не оказывает.
    А вот выигрыш с 40 - 50 потоков до 200 на моей системе для меня имеет принципиальное значение.

    А какой пропуск кадров дал такой прирост?

  • @Evheniu
    Я так понимаю что пропуск кадров связан в первую очередь с тем как быстро будет отрисовываться интерфейс у браузера, чем реже его нужно отрисовать тем меньше нагрузка на процессор, но так же это влияет и на нагрузку которую создает сам браузер, браузер становится как бы ленивым.
    Конкретные цифры прироста производительности я не замерял,
    но поставьте к примеру сначало 5 посмотрите что б не было ошибок
    далее ставьте 10 и снова смотрите на ошибки и так найдете оптимальные настройки под Ваш сайт и скрипт
    Еще раз пишу что настройка пропуск кадров подойдут далеко не для всех сайтов, поэтому нужно внимательно смотреть на каждый отдельный случай.

  • Сделал на скорую руку замеры с пропуском кадров = 75 и без. С пропуском кадров скорость выполнения упала примерно на 30-35%, но учитывая снижение нагрузки на процессор профит из-за увеличения числа потоков будет. Другой момент на графике вебвизора этот пропуск кадров сильно заметен, я не знаю как этому отнесется тот же яндекс.
    2020-09-30_174155.png

  • @Evheniu

    А ты заменяешь действие спать,на выполнить код и там что-то типа sleep?

    А это как то уменьшает нагрузку?

    @UserTrue не знаю как этому отнесется тот же яндекс.

    думаю никак.
    они же не будут её разглядывать вручную.