Mémoire partagée · Pics de mémoire · Listes autorisées de capacités · Arbre de symptômes et runbook en six étapes
OpenClaw sur Docker réussit souvent le premier test de fumée : les canaux répondent, openclaw doctor semble bien.Cela prouve seulement que le plan de contrôle et le chemin du modèle sont à peu près sains.Dès que vous activez les compétences de gestion de pages, les captures d'écran ou Chromium sans tête, la charge de travail passe à une pile de rendu de navigateur avec une mémoire saturée et une utilisation intensive de la mémoire partagée.Sur un VPS, le mode d'échec est rarement une ligne de journal polie : vous voyez des pages vierges intermittentes, des plantages d'onglets aléatoires ou des sorties soudaines de MOO qui sont interprétées à tort comme des modèles lents ou des pages anti-bot.Ce playbook vous donne une matrice symptômes-paramètres pour shm_size et mem_limit, puis un runbook en six étapes qui maintient les modifications divisées en deux.Associez-le à l'Introduction au VPS Exit 137 et à la Compose production baseline pour que la mise en réseau, l'échauffement WASM et les pics du navigateur soientpas débogué comme un seul incident enchevêtré.
De nombreuses équipes valident OpenClaw sur un VPS en prouvant que les messages circulent et que le médecin est vert.Cela est nécessaire mais pas suffisant pour les compétences de classe navigateur.Headless Chromium crée de grands mappages anonymes et des tampons synthétiques ;lorsque ceux-ci entrent en collision avec les 64 Mo /dev/shm par défaut de Docker ou une limite de mémoire agressive du groupe de contrôle, le symptôme est souvent une interface utilisateur vide, des plantages d'onglets ou des délais d'expiration de capture d'écran plutôt qu'une sortie immédiate 137. L'incident est alors mal acheminé vers la latence du modèle, les règles anti-bot du site ou les tentatives de canal.Les ingénieurs d'exploitation perdent des heures à régler les délais d'expiration des modèles alors que la véritable contrainte est la mémoire partagée et le pic RSS de la pile de rendu.
Le succès d'une seule page est confondu avec un test de charge : le chargement d'une page d'accueil marketing n'est pas le même stress qu'une connexion en plusieurs étapes, de longues captures à défilement ou des onglets simultanés ;le trafic de production augmentera la mémoire et la pression shm sans avertissement.
Ignorer le couplage entre /dev/shm et la mémoire hôte : Chromium préfère les grands segments de mémoire partagée ;RSS dans les statistiques du docker peut sembler modeste alors que dmesg affiche déjà les événements de limitation de groupe de contrôle ou d'oom-kill.
Capacités étendues de copier-coller : l'ajout de SYS_ADMIN pour contourner les frictions du bac à sable étend le rayon d'action des bogues du navigateur jusqu'à la compromission de l'hôte ;les évaluateurs ont besoin d'un compromis écrit en matière de menace.
En mélangeant cela avec les incidents de proxy inverse et d'allowOrigins : les erreurs d'interface utilisateur de contrôle sans bouclage et les suppressions de WebSocket appartiennent au runbook de mise en réseau Compose ;ne triangulez pas les arbres de défaillances non liés dans une seule fenêtre de changement.
Empilage de tâches de navigateur lourdes sur la même instance que les canaux de discussion : les automatisations par lots de nuit peuvent briser un profil qui semblait stable pendant les pings de jour, à moins que vous ne prévoyiez des pics et des profils d'isolement.
Encodez les cinq taxes sous forme de modèles interdits explicites et de tests d'absorption obligatoires.Imprimez-les sur la première page de votre demande de modification afin que personne n'étende silencieusement ses privilèges pour faire une démo.La section suivante indexe les symptômes par paramètres afin que les ingénieurs de garde puissent arrêter le saignement sans relire chaque document en amont.
Le tableau ci-dessous est indexé en fonction de ce que vous observez en premier, et non en fonction des noms de paramètres, car les incidents arrivent sous forme de douleur visible par l'utilisateur.Après chaque modification, capturez les pics de statistiques Docker et une courte tranche de journal Gateway ;ne modifiez qu'un seul bouton par expérience pour que les restaurations restent honnêtes.
| Symptôme observé | Vérifier en premier | Cause probable et action |
|---|---|---|
| Écran blanc intermittent, Aw Snap, onglet plante | shm_size, utilisation /dev/shm | La valeur par défaut de 64 Mo est souvent trop petite ;essayez 512 m puis 1g et limitez les pages simultanées. |
| Le processus disparaît, sortie 137 | mem_limit, échange d'hôte, compteurs oom_kill | Le pic du navigateur et l'ensemble des résidents du nœud ont dépassé le groupe de contrôle ;augmenter les limites par étapes ou fractionner les instances ;voir Amorce de sortie 137. |
| Erreurs d’autorisation immédiate ou d’appareil | cap_add, appareils, profil seccomp | Différence avec les extraits de composition officiels ;ajoutez la surface minimum, pas un sac de casquettes privilégiées. |
| Processeur bloqué mais navigation bloquée | Indicateurs de rendu logiciel, tentatives de navigation infinies dans les compétences | Nouvelles tentatives et délais d'attente liés ;vérifiez que la compétence n'est pas rechargée à chaud en boucle. |
| Seuls certains sites échouent | Empreinte digitale TLS, HTTP/2, sortie régionale | Si les signaux pointent vers le réseau plutôt que vers le groupe de contrôle, pivotez vers les tests de sortie au lieu d'empiler les ajustements shm. |
La stabilité des compétences de classe navigateur repose principalement sur trois faits vérifiables : mémoire maximale, mémoire partagée et liste autorisée de fonctionnalités ;tout le reste est un réglage secondaire.
Les articles de la communauté et les directives officielles de Docker en 2026 recommandent toujours shm_size explicite pour les piles qui intègrent l'automatisation du navigateur (généralement dans la bande 512 Mo à 1 Go), associées à un plafond de mémoire clair.Vous n'avez pas besoin de mémoriser les chiffres magiques des fournisseurs, mais vous avez besoin de l'expression les valeurs par défaut ne suffisent pas dans le vocabulaire de votre équipe, ainsi que d'un élément de capacité distinct pour les fenêtres de lots de nuit lorsque les compétences récupèrent les tableaux de bord ou capturent des ensembles de preuves.
La séquence ci-dessous correspond à la Compose production baseline.html">Compose production baseline : observer, modifier une variable, test d'imprégnation, archiver.Collez les résultats dans le ticket au lieu de raconter les modifications dans le chat.
Épinglez la référence de l'image : notez le résumé ou la balise immuable avant de toucher aux paramètres du navigateur ;évitez les dérives de production sur :latest lors du débogage des pics.
Capturer la ligne de base : exécutez la même compétence trois fois ;enregistrez les pics des statistiques Docker, df -h /dev/shm à l'intérieur du conteneur et les fenêtres de journal de la passerelle.
Modifiez shm uniquement : augmentez shm_size à 512 m ou 1g, gardez tout le reste fixe, réexécutez la même compétence trois fois.
Ensuite, ajustez mem_limit : si Exit 137 ou oom_kill persiste, augmentez mem_limit par étapes d'environ 25 % et vérifiez si le swap est désactivé sur l'hôte.
Réduire les fonctionnalités : si les extraits officiels nécessitent des cap_add ou des nœuds de périphérique spécifiques, documentez l'erreur exacte que vous corrigez ;évitez SYS_ADMIN sauf si le modèle de menace est explicite.
Points d'annulation d'archive : valide le fragment de composition et le résumé transmis ;conserver la restauration sous forme de bloc copier-coller compose down && compose up -d.
services:
openclaw:
image: ghcr.io/openclaw/openclaw:<pin-a-digest-not-latest>
shm_size: "1g"
mem_limit: "4g"
# keep control plane on 127.0.0.1; terminate TLS at the reverse proxy
# align json-file rotation and healthcheck start_period with the baseline article
Conseil : si vous avez besoin d'une deuxième pile de navigateur plus lourde sur le même hôte, lisez l'isolation multi-instance pour les ports et les volumes avant de cloner ce runbook.
Cette section répertorie uniquement les faits que vous pouvez indiquer dans la configuration ou la surveillance, et non les vibrations comme si le navigateur semblait instable.Traitez les nombres comme des bandes de départ et validez avec vos propres compétences.
shm_size comme étant égal à mem_limit ;commencez à 512 Mo, validez les captures longues, puis envisagez un niveau de 1 Go, courant dans la documentation de la communauté 2026.healthcheck start_period est trop court, Compose redémarre pendant l'échauffement et ressemble à un floconnement aléatoire.Alignez les champs avec l'article de base.Avertissement : ne faites pas alterner les certificats de proxy inverse, les clés de modèle et les limites de ressources du navigateur dans la même modification ;les mouvements triples rendent la restauration non bissecable.Les chemins TLS se trouvent dans le guide du proxy inverse.
Une fois le trafic diurne stable, posez la question organisationnelle : cette même instance peut-elle exécuter de gros lots de navigateur pendant la nuit ?Répondre après une panne coûte cher.
| Modèle | Quand c’est pertinent | Risque principal |
|---|---|---|
| Instance mixte unique | Pilotes personnels et compétences légères sans longues captures | L'empilement des pics est invisible ;un MOO supprime les canaux et les outils ensemble. |
| Profil de navigateur dédié | Deux piles de composition sur une machine avec des volumes divisés | Nécessite des listes de contrôle d’isolement strictes ;voir l'article multi-instance. |
| Nœud dédié 24h/24 et 7j/7 | Production d'équipe nécessitant un SLA prévisible | Coût plus élevé, mais vous bénéficiez d’une capacité d’approbation et d’un historique des modifications vérifiable. |
Le réglage ad hoc du VPS est flexible au début, mais la production OpenClaw a besoin de trois artefacts qui manquent souvent aux piles informelles : capacité réservée, images épinglées et modifications enregistrées par ticket.Lorsque les compétences doivent coexister avec les builds iOS, les transferts de postes de travail et les agents toujours actifs, déplacer les pics du navigateur vers une empreinte prévisible 24h/24 et 7j/7 bat les paramètres sans fin.Pour les équipes qui ont besoin d'une capacité Mac dédiée et stable dans la région avec une clarté opérationnelle, la location cloud VpsMesh Mac Mini est généralement la meilleure solution : une marge plus facile pour les rafales de navigateur et le disque, alignée sur le récit de la collaboration Mac Mesh.Consultez les tarifications et le centre d'aide.
Les moteurs de rendu de style Chrome s'appuient sur la mémoire partagée pour les grands tampons.Lorsque /dev/shm est petit, vous pouvez voir des écrans blancs intermittents ou des plantages d'onglets alors que le processeur semble toujours correct.Augmentez d'abord shm_size à 512 m ou 1 g, puis recoupez les lignes de mémoire dans le amorce de sortie 137.
Pas toujours.Commencez par des extraits de composition officiels avec le moins de privilèges.Si vous devez ajouter des plafonds privilégiés, documentez le compromis en matière de menace.Les références au renforcement des canaux sont disponibles dans la liste de contrôle pour le renforcement de la production.
Les passerelles partagées amplifient les conflits de ressources lorsque les pics du navigateur augmentent.Ajoutez des lignes shm et mémoire à la table des ressources de l'équipe et examinez-les conjointement avec le runbook des compartiments de clés multi-API.