1

I am trying to do a benchmark on a NGINX module. I would like to check the performance on a post requests (upload to server and not download from the server). I tried to use ab, wrk and locust. I tried running each one of the tools on the same NGINX servers and different servers. In all of my tests the NGINX did not passed the 30% CPU while the tolls got to over 100%. For download files I was able to get result of 250K req/sec with a 100% CPU for the NGINX, but for upload I got 50K per/sec with 30% CPU for the NGINX.

My question is: Which tool I can use to test NGINX with post requests (upload files) in the best way?

Thanks, Ortal

Ortal
  • 79
  • 2
  • 5
  • There are too many parameters involved to say what is going on. Network through put could be a thing depending on what you are posting. If that is the map uploads you can get I would suggest looking at IO like the network. – Joe Doherty Jan 28 '16 at 11:32
  • I am using a network based on RDMA, so I do not this it is a network problem. I search for other NGINX benchmark and all of them using download file (GET requests). – Ortal Jan 28 '16 at 11:49
  • I'm not to sure about RDMA but I think you are looking in the wrong direction if you are blaming the tool. There must be something stopping Nginx from ramping up. What is it doing with the upload data? – Joe Doherty Jan 28 '16 at 11:58
  • Thank you for your patience. I have made a module which do nothing with the data (in order to have a null reference), for each request it get it send a response to the client with 204. When I do the test with GET request using wrk for example I get ~220K request per second and the wrk use up to 25% CPU, when I do the test with POST/PUT requests with file size 0 I get ~50K, and the wrk use 250% CPU. – Ortal Jan 28 '16 at 13:22
  • It must be doing something then on the upload. The CPU thing is hard to diagnose if they are running on the same box. You could try httperf to ensure there isn't a bug somewhere. – Joe Doherty Jan 28 '16 at 13:33
  • I have tried httperf as well, and I got a similar results... – Ortal Jan 28 '16 at 13:43
  • I would say your bottle neck isn't with the tool in that case. How does this change if results are run from a different machine? – Joe Doherty Jan 28 '16 at 14:25
  • There is no change, the results are lower but the different between the put/get request/sec are stay the same, the get request is about 150K per sec and the put about 3500 req/sec – Ortal Jan 29 '16 at 16:35

0 Answers0