Retour au Blog
Déploiement

Optimisation des performances de BotBrowser en production

Conseils pratiques pour optimiser la memoire, le CPU et le debit lors de l'execution de BotBrowser a grande echelle.

Presentation

Executer des dizaines ou centaines d'instances BotBrowser necessite une gestion attentive des ressources. Ce guide couvre les optimisations pratiques pour les deploiements en production.

Chargement des profils

Stockez les profils sur un stockage local rapide plutot que des volumes montes en reseau :

cp /mnt/nfs/profiles/*.enc /opt/profiles/
chrome --bot-profile="/opt/profiles/profile.enc"

Pour la selection aleatoire, utilisez --bot-profile-dir="/opt/profiles/".

Gestion de la memoire

Chaque instance Chrome utilise 200-500 Mo de RAM. Limitez le heap V8 pour les taches legeres :

chrome --bot-profile="/path/to/profile.enc" \
       --js-flags="--max-old-space-size=256"

Fermez les pages rapidement et redemarrez les processus navigateur apres un nombre defini de taches (ex. tous les 50) :

const page = await browser.newPage();
await page.goto('https://example.com');
// ... travailler ...
await page.close(); // Liberer la memoire immediatement

Optimisation CPU

Desactivez les fonctionnalites non necessaires :

chrome --bot-profile="/path/to/profile.enc" \
       --disable-background-timer-throttling \
       --disable-renderer-backgrounding \
       --disable-component-update

Limitez les instances concurrentes a 2-4 par coeur CPU.

Optimisation reseau

Bloquez les ressources inutiles pour reduire la bande passante :

await page.setRequestInterception(true);
page.on('request', (req) => {
  const type = req.resourceType();
  if (['image', 'media', 'font'].includes(type)) {
    req.abort();
  } else {
    req.continue();
  }
});

Surveillance

Utilisez le logging interne de BotBrowser pour le debogage :

chrome --bot-profile="/path/to/profile.enc" \
       --bot-internal --v=1

Reference rapide

OptimisationImpactComplexite
Stockage local des profilsEleveFaible
Limite du heap JSMoyenFaible
Mode headlessEleveFaible
Blocage de ressourcesEleveMoyen
Recyclage des workersMoyenMoyen
Limite d'instances par coeurEleveFaible

Pour commencer

  1. Telechargez BotBrowser depuis GitHub
  2. Stockez les profils sur un stockage local rapide
  3. Definissez les limites de memoire et les plafonds d'instances selon les ressources du serveur
  4. Surveillez l'utilisation et ajustez la concurrence en consequence
#performance#optimization#speed#deployment#production