• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

375
Views
Nodo + Express: prueba de carga que hace que la aplicación se cierre con Error: aceptar ENFILE

Mi aplicación se cierra en un punto de estrés relativamente bajo cuando ejecuto la prueba de carga en ella. Para las pruebas, uso este paquete npm loadtest .

Ejecuto la prueba a 1000 solicitudes por segundo con 10 de simultaneidad durante 10 segundos.

 loadtest http://localhost:3000/my/api -t 10 -c 10 --rps 1000

La aplicación se cierra después de unos dos segundos y da el siguiente error que no es muy útil.

 events.js:163 throw er; // Unhandled 'error' event ^ Error: accept ENFILE at exports._errnoException (util.js:1050:11) at TCP.onconnection (net.js:1462:24)

Aparentemente, esto está relacionado con la cantidad de archivos abiertos. Probé este comando ulimit -n <number> pero no ayuda. Está limitado a 9999 (no puedo configurarlo por encima de eso).

La aplicación puede manejar alrededor de 400 rps en 10 concurrencias.

Mi máquina local es Mac OS Sierra, CPU: 1,6 GHz, RAM: 8 GB.

over 3 years ago · Santiago Trujillo
1 answers
Answer question

0

macOS establece límites de kernel bastante bajos en la cantidad permitida de descriptores de archivos abiertos (tanto en total como por proceso). Tuve que verificar en la Mac de mi esposa, y el límite por proceso predeterminado es 10240, que básicamente es exacto a lo que está limitado a usar ulimit ( ulimit no puede ir más allá del límite impuesto por el kernel).

Sin embargo, es fácil aumentar estos valores ejecutando el comando sysctl :

 sudo sysctl kern.maxfiles=122880 kern.maxfilesperproc=102400

(esos son los valores que estoy usando en mi Mac, son bastante arbitrarios pero funcionan bien para mí)

Si desea que se mantengan después de reiniciar, agregue las siguientes dos líneas al archivo /etc/sysctl.conf (si aún no existe, simplemente créelo):

 kern.maxfiles=122880 kern.maxfilesperproc=102400
over 3 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error