Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

442
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda