BotBrowser Trimmed для коротких сессий Linux x64
Как сравнить Standard и Trimmed на Linux x64, спланировать ресурсный бюджет, проверить короткие сессии и подготовить безопасный выпуск с откатом.
BotBrowser Team
Нужна структурированная документация по теме Развертывание?
Эта статья относится к редакционной библиотеке. Для пошаговой настройки, справки и постоянных обновлений переходите сразу в соответствующий раздел docs.
BotBrowser предоставляет урезанную сборку Linux x64 для контролируемых сравнений; он не гарантирует фиксированную скорость, равенство оборудования или продакшен-производительность.
Кратко
- Standard сохраняет полную функциональность браузера для длительных и интерактивных сессий; Trimmed рассчитан на короткие повторяемые сессии Linux x64, где подготовка повторяется.
- В опубликованном сравнении на одном хосте Trimmed быстрее завершил короткую нагрузку с меньшей нагрузкой на процессор и память, сохранив результат и очистку.
- Измеряйте полный цикл через
/usr/bin/time -vиVmHWMиз/proc/<pid>/status, а не одну загрузку страницы. - Ограничивайте пул в cgroup v2 через
memory.current,memory.maxи потолокMemoryMax=2G, сохраняя запас на восстановление ниже наблюдаемого предела. - Сначала выпускайте на небольшую кандидатную группу с проверенным откатом; любое различие в функции, результате или очистке возвращает работу на Standard.
Содержание
- Выберите сборку для рабочей нагрузки
- Когда Standard остается правильным вариантом
- Интерпретируйте открытые результаты в контексте
- Проведите разрешенную QA-проверку коротких сессий
- Постройте воспроизводимое сравнение
- Установите ресурсный бюджет и границы применения
- Практический итог
Выберите сборку для рабочей нагрузки
Standard и Trimmed решают разные эксплуатационные задачи. Standard остается исходным выбором для длительных сессий, сложных интерактивных процессов и широкого набора функций браузера. Trimmed ориентирован на короткие повторяемые сессии в среде Linux x64, где подготовка браузерного контекста занимает заметную часть полного времени задания. BotBrowser может предложить более лёгкую сборку для коротких разрешенных сессий в контролируемой среде; он не гарантирует тот же результат на другом хосте, в другой версии или при другой нагрузке.
Разница становится существенной, когда рабочий процесс часто открывает контекст, выполняет небольшой набор разрешенных действий и корректно завершает сессию. Для длительного сценария подготовка составляет малую долю общего времени. Для короткого сценария та же подготовка повторяется постоянно и влияет на очередь, загрузку хоста и стоимость выполнения.
Выбор нельзя делать только по названию сборки или одному числу из чужого теста. Сначала определите фактическую длительность задания, обязательные функции, требования к завершению и доступный запас ресурсов. Затем сравните обе сборки на одном и том же разрешенном наборе задач.
Когда Standard остается правильным вариантом
Standard подходит для большинства новых развертываний. На нем удобно создать первую воспроизводимую базовую линию и проверить полный рабочий цикл без преждевременного сужения функционального покрытия.
Оставляйте задачу на Standard, если выполняется хотя бы одно из следующих условий:
- сессия длительная, поэтому время подготовки мало влияет на общий результат;
- процесс включает медиа, печать, загрузки, расширения или сложное состояние страницы;
- набор страниц и действий часто меняется и пока не имеет устойчивого эталона;
- команда еще не разделила короткие и длительные задачи по разным очередям;
- завершение, отмена и очистка не проверяются как часть результата;
- важнее максимально широкое функциональное покрытие, чем стоимость частого запуска.
Standard не означает медленную работу. При длительной сессии основное время часто определяют сеть, страница и действия приложения. Оптимизация только начального этапа в такой ситуации почти не меняет пропускную способность. Больше пользы дают корректные пределы очереди, своевременное закрытие страниц и измерение реальной нагрузки.
Длительную сессию надо читать по фактической кривой памяти, а не по стартовому значению: во время работы периодически берите VmRSS из /proc/<pid>/status, а после завершения смотрите VmHWM с максимальным значением. Если VmHWM заметно выше стартового VmRSS, ограничение создает активность страницы, а не этап запуска, и смена сборки его не снимет.
Новая система также выигрывает от периода работы на Standard. За это время можно определить критерии успеха, собрать безопасные эксплуатационные метрики и проверить восстановление после обычных сбоев. Если наблюдения показывают, что подготовка короткой сессии действительно стала заметным ограничением, появляется обоснованная причина для сравнения с Trimmed.
Trimmed следует рассматривать для стабильной очереди коротких сессий на Linux x64. Это могут быть разрешенные проверки доступности страниц, региональные регрессионные проверки, контроль согласованности приватного профиля и короткие корпоративные процедуры, для которых заранее определены начало, успешное завершение и очистка.
Подходящая среда обычно имеет следующие свойства:
- задачи короткие и похожи по структуре;
- время подготовки заметно в полном времени выполнения;
- обязательные возможности браузера заранее перечислены и проверены;
- очередь ограничена и поддерживает обратное давление;
- отмена и очистка возвращают ресурсы до приема новой работы;
- релиз можно провести на отдельной группе узлов;
- предыдущая утвержденная сборка остается доступной для отката.
Trimmed не является универсальной заменой Standard. Его преимущество зависит от совпадения сборки, типа задания и среды исполнения. Если после смены страниц или версии браузера сессии стали длиннее, прежнее решение может потерять смысл. Поэтому принадлежность задачи к Trimmed должна быть записанным эксплуатационным решением, а не постоянным свойством проекта.
Перед запуском проверьте зависимости целевого образа. Запустите ldd на двоичном файле Trimmed и найдите not found: отсутствующий libnss3, libatk1.0-0 или libgbm1 проявится позже как сбой запуска, похожий на сбой задания, и повторится на каждом хосте с этим образом, пока его не исправят.
Интерпретируйте открытые результаты в контексте
В открытом сравнении BotBrowser Standard и BotBrowser Trimmed использовались одинаковые условия Linux x64, совпадающие основные версии, совместимые пакеты профилей и одна последовательность разрешенных действий. Завершение и очистка проверялись после каждого повтора.
В той контролируемой среде Trimmed быстрее выполнил короткие сессии и создал меньшую нагрузку на процессор и память. Обе сборки завершили представительную работу и вернули хост в чистое рабочее состояние. Результат служит основанием для оценки Trimmed, когда повторная подготовка занимает заметную часть общего времени задачи.
Исходная методика доступна в разделе Trimmed Build на странице открытых тестов. Она показывает, как сохранить сопоставимые условия и связать вывод с конкретной рабочей нагрузкой.
Из этих результатов следуют три практических вывода.
Первый: стоимость подготовки нужно измерять отдельно для короткой сессии. Именно этот этап повторяется чаще всего и может определять время ожидания в очереди.
Второй: пики важны не меньше средних значений. Хост может выглядеть свободным большую часть времени, но терять запас во время одновременной подготовки, первой навигации или массового завершения заданий.
Третий: скорость имеет смысл только вместе с успешным завершением и чистым выходом. Более короткое время не компенсирует неполный результат, ненадежную отмену или ресурсы, которые не вернулись в рабочий пул.
Открытый результат не задает предел для другого сервера. Страницы, сеть, образ системы, графическая конфигурация, хранилище и соседние службы меняют форму нагрузки. Опубликованное сравнение показывает направление улучшения в контролируемых условиях. Производственный бюджет должен опираться на собственный воспроизводимый тест.
Для локального решения сохраните одинаковыми класс хоста, образ системы, маршрут, набор страниц и критерии завершения. Чередуйте порядок запусков Standard и Trimmed, чтобы временные изменения сети или внешнего сервиса не влияли только на один вариант. Повторяйте сравнение до тех пор, пока направление результата не станет устойчивым. Затем проверьте его на ограниченной группе узлов с готовым планом возврата.
Схема связывает производительность с управлением изменением. Кандидат переходит дальше только тогда, когда предыдущий этап дал понятный и воспроизводимый результат. Нельзя заменять проверку функционального покрытия красивой диаграммой ресурсов.
Проведите разрешенную QA-проверку коротких сессий
Пустая страница хорошо проверяет сам факт запуска, но плохо представляет производственную работу. Репрезентативная сессия должна включать разрешенный вход, необходимые действия, подтверждение результата, закрытие страницы и возврат ресурсов.
Для каждого класса задания зафиксируйте:
- владельца страницы или процесса и основание для проверки;
- входную точку и разрешенный набор действий;
- наблюдаемый признак успешного завершения;
- допустимое время выполнения и порядок отмены;
- правила повторной попытки;
- требования к журналам и срок их хранения;
- условия, после которых ресурс считается возвращенным.
Если реальная задача включает снимок, загрузку, документ или фоновую активность, оставьте это в тесте. Искусственное упрощение почти всегда завышает ожидаемую емкость. Редкие тяжелые сценарии лучше вынести в отдельный класс, чтобы они не искажали бюджет основной короткой очереди.
Учетные данные следует получать через принятый менеджер секретов с минимально необходимыми правами. Их нельзя помещать в профиль, сценарий теста, отчет или обычный журнал. Для сравнения производительности достаточно результата задания и эксплуатационных метрик без сохранения содержимого страницы.
Обе сборки измеряйте одним инструментом. /usr/bin/time -v в конце выдает Maximum resident set size (kbytes) для дерева процессов, которое создает запуск браузера; при необходимости поштучных значений берите ps -o rss= -p <pid> с фиксированным интервалом. В выводе ps поле rss это резидентный размер, vsz виртуальный, и давлению на память хоста соответствует только первое.
Постройте воспроизводимое сравнение
Standard и Trimmed сравниваются при одинаковых условиях. Совпадать должны версия BotBrowser, профиль, образ Linux x64, тип хоста, сетевой маршрут, графическая конфигурация, версия задачи и политика прогрева. Между двумя сериями меняется только тип сборки.
Порядок запусков тоже влияет на результат. Если один кандидат всегда получает свободный хост, а другой запускается после тяжелой соседней работы, сравнение отражает состояние инфраструктуры. Чередуйте кандидатов или используйте одинаково настроенные изолированные узлы. Перед серией записывайте доступную память, состояние очереди и версию развертывания.
Измеряйте полный жизненный цикл. Полезно разделить его на четыре эксплуатационных этапа:
- подготовка браузера;
- подготовка контекста;
- разрешенная работа страницы;
- закрытие и очистка.
Такое деление показывает, где возникло изменение, не раскрывая внутреннее устройство браузера. Для короткой сессии выигрыш часто появляется в первых двух этапах. Четвертый этап подтверждает, что освободившаяся емкость действительно доступна следующему заданию.
Не ограничивайтесь средним значением. Сохраняйте распределение полного времени, отклонения, отмены, повторные попытки и время очистки. Кандидат с редкими длинными задержками может создавать более сложную очередь, даже если его среднее значение выглядит лучше.
Запись теста должна содержать версию сборки, идентификатор образа, класс хоста, редакцию задачи, категорию сети, период запуска и место хранения результата. Эти поля позволяют повторить сравнение после обновления и отделить изменение браузера от изменения инфраструктуры.
Фиксированное число сессий на хост быстро устаревает. Ресурсный бюджет отвечает на более полезный вопрос: сколько работы можно принять, сохраняя цель сервиса и запас на восстановление.
Создайте отдельный бюджет для каждого класса задач. В него входят доступная память, загрузка CPU, время очереди, длительность задания и резерв для отмены или замены браузера. Результат предельного теста не должен автоматически становиться рабочим лимитом. Рабочая точка обязана находиться ниже места, где растет задержка или исчезает запас. О том, как превратить ограничения CPU и памяти в бюджет, не путая их с идентичностью браузера, читайте в статье Ограничения ресурсов браузерного контейнера: практический метод, где разобраны таблица бюджета и мониторинг давления.
Увеличивайте нагрузку постепенно. На каждом шаге дождитесь устойчивого состояния и сравните завершение, задержку, использование памяти, давление CPU, очистку и очередь. Остановите увеличение, когда хотя бы один показатель перестает соответствовать цели. Утвержденный бюджет запишите вместе с версиями и условиями, для которых он действителен. Об измеренной кривой памяти, границах приема и откате для долгих сессий читайте в статье Планирование ёмкости BrowserContext, где описано, как задавать обратимые границы приема и очереди.
Ограничения полезно применять на двух уровнях. Группа браузеров контролирует активную и подготавливаемую работу. Хост контролирует общий расход всех групп. Когда один бюджет исчерпан, диспетчер приостанавливает прием, а не складывает неограниченное количество запросов в память.
В cgroup v2 бюджет принимает конкретную форму. Читайте memory.current и memory.max в контрольной группе, где живет пул, и запускайте пул с жестким потолком, например systemd-run --scope -p MemoryMax=2G. memory.current включает page cache, который ядро может вернуть, поэтому сверяйте его с memory.stat, прежде чем называть разницу памятью приложения.
Короткие сессии требуют контроля скорости подготовки. Даже при нормальной устойчивой нагрузке одновременный старт большого количества заданий создает краткий пик. Поэтапный прием сглаживает этот пик и сохраняет ресурсы для уже выполняемой работы и корректного завершения.
Установите ресурсный бюджет и границы применения
Кандидат оценивается по четырем направлениям: результат страницы, согласованность приватного профиля, стоимость полного цикла и восстановление. Все четыре части имеют одинаковое значение для выпуска.
Проверка результата подтверждает, что разрешенные страницы и действия завершаются ожидаемо. Проверка профиля подтверждает использование утвержденного пакета и региональной конфигурации. Сравнение производительности охватывает весь цикл. Проверка восстановления включает отмену, обычный тайм-аут, остановку приема новой работы и замену браузера.
Используйте образ и конфигурацию, которые планируется выпустить. Результат рабочего ноутбука помогает заметить очевидную проблему, но не заменяет проверку на целевом Linux x64. Контейнерные ограничения, графическая среда, хранилище и сеть способны заметно изменить итог. О более широкой проверке хостов, профиля и ответственных за развертывание до выпуска читайте в статье Оценка кроссплатформенной согласованности браузера до развертывания, где описаны матрица хостов и целей и версионированная базовая линия.
Флаги запуска входят в запись о выпуске. Запуск с --no-sandbox создает меньше процессов и удерживает меньше памяти, чем тот же запуск с включенной песочницей Chromium, поэтому сравнение корректно только при одинаковом режиме песочницы, одинаковом наборе зависимостей и одинаковом жизненном цикле --user-data-dir с обеих сторон.
Собирайте только данные, нужные для решения о выпуске. Обычно достаточно статуса задания, времени этапов, состояния очереди, использования ресурсов и подтверждения очистки. Если снимок или журнал нужен для разбора, поместите его в защищенное хранилище с ограниченным доступом и сроком удаления.
Различие пользовательского результата между Standard и Trimmed считается причиной остановить выпуск. Преимущество по времени или памяти не должно компенсировать неполную страницу, другое состояние или ненадежное закрытие. До выяснения причины очередь остается на ранее утвержденной сборке.
После успешного сравнения направьте на Trimmed только один четко описанный класс коротких задач. Создайте отдельную группу развертывания и оставьте остальные очереди на Standard. Такое разделение ограничивает область изменения и сохраняет контрольную линию.
Для кандидатной группы нужны собственные показатели завершения, очереди, отмены, очистки и запаса ресурсов. Метрики должны идентифицировать версию и класс работы, но не содержать профиль, учетные данные или содержимое страниц.
Кандидатная и Standard-группы должны сниматься одинаковым способом: pgrep -c -f chrome считает процессы одного запуска, ps -o rss= -p <pid> дает резидентную память конкретного браузера. При одинаковом способе съема динамику замены можно сравнивать.
Во время выпуска не меняйте одновременно тип сборки, образ хоста, сетевого поставщика, профиль и сценарий. Несколько изменений лишают результат полезной причинной связи. Если комбинация необходима, вводите ее этапами и после каждого этапа повторяйте короткий контрольный тест.
Расширяйте группу только после устойчивого периода без ухудшения результата. В решении укажите применимые задачи, подтверждающие данные, владельца и условие возврата. Свободная емкость сама по себе не дает основания переносить на Trimmed длительную или ранее не проверенную работу.
Откат является обычной операцией управления версией. До начала выпуска сохраните предыдущий утвержденный образ, ссылку на совместимый профиль, конфигурацию развертывания и метки очередей. Проверьте, что диспетчер различает Standard, текущий Trimmed и предыдущий Trimmed.
Откат должен подтверждать, что именно восстановлено, а не только где это лежит. Сохраняйте вывод sha256sum для двоичного файла браузера и точный путь --bot-profile вместе с выпуском: после переключения новый sha256sum обязан совпасть с утвержденным значением, а файл профиля должен быть тем, чья подпись прошла проверку.
При срабатывании условия отката сначала остановите прием новых заданий кандидатной группой. Разрешите активным сессиям завершиться в пределах установленного срока. Остальные завершите через проверенную процедуру отмены. Не заменяйте двоичный файл внутри работающего браузера и не переносите активное состояние между сборками.
После опустошения группы направьте новую работу на утвержденную версию. Убедитесь, что очередь, завершение и ресурсный запас вернулись в обычный диапазон. Сохраните версию, время, класс задач и необходимые эксплуатационные показатели для последующего анализа.
Повторный выпуск начинается с нового парного сравнения. Сначала определите, связано ли изменение со сборкой, страницей, сетью, образом хоста или сочетанием релизных настроек. Затем обновите критерии приемки и снова используйте ограниченную группу.
Свяжите решение о восстановлении с версией, классом задачи, образом хоста и ответственным за выпуск. Сохраните сопоставимые результаты кандидата и возвращенной сборки в одной записи. Перед закрытием проверки подтвердите завершение задания, очистку временного состояния, движение очереди и готовность группы принять следующую разрешенную работу.
Решение в пользу Trimmed действует только для записанного сочетания версии, Linux x64, класса хоста, профиля и задачи. Существенное изменение любого из этих элементов требует повторной проверки.
Оставайтесь на Standard, если Trimmed не покрывает обязательную функцию, результат нестабилен, сессии стали длительными или команда не может гарантировать ограниченную очередь и корректную очистку. Это нормальный выбор риска, а не отказ от оптимизации.
Продолжайте использовать Trimmed, когда преимущество повторяется на реальной короткой нагрузке, функциональный результат совпадает с утвержденным ожиданием, а бюджет сохраняет запас на восстановление. Периодически запускайте контрольную серию Standard, чтобы убедиться, что первоначальная разница не исчезла после обновлений.
Пересмотр требуется после обновления BotBrowser, системного образа, оборудования, графической конфигурации, профиля, сети или самой задачи. Поводом для внеплановой проверки также служат рост очереди, более медленное закрытие, снижение свободной памяти и частая замена браузерных групп.
- Короткие сессии отделены от длительных и функционально сложных задач.
- Страницы, учетные записи и действия разрешены их владельцами.
- Для каждой задачи определены успех, отмена, очистка и срок выполнения.
- Standard и Trimmed сравнивались при одинаковой версии и инфраструктуре.
- Тест охватывал подготовку, работу страницы, завершение и возврат ресурсов.
- Проверены распределение времени, пики ресурсов, очередь и поведение при отмене.
- Производственный бюджет ниже наблюдаемой границы ухудшения и содержит резерв.
- Диспетчер применяет ограниченную очередь, обратное давление и контроль подготовки.
- Кандидатная группа получает только утвержденные классы коротких задач.
- Предыдущая версия доступна, а процедура опустошения группы проверена.
- Условие отката записано до расширения группы.
- Назначены события, после которых сравнение нужно повторить.
Для общего планирования хоста используйте руководство по производительности. Подготовка Linux описана в настройке headless-сервера. Варианты лицензирования и доступность Trimmed указаны на странице тарифов.
Источники
Практический итог
Standard остается безопасным выбором, а Trimmed заслуживает парного теста только тогда, когда короткие разрешенные сессии повторяются, а команда умеет ограничивать очередь, опустошать группу и откатываться. Локальная база опирается на три числа: pgrep -c -f chrome для процессов одного запуска, ps -o rss= -p <pid> для резидентной памяти и VmHWM для пика; снимите их на обеих сборках с одной редакцией задачи, затем выпускайте на небольшую кандидатную группу.
Эта статья входит в руководство: Развёртывание и выпуск браузера: операционная карта
Похожие статьи
Планирование ёмкости BrowserContext
РазвертываниеМасштабирование изолированных контекстов BotBrowser
РазвертываниеПамять BrowserContext в Chromium 151: пример версии
РазвертываниеПроизводительность браузера: оптимизация в масштабе
РазвертываниеОграничения ресурсов контейнера: практический метод
РазвертываниеРазвёртывание и выпуск браузера: операционная карта
Переведите BotBrowser из исследований в продакшн
Используйте эти руководства, чтобы понять модель, а затем перейти к кроссплатформенной валидации, изолированным контекстам и масштабируемому браузерному развертыванию.