Déploiement

Mémoire des BrowserContext avec Chromium 151

Mesurez le coût mémoire des BrowserContext actifs sous Chromium 151 et définissez une admission avec marge de reprise.

Documentation

Vous voulez la documentation structurée pour Déploiement ?

Cet article fait partie de la bibliothèque éditoriale. Pour les étapes de configuration, la référence et les mises à jour continues, passez directement à la section docs.

Une nouvelle donnée de capacité

De nombreux services d'automatisation regroupent plusieurs BrowserContext actifs dans un même navigateur. Chaque contexte conserve son stockage et sa session applicative, tandis que le groupe partage le démarrage du navigateur. Ce modèle peut réduire le travail répété, mais son coût dépend aussi de la version du navigateur.

Dans certaines versions Chromium 151 à partir de 151.0.7922.108, les charges headless ou d'automatisation qui gardent beaucoup de contextes ouverts ont une base mémoire plus élevée. Un contexte actif peut s'accompagner d'un renderer supplémentaire lié à l'interface du navigateur. La mémoire augmente donc avec le nombre de contextes actifs, même lorsque la page n'a pas changé.

Ce comportement ne décrit pas toutes les versions, toutes les plateformes ni toutes les charges. La comparaison Linux x64 ci-dessous fournit un ordre de grandeur à mesurer, pas une garantie. Répétez la mesure avec la version, l'hôte, le profil et la charge réellement prévus.

Planification mémoire des groupes de navigateurUn groupe contient des contextes actifs, consomme une mémoire mesurée et garde une marge pour contrôler l'admission.Groupe navigateurRessources partagéesVersion mesuréeContextes actifsContexte AContexte BCoût mesuré par contexteMarge mémoireRéserver la repriseavant d'accepter du travailMesurer le groupe puis borner son fonctionnement

Lire la comparaison

Sur un hôte Linux x64, 151.0.7922.76 n'affichait pas le renderer UI omnibox supplémentaire dans cette charge, avec environ 120 MB par contexte actif. La comparaison 151.0.7922.138 affichait ce renderer et environ 289 MB par contexte. L'écart observé était donc proche de 169 MB par contexte. Le renderer supplémentaire représentait souvent 250 à 280 MB dans ces exemples.

Ces valeurs varient avec les pages, les médias, les téléchargements, les workers et les documents. Ajoutez la mémoire partagée du navigateur et la variation de la charge. Le modèle utile est une base partagée plus une pente mesurée par contexte, mais il ne faut pas en faire une constante universelle.

Le guide Adapter la charge avec les profils Per-Context traite des files, du cycle de vie et de l'isolation. Ici, la version Chromium devient une donnée supplémentaire du dossier de capacité.

Vérifier une mise à jour

Avant la promotion, consignez la version, le système et l'architecture, l'hôte, les limites du conteneur, le mode graphique, la politique de profils, les extensions, le réseau et la classe de tâche. Rejouez la même tâche sur la version acceptée et la candidate.

Mesurez le groupe avant la création, pendant la création, en activité stable, en attente et après la fermeture. Notez le total du groupe et le nombre de contextes actifs. La création peut produire un pic temporaire. La fermeture peut être asynchrone, donc ne rendez pas un emplacement avant la fin du nettoyage.

Le comportement confirmé n'est pas une fuite permanente. Après la fermeture d'un contexte, le processus supplémentaire peut être libéré. Le coût reste toutefois présent tant que le contexte reste ouvert. Une création plus rapide que la fermeture peut conduire à l'OOM. Suivez mémoire disponible, pression mémoire, CPU, latences, file d'attente, réussites et redémarrages.

La validation des versions du navigateur aide à associer version et paquet de profils. Pour un travail avec séparation d'identité, consultez aussi la documentation Per-Context.

Mesure temporaire au démarrage

Pour la charge concernée, essayez ensemble les deux noms suivants :

--disable-features=WebUIOmniboxPopup,WebUIOmniboxAimPopup

Cette option concerne l'interface de la barre d'adresse du navigateur. Elle ne modifie ni le JavaScript, ni le DOM, ni le CSS de la page. En headless, l'effet visible est généralement nul. L'option reste temporaire et doit être mesurée sur la version cible.

Une autre option peut réduire la mémoire sans retirer le processus supplémentaire :

--disable-features=PreloadTopChromeWebUI

Elle ne constitue donc pas une solution complète. Un futur déploiement Chromium peut retirer ou ignorer ces options. Ce n'est pas une correction propre à BotBrowser. Observez la mémoire réelle après le démarrage et ne transformez pas l'option en dépendance permanente.

Dimensionner avec une marge

Partez de la mémoire disponible sur l'hôte, pas de la mémoire installée. Réservez l'espace du système, du superviseur, des journaux, du réseau, du cache et de la récupération. Déduisez ensuite la base partagée et la variation de charge. Le reste forme le budget des contextes actifs.

Lorsque la marge baisse, arrêtez l'admission et utilisez une file bornée. Une nouvelle demande peut attendre une durée définie, recevoir une réponse de capacité ou aller vers un groupe approuvé. Les nouvelles tentatives suivent la même règle. Cadencez la création pour éviter un pic de démarrage.

Le service qui crée un contexte doit le fermer, libérer son bail et confirmer le nettoyage. Si la fermeture dépasse le délai observé, drainez le groupe puis remplacez-le selon la politique. Augmenter la limite ne résout pas une propriété incertaine des ressources. Les pratiques générales sont détaillées dans Optimiser les performances.

Première mise en production

Conservez la version précédente jusqu'à la fin de l'observation. Déployez la candidate sur un petit groupe et suivez mémoire, contextes actifs, latence de création et de fermeture, âge de file et travail terminé. Si la pression augmente, suspendez l'admission avant de drainer les groupes concernés.

Après le déploiement, confirmez que la fermeture libère bien le processus supplémentaire et que l'hôte revient dans sa plage de reprise. Recommencez après tout changement de navigateur, d'hôte, de profil, de page, d'extension, de graphique ou de réseau. La page tarifaire décrit les capacités du plan, mais elle ne remplace pas la mesure de la mémoire de l'hôte.

Chromium 151 peut donc fonctionner avec des BrowserContext, à condition que la limite soit fondée sur une mesure par version et par charge. Le coût supplémentaire existe pendant la vie du contexte, sa libération aide la reprise, et l'option de démarrage ne vaut que comme mesure temporaire validée.

#Chromium 151#contextes navigateur#mémoire#mise à l’échelle#déploiement#performances

Faites passer BotBrowser de la recherche à la production

Utilisez ces guides pour comprendre le modèle, puis passez à la validation multi-plateforme, aux contextes isolés et au déploiement navigateur prêt pour l'échelle.