Развертывание

Память BrowserContext в Chromium 151

Измерьте стоимость активных BrowserContext в Chromium 151 и задайте приемку с запасом для восстановления.

Документация

Нужна структурированная документация по теме Развертывание?

Эта статья относится к редакционной библиотеке. Для пошаговой настройки, справки и постоянных обновлений переходите сразу в соответствующий раздел docs.

Новая переменная емкости

Многие сервисы автоматизации размещают несколько активных BrowserContext в одном браузере. Каждый контекст сохраняет собственное хранилище и сеанс приложения, а группа разделяет запуск браузера. Это может уменьшить повторную работу, но стоимость контекста зависит и от версии браузера.

В некоторых сборках Chromium 151 начиная с 151.0.7922.108 нагрузка headless или автоматизации с большим числом активных контекстов имеет более высокий базовый расход памяти. Активный контекст может сопровождаться дополнительным renderer для интерфейса самого браузера. Поэтому память растет вместе с числом активных контекстов, даже если страница не менялась.

Это не утверждение о каждой сборке, платформе или нагрузке. Сравнение Linux x64 ниже показывает только порядок величины. Проверьте именно ту версию, хост, профиль и нагрузку, которые будут использоваться.

Планирование памяти группы браузераГруппа браузера содержит активные контексты, потребляет измеренную память и сохраняет запас для контроля приема задач.Группа браузераОбщие ресурсыБазовая версияАктивные контекстыКонтекст AКонтекст BИзмеренная цена контекстаЗапас памятиОставьте место для восстановлениядо приема новых задачИзмерьте группу и задайте ограниченный режим

Как читать сравнение

На одном хосте Linux x64 версия 151.0.7922.76 в этой нагрузке не показывала дополнительный omnibox UI renderer и потребляла около 120 MB на активный контекст. В сравнении с 151.0.7922.138 дополнительный renderer присутствовал, а расход составлял около 289 MB на контекст. Наблюдаемая разница была близка к 169 MB на контекст. В этих примерах дополнительный renderer обычно занимал от 250 до 280 MB.

Это не универсальные константы. Страницы с медиа, документами, загрузками, worker и крупными приложениями меняют результат. Учитывайте общую память браузера отдельно. Формула «общая база плюс измеренный расход на контекст и вариация нагрузки» помогает организовать измерения, но не дает обещания емкости. В этих примерах дополнительный renderer обычно занимал от 250 до 280 MB.

В руководстве Масштабирование BrowserContext описаны очереди, жизненный цикл и изоляция. Для этой ситуации версия Chromium становится дополнительным полем записи емкости.

Проверка обновления

До продвижения сборки запишите версию, систему и архитектуру, характеристики хоста, ограничения контейнера, графический режим, политику профилей, расширения, сеть и класс задачи. Повторите одну и ту же транзакцию на принятой и кандидатной версиях.

Измеряйте группу до создания контекстов, во время создания, в стабильной работе, в ожидании и после закрытия. Записывайте общий объем и число активных контекстов. Создание может дать краткий пик, а закрытие может завершаться не сразу, поэтому не возвращайте слот до окончания очистки.

Подтвержденное поведение не является постоянной утечкой. После закрытия контекста дополнительный процесс может освободиться. Но пока контекст жив, его стоимость сохраняется. Если создание идет быстрее закрытия, хост может достичь OOM. Следите за доступной памятью, давлением, CPU, задержками, очередью, завершенными задачами и перезапусками.

Порядок проверки выпуска описан в валидации версий браузера. Для сеансов с разделением идентичности используйте также документацию Per-Context.

Временное смягчение при запуске

Для затронутой нагрузки передайте оба имени вместе:

--disable-features=WebUIOmniboxPopup,WebUIOmniboxAimPopup

Эта настройка касается собственного интерфейса адресной строки браузера. Она не меняет JavaScript, DOM или CSS страницы. В headless обычно нет видимого эффекта, но настройку нужно считать временной и проверять на целевой версии.

Есть также настройка:

--disable-features=PreloadTopChromeWebUI

Она может уменьшить память дополнительного процесса, но не удаляет его, поэтому не является полной заменой. Будущий rollout Chromium может удалить или проигнорировать эти настройки. Это не исправление только для BotBrowser: после запуска измеряйте реальную память и повторяйте проверку при изменениях.

Планирование с запасом

Начинайте с доступной памяти хоста, а не с установленного объема. Оставьте место операционной системе, supervisor, журналам, сети, кэшу, восстановлению и пику создания. Затем вычтите общую базу браузера и колебания нагрузки. Остаток составляет бюджет активных контекстов.

При снижении запаса остановите прием новых задач и используйте ограниченную очередь. Запрос может ждать заданное время, получить ответ о нехватке емкости или перейти в другую утвержденную группу. Повторные попытки подчиняются тому же правилу. Создавайте контексты постепенно, чтобы избежать пика инициализации.

Сервис, создающий контекст, должен закрыть его, освободить аренду и подтвердить очистку. При превышении времени закрытия осушите и замените группу по политике. Увеличение лимита не решает неопределенное владение ресурсом. Общие рекомендации есть в оптимизации производительности.

Первый выпуск

Сохраняйте предыдущую версию до завершения наблюдения. Запустите кандидат в небольшой группе и следите за памятью, активными контекстами, доступной памятью, задержками создания и закрытия, возрастом очереди и завершенной работой. При росте давления сначала остановите прием, затем осушите затронутые группы.

После выпуска убедитесь, что закрытие освобождает дополнительный процесс и хост возвращается в ожидаемый диапазон восстановления. Повторяйте проверку после изменения браузера, хоста, профиля, страницы, расширения, графики или сети. Страница тарифов описывает возможности плана, но не заменяет измерение памяти хоста.

Chromium 151 можно использовать с BrowserContext, если лимит основан на измерениях для конкретной версии и нагрузки. Дополнительный renderer является реальной стоимостью живого контекста, его освобождение помогает восстановлению, а параметр запуска остается только проверенным временным средством.

#Chromium 151#браузерные контексты#память#масштабирование#развертывание#производительность

Переведите BotBrowser из исследований в продакшн

Используйте эти руководства, чтобы понять модель, а затем перейти к кроссплатформенной валидации, изолированным контекстам и масштабируемому браузерному развертыванию.