Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

280
Vistas
Browsershot / Puppeteer sobrecarga la CPU y se agota el tiempo de espera

He estado usando Browsershot para recuperar algunas imágenes de mi sitio web sin ningún problema durante meses, pero recientemente (últimas 1-2 semanas), la solicitud se agotó. Mirando más a fondo, descubrí que ha estado consumiendo una gran cantidad de energía de la CPU al intentar ejecutar el comando.

Uso de la CPU de Browsershot

Por lo que sé, este consumo constante de CPU continuará hasta que reinicie el servidor. También solicité que solo se hiciera una imagen en este ejemplo, pero hay tres procesos de cromo. No estoy seguro si eso es irregular.

Para asegurarme de que no era algo en mi sitio web o posiblemente una configuración que causaba esto, usé una llamada de función simple.

 Browsershot::url("https://example.com") ->setScreenshotType('png') ->save(Storage::path("overview_images/test.png"));

Desafortunadamente, el problema todavía ocurre.

Estoy usando un servidor Forge provisto por Laravel, así que usé la instalación recomendada por la página de Github . Como dije, había estado funcionando bien hasta hace un par de semanas. No se realizaron cambios en Browsershot en ese momento que pudieran causar algo como esto. He intentado seguir los pasos para instalar de nuevo, pero todavía sucede.

¡Cualquier ayuda es muy apreciada!

Edición 1:

Después de investigarlo más a fondo, descubrí que el problema radica en Puppeteer, no en Browsershot. Intenté implementar el ejemplo.js proporcionado por Google y encontré exactamente el mismo problema.

Edición 2:

De alguna manera pude arreglarlo. No puedo decir exactamente qué lo hizo, pero puedo ofrecer ayuda a cualquier otra persona que pueda encontrar esta pregunta.

Al ejecutar ndb example.js , recibí el mensaje

 Downloading Chromium r624492... ERROR: Failed to download Chromium r624492! Error: EACCES: permission denied

A pesar de que había instalado el titiritero (varias veces), supongo que intentaba continuamente descargar Chromium y fallaba. Supongo que es por eso que el uso de la CPU fue tan alto y nunca se detuvo hasta que se reinició el servidor.

Dicho esto, no cambié nada específicamente que hiciera que de repente comenzara a funcionar. Si ayuda en algo, esta fue una serie de comandos que usé cuando de repente comenzó a funcionar.

 > node example.js // Didn't Work. Would be in continuous command with high CPU usage until cancelled > sudo npm install -g ndb > ndb example.js // This is when I received the message about downloading Chomium > node example.js // It worked ?

Todavía no sé la razón exacta por la que sucede esto, así que dejaré esto como una pregunta abierta si alguien puede resolverlo.

Editar 3:

Se rompió de nuevo.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Creo que finalmente lo he descubierto.

Desde la página de Github de Browsershot, recomienda ejecutar estos comandos para instalar titiritero.

 curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash - sudo apt-get install -y nodejs gconf-service libasound2 libatk1.0-0 libc6 libcairo2 libcups2 libdbus-1-3 libexpat1 libfontconfig1 libgbm1 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 ca-certificates fonts-liberation libappindicator1 libnss3 lsb-release xdg-utils wget libgbm-dev libxshmfence-dev sudo npm install --global --unsafe-perm puppeteer sudo chmod -R o+rx /usr/lib/node_modules/puppeteer/.local-chromium

La instalación de npm falla al instalar la parte cromada de titiritero a pesar de --unsafe-perm .

Cambiar --unsafe-perm a --unsafe-perm=true parece haberlo solucionado.

Entonces, cambiar el comando a lo siguiente debería arreglar la instalación y descargar Chromium.

 sudo npm install -g puppeteer --unsafe-perm=true
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda