Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

284
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!