3

I've been trying to blitz.io my site, AB, etc., to try to get an understanding of how many concurrent users can use my site.

Within my own box:
Concurrency 500, 10000 hits 3k reqs per second. Transfer rate: 130,339 KBytes/sec.

From outside my box:
Concurrency 500, 10000 hits I get approximately 150-200 requests per second. Transfer rate: 5,543 Kbytes/sec.

Blitz.io
Using blitz.io, I cap out at 200 requests per second when concurrency starts moving past 200.

So as more and more concurrent request are made, my app is still returning 200 responses per second.

Does this mean network throughput is limiting my RPS to external clients? Because I'm under the impression my server is capable of responding to 3000 hits per second should the client be able to download fast enough (such as localhost).

I've played around with the nginx worker count and connections but I'm capped at 200 RPS for external calls.

What can I do to serve more of these pages?

How can I tell whether the network bottleneck is on my server, or the caller?

Due to my lack of experience here, I simply don't know if there's a network bandwidth bottleneck outbound from my server unless I do something like set up 3 more nginx servers with load balancing.

Is it correct to assume that because I can get 100mb/s internally, that should external hits (1000 users) demand 100mb/s, that the server will be able to output that to the various locations around the world?

Yuji Tomita
  • 463
  • 1
  • 3
  • 15
  • Would you describe your topology? Does "Outside mean across the WAN, or jus not on localhost? – gWaldo Aug 01 '12 at 23:03
  • @gWaldo, another server in another data center. Results are simliar for blitz.io which is sending requests from Virginia (my main server is in Dallas). – Yuji Tomita Aug 01 '12 at 23:22

1 Answers1

1

It could just be poor bandwidth and latency between datacenters, but to me that sounds like it could be rate-limiting at the border of one of the datacenters. It could be either one, but is more likely to be the inbound datacenter if this is the case.

Load-Testing looks very similar to a script-kiddie trying to DOS/DDOS. Your hosting provider may be trying to protect you.

gWaldo
  • 11,957
  • 8
  • 42
  • 69
  • Due to my lack of experience here, I simply don't know if there's a network bandwidth bottleneck outbound from my server unless I do something, like set up 3 more nginx servers with load balancing. Is it correct to assume that because I can get 100mb/s internally, that should external hits (1000 users) demand 100mb/s, that the server will be able to output that to the various locations around the world? – Yuji Tomita Aug 02 '12 at 00:55
  • You can try adding load-balancing, but I don't think it's going to help because the individual server is capable of handling much more internally. Contact your datacenter provider and explain what you're trying to do (load testing) and the results that you're seeing. – gWaldo Aug 02 '12 at 12:13
  • thanks for the vote there; I appreciate it! I suppose that would mean everybody using blitz.io and my Linode VPS in dallas would have to experience the same thing if this were the case? – Yuji Tomita Aug 06 '12 at 15:04
  • Not necessarily. This kind of thing can be turned on/off/configured per-account typically. – gWaldo Aug 06 '12 at 15:35
  • yes it seems I can ask for it to be raised; the default limit is 50mbit. This will give me a quick answer on the bottleneck! Thanks gWaldo, will keep you posted. – Yuji Tomita Aug 06 '12 at 15:38
  • They raised to 100mbit but I still cap out at 200 concurrent (exactly 200 requests per second) so I'm in danger... I also notice that after heavy benching, my system stops accepting new connections, so the problem must be elsewhere. I'm very worried that I've mistakenly thought I can handle 3k RPS! – Yuji Tomita Aug 06 '12 at 17:49