Безголовый Chromium — производительность

#google-chrome #video #google-chrome-devtools #chromium #headless

#google-chrome #Видео #google-chrome-devtools #chromium #безголовый

Вопрос:

Я боролся с безголовой производительностью Chromium. Мой план состоит в том, чтобы захватывать загруженный веб-сайт со скоростью не менее 30 кадров в секунду (или даже выше). Однако с увеличением разрешения частота возвращаемых кадров падает.

Для разрешения окна 720p я могу легко достичь ~ 35 кадров в секунду всякий раз, когда меняю разрешение на 1080p, тогда количество кадров снижается до ~ 20 кадров в секунду или даже ниже. Я запускаю chromium в Google Cloud Compute Engine на компьютере с 30 процессорами, который вообще не используется в полной мере.

Кто-нибудь из вас сталкивался с подобной проблемой?

Некоторые из моих настроек:

  • Для захвата кадров приложение использует событие Chrome devtools «Page.screencastFrame».
  • Облачный вычислительный движок Google — 30 процессоров, 30 ГБ памяти
  • Флаги: -disable-translate --disable-extensions --disable-background-networking --safebrowsing-disable-auto-update --disable-sync --metrics-recording-only --disable-default-apps --no-first-run --remote-debugging-port=9222 --user-data-dir=/var/app/CHROME --disable-setuid-sandbox --window-size=1920,1080 --disable-gpu --hide-scrollbars --user-agent=true --remote-debugging-address=0.0.0.0 --no-sandbox --no-zygote --headless --autoplay-policy=no-user-gesture-required --disable-notifications --disable-logging --disable-permissions-api

Комментарии:

1. Та же проблема. Безголовый Chrome в контейнере занимает 117 секунд, за пределами 8 секунд.

2. @MortenB вы решили проблему?

Ответ №1:

Я обнаружил, что если я запускал свои контейнеры в режиме ожидания, они работали быстрее, переход от установки Gitlab-CI к машине с гораздо более быстрыми дисками улучшил это.

Размер контейнера имеет значение (alpine), также у вашего контейнерного хоста есть очень быстрые твердотельные накопители. Запустив контейнер alpine версии v3.10 с chromium версии 77 на новой установке, я смог сократить время с 117 секунд до 43 секунд, но Alpine не настолько гибкий, и если вам нужно скомпилировать материал, он становится почти таким же большим, как контейнер ubuntu.

Комментарии:

1. не могли бы вы записать более подробно о «периоде молчания», что вы под этим подразумеваете?

2. @mbutan: период молчания означает лишь небольшую нагрузку на систему, больше ресурсов доступно для моего контейнера. Теперь я использую chrome v85 с драйверами v85, и все стало намного лучше.

3. @MorenB можете ли вы достичь скорости 30 кадров в секунду для контента 1080p? Я все еще испытываю трудности с производительностью скриншотов, даже если в системе много свободных ресурсов. Могу ли я спросить у вас спецификацию системы и какой результат вы получите при этом?

4. @mbutan: Я пробовал локально на своем твердотельном накопителе Ryzen7 с разрешением 2700x / 16 ГБ / 4×250 ГБ, и я получаю около 20 кадров в секунду при размере окна 1920×1080. В безголовом режиме используется только одно ядро, я полагаю, что оно привязано к процессору.

5. @MorenB именно это каким-то образом ограничено chromium, потому что ресурсы процессора на моем компьютере тоже свободны.