I know there is no straight answer to this question - depends on specs etc. But what is the order of magnitude of simultaneous requests you'd expect a server to handle? Currently, our server starts to really slow down after more than 10 threads simultaneously running requests on it. Is that normal for an average webapp? EDIT: I am currently not in need of advice. I am not even responsible for anything related to that server. I told my boss that I think it's not normal for a simple webserver to not be able to handle more than 10 simultaneous threads, and he said I should do a quick survey.
-
1Somewhere between 3 and 3,000. – hobbs Oct 16 '09 at 09:35
-
Following up to your edit: no, it isn't usually normal, but if you still will not provide any information on what you're running and what you're running it on, it could either be normal or not normal. – gekkz Oct 16 '09 at 10:27
-
As you're not really asking a proper question and haven't given any information on which anyone can base an answer you should at least make this a wiki article. – John Gardeniers Oct 16 '09 at 11:50
5 Answers
You can have 1,000 concurrent requests per second, depending on what is being requested. If it's an image file, it's easy to serve it quickly without huge resources, but if you are looking at 1,000 concurrent requests to a PHP script connecting to a MySQL backend, then we're going to have to start talking about a RAID setup, lots of RAM, seperate web and db servers, or caching, though this cannot be implemented everywhere.
Perhaps you might want to tell us what you're actually running, as detailed as possible if you want any advice that might be able to help you.
![](../../users/profiles/21081.webp)
- 4,219
- 2
- 20
- 19
-
2+1; this about sums it up. There are just so many variable factors that it's really a case of "how long is a piece of string". – Maximus Minimus Oct 16 '09 at 10:19
There is no "standard" answer or even a reasonable range to give you without you providing any details. Depending upon where your server falls into the many ranges below, your mileage will vary.
The webserver could be anything from an old PC that has been re-tasked after being handed down a couple of time because "LINUX will still run on it". All the way up to a 64 way top end box with many GB of RAM, or anywhere in between.
From your post this could be just a WWW server, running any number of flavors and versions from Apache, IIS, .... or it could also be doing the application and DB work all on the same box of undetermined size.
The next piece is what are the connections doing? Grabbing a static text file or image, or running a query on a large db parsing through millions of records with a sql query of who knows what level of tuning.
If you would like some help, please post some level of detail or there is nothing useful we can give you. If not the answer is 42.
![](../../users/profiles/11167.webp)
- 833
- 1
- 6
- 8
The following screenshot was taken on a production Windows 2003 Web Server.
- CPU usage 10%
- serving 70 requests per second on average
- 210 requests per second (rps) max
![](../../users/profiles/188753.webp)
- 1
- 1
I've got a site running that is handling somewhere north of 600 concurrent HTTP connections without undue effort.
![](../../users/profiles/1375.webp)
- 95,029
- 29
- 173
- 228
-
-
The site's a cluster, but each server has 600+ concurrent HTTP connections on average. – womble Oct 16 '09 at 10:52
Our boxes can easily push a few hundred normal HTTP connections. Add in PHP and it'll drop some what. Even the old P2-400 box we had running until a few months ago was handling 50+ concurrent connections without any issues.
There are quite a few tuning options in the web server that can fix problems you could be seeing. Things like idle timeout and connection persistence and usually at fault.
![](../../users/profiles/1436.webp)
- 3,027
- 5
- 24
- 32