Volver al Blog
Despliegue

Optimizacion del rendimiento de BotBrowser en produccion

Consejos practicos para optimizar memoria, CPU y rendimiento al ejecutar BotBrowser a escala.

Descripcion general

Ejecutar decenas o cientos de instancias de BotBrowser requiere gestion cuidadosa de recursos. Esta guia cubre optimizaciones practicas para despliegues en produccion.

Carga de perfiles

Almacena perfiles en almacenamiento local rapido en lugar de volumenes montados en red:

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

Para seleccion aleatoria, usa --bot-profile-dir="/opt/profiles/".

Gestion de memoria

Cada instancia de Chrome usa 200-500 MB de RAM. Limita el heap V8 para tareas ligeras:

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

Cierra paginas rapidamente y reinicia procesos del navegador tras un numero determinado de tareas (ej. cada 50):

const page = await browser.newPage();
await page.goto('https://example.com');
// ... trabajar ...
await page.close(); // Liberar memoria inmediatamente

Optimizacion de CPU

Desactiva funciones innecesarias:

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

Limita instancias concurrentes a 2-4 por nucleo de CPU.

Optimizacion de red

Bloquea recursos innecesarios para reducir ancho de banda:

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

Monitoreo

Usa el logging interno de BotBrowser para depuracion:

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

Referencia rapida

OptimizacionImpactoComplejidad
Almacenamiento local de perfilesAltoBajo
Limite de heap JSMedioBajo
Modo headlessAltoBajo
Bloqueo de recursosAltoMedio
Reciclaje de workersMedioMedio
Limite de instancias por nucleoAltoBajo

Primeros pasos

  1. Descarga BotBrowser desde GitHub
  2. Almacena perfiles en almacenamiento local rapido
  3. Establece limites de memoria y topes de instancias segun recursos del servidor
  4. Monitorea el uso y ajusta la concurrencia en consecuencia
#performance#optimization#speed#deployment#production