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

445
Vistas
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.

about 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

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
about 4 years ago · Santiago Trujillo 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