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
| Optimisation | Impact | Complexite |
|---|---|---|
| Stockage local des profils | Eleve | Faible |
| Limite du heap JS | Moyen | Faible |
| Mode headless | Eleve | Faible |
| Blocage de ressources | Eleve | Moyen |
| Recyclage des workers | Moyen | Moyen |
| Limite d'instances par coeur | Eleve | Faible |
Pour commencer
- Telechargez BotBrowser depuis GitHub
- Stockez les profils sur un stockage local rapide
- Definissez les limites de memoire et les plafonds d'instances selon les ressources du serveur
- Surveillez l'utilisation et ajustez la concurrence en consequence