Search code examples
node.jsnginxjmeterstress-testing

Nginx Server Load test fails ( Node.js application )


I'm encountering an issue while load testing my Node.js Sequelize PostgreSQL application running on an NGINX server using JMeter. When I set 1000 threads with a 1-second ramp-up time, everything runs smoothly. However, when I increase the load to 10,000 threads with a 10-second ramp-up time, some calls fail with errors such as "connection refused," "connection timed out," or "failed to connect to server."

To troubleshoot, I performed the same load test directly on the NGINX API without involving Node.js. Surprisingly, I still encountered similar issues, even though NGINX returned a 200 status code.

I suspect there might be a misconfiguration in my NGINX setup. Any insights on how to diagnose and resolve this issue would be greatly appreciated.


Solution

  • it seems that when you send 10,000 threads then it reach the connection limit. try to increase number of connections.

        events {
               worker_connections 10240; # Adjust this number as needed for this may be 10, 000 +
         }
    

    along this check the keep_alive option, i.e how many request can be entertained

    keepalive_requests  10000; # Adjust this number as needed for this may be 10, 000 +
    

    if you go outside the nginx may be you can try to update the system limits:

        * soft nofile 100000
        * hard nofile 100000
    

    Please try the solutions, this mainly seems to be the request limit issue.