freedzhost.cloud

Un navigateur par agent : une automatisation du web qui ne se marche pas dessus

Niveau AvancéTemps estimé 1 hUn mot inconnu ? Lexique

Les agents qui utilisent le web (vérifier un site, remplir un formulaire, lire une page) pilotent souvent un navigateur par son port de débogage à distance. L'installation tentante, c'est un navigateur pour tout le monde, chaque agent dans son onglet. Nous avons fait tourner vingt agents et six scripts ainsi, et les résultats mentaient.

Comment ces chiffres ont été obtenus. Mesurés sur nos propres machines (voir le protocole), en général en un seul passage, vitesses relevées par le serveur lui-même ; nous ne publions pas les journaux bruts. Ce sont des ordres de grandeur sur ce matériel, pas des garanties sur le vôtre. Les chiffres extérieurs sont accompagnés de leur source.

Navigateur partagé26 onglets, 1 processus✕ gelé 180 s par un onglet✕ 11 navigations sur 20 interrompues✕ domaines déclarés morts à tortUn navigateur par agentagent 1agent 2agent 3agent 4son profil · son port · son DNS
Vingt-six agents dans un seul navigateur partagent un processus, une mémoire et un cache DNS : un onglet emballé les gèle tous, et leurs rafales les font brider. Un navigateur chacun, avec son profil, son port et son DNS chiffré, supprime les trois.

Ce qui n'allait pas, mesuré

L'installation qui marche

Lancez un navigateur par agent, chacun avec son propre dossier de profil, son propre port de débogage et son propre processus. Donnez à chacun son DNS chiffré, pour que ses requêtes ne passent plus par le résolveur de la maison :

chromium --headless=new --user-data-dir=/tmp/agent-1 \
  --remote-debugging-port=9301 \
  --dns-over-https-mode=secure

Un profil vierge supprime aussi un faux positif subtil : « je suis connecté » ne peut plus venir d'une session qu'un autre passage a laissée ouverte.

Pièges

Les onglets s'accumulent d'un passage à l'autre. Fermez-les entre deux vagues : fermer 100 onglets a fait passer une machine de 28 Go utilisés à 19.

Connaissez votre plafond. Sur un portable de 30 Go, 16 navigateurs et 16 agents remplissaient la mémoire ; à 24 navigateurs, le système a commencé à tuer les nouveaux, et chaque processus tué ressemblait à un « site bloqué » instantané : 47 faux échecs en 29 secondes. Déplacez les navigateurs vers une plus grosse machine avant d'aller plus loin.

Des profils de navigateur dans un petit dossier en mémoire (comme $XDG_RUNTIME_DIR) peuvent le remplir, et d'autres programmes y gardent des choses importantes. Mettez les profils sur le disque.

Utile ? Dites-nous ce qu'il faut mesurer ensuite.