Проблема с изображением при большом числе потоков
-
-
Это я понял, я имел ввиду какое число пропуска кадров ставить? Вообще это разве влияет на многопоточный проект созданный с помощью BAC? Я думал это число влияет только на тест в самой студии, а не на финальную многопоточную программу(скомпилированную).
-
@Basak298 Судя по этому тексту: "Пропуск кадров в рабочем режиме. Чем больше это значение, тем меньше используется ресурсов. 1 - означает отрисовывать все кадры, 75 - стандартное значение." В "записи" это значение равно 1, а в "запуске" 75. По точному значению не подскажу, не тестировал.
-
@Basak298 Да, похоже на проблему с гпу.
Попробуйте в файле%AppData%\BrowserAutomationStudio\apps\15.9.0\chrome_command_line.txt
в дополнение к тому, что там есть добавить--disable-gpu-vsync
Если проблема не исчезнет - пишите
-
@support, это актуально для современной версии БАСа?
UPD:
Применил настройку - мою проблему не решило, хотя может быть повлияло немного.У меня ситуация аналогичная первому посту. Есть сервер с двумя процами E2670 и 96гб ram, но без нормальных дров на метеринку и все встроенное. Запускал бас хотя бы в 50 потоков и по рдп работать становилось невозможно. Рабочий стол превращался в калейдоскоп с перемешиванием частей окон между собой и дикими тормозами. Пробовал на Win 2008 и на Win 10 (но на виртуальной машине). Думал, что дело в рдп. Перепробовал другие способы подключения. Последним попробовал Radmin, который вешал сервер, пока я не включил у него в настройках использование какого-то его специального видео драйвера. После этого глюки под нагрузкой значительно сократились. Попробовал запустить Бас в 200 потоков - все приемлемо работает, рдп не виснет, но сервер загружен максимум на 30%. Увеличиваю потоки и производительность скрипта начинает резко падать (память и проц сободны) , а в логах куча ошибок, связанных с запуском потоков:
Неудач(513) Сообщения: 222 - [776238067] Таймаут во время выполнения SetStartupScript 112 - [0] Timeout during creating new process Неудач и восстановлено(1655) Сообщения: 571 - Таймаут во время выполнения GetLoadStats 234 - Таймаут во время выполнения SetStartupScript 143 - Не удалось дождаться полной загрузки страницы
(На [776238067] у меня JS, который отключает звук в браузере)
Добавил--disable-gpu-vsync
Вроде бы немного помогло, но не уверен. Ошибок куча все равно.
Попробую сейчас с пропуском кадров поиграть, но проблема очень актуальна. Арендовал сервер уже неделю как, но не могу его нагрузить! Ищу решение.А "поиск по картинке" может как-то видео нагружать?
UPD2:
Поставил пропуск кадров 150 - ничего не поменялось.
Теперь даже на 200 потоках происходит замедление работы. Не могу точно посмотреть ошибки, потому-что при попытке что-нибудь сделать в окне Баса он падает. Только через текстовый файл видно работает что-то вообще или нет. И дело 100% в видео, потому-что во время работы винда не открывает файлы bmp. Пишет, что мало памяти или ресурсов. Проц и оперативка загружены процентов на 20-25.
-
Прописал
--disable-gpu-vsync
в C:\Users\Administrator\AppData\Roaming\BrowserAutomationStudio\apps\20.4.1\chrome_command_line.txt
и в скомпилированный скрипт ...\appslocal\SIDbfeea307c6443466918b00...\engine\chrome_command_line.txt
Из последнего файла строка удаляется при запуске скрипта. Это нормально?
-
@Antonio Ну поиск по изображение сильно вредит производительности, если искать по селекторам тоже самое?
-
@Antonio chrome_command_line.txt копируется из xml проекта.
-
@Antonio Если искать очень большую картинку можно любой сервер положить.
-
Картинки маленькие, кнопки как правило. Т.е. поиск по картинкам именно видео нагружает? Попробую переделать под селекторы.
-
@support, убрал из проекта все поиски по картинкам, вписал --disable-gpu-vsync в xml проекта, но проблема осталась.
-
@Antonio Есть возможность предоставить доступ на сервер?
-
@support, да, могу дать доступ.
-
@Antonio Хорошо, напишите на почту mail.to.twaego@gmail.com
-
@support, написал.
-
Посмотрел, на сервере полностью нагружен проц.
Нужно либо брать несколько серверов, либо сервер получше, либо оптимизировать существующий.
Но работает и так, просто рдп не успевает все отрисовывать.
-
@support, проц не нагружен. Послал запись экрана на почту.
-
Для тех, кто будет искать
В Windows есть лимит на количество GDI объектов в системе - 65536.
Когда он превышается - начинается то, что вы описываете.
Каждый поток в БАС создает приблизительно 100-500 таких объектов, отсюда такое ограничение.Я собрал версию БАС, которая использует этот ресурс по минимуму https://bablosoft.com/distr/BrowserAutomationStudioDevelopment/lesshandlers/BrowserAutomationStudioInstallAllInOne.exe
И если добавить в файле chrome_command_line.txt добавить такую строчку --disable-remote-fonts, и выполнить действие "Выполнить код" c параметром font_list("Arial")!
то количество выделяемых объектов уменьшится до 250.
Еще есть софт для просмотра этих объектов http://www.the-sz.com/products/bear/