views:

45

answers:

2

How any concurrent users can a Apache + PHP solution support? Please don’t be bogged down by Mysql constraints – we are using LAP without M as we are storing around 2-8 PB at the back end.

+1  A: 

Why not try it out:

  • ab - Apache HTTP server benchmarking tool

As an alternative Siege comes to mind.

Also see the answers to How to test a site rigorously

Gordon
A: 

How any concurrent users

Ok, there's your first issue - HTTP is stateless, so your webserver can support an infinite numbers of users - as long as they don't actually submit any requests to the webserver. Really the limiting factor is the number of concurrent connections to the webserver. This is going to be determined by:

1) the frequency at which users make requests

2) the length of time it takes to service the request

3) the keepAlive duration

The first 2 will vary enormously from application to application, while the latter is something you can control - using keepalives will improve performance at the browser at the expense of hogging memory (and therefore slowing down) at the server. Using a keepalive of more than 2 seconds is probably a waste of time.

There are good books available on Apache performance tuning which will allow you to optimize the webserver for your application.

Of course, if you have a common data substrate, then there's nothing to stop you adding more webservers on top of the storage (unlimited horizontal scalability) - so it's the storage substrate which ultimately limits the capacity / performance of the system (until you look at tuning the code and storage). And you get the added benefit of improved resillience.

Certainly a fairly low end PC (2GHz CPU, 2Gb ram) should comfortably handle upwards of 500 current connections - particularly if you're running a database-centric application, then you'll also get more benefit out of adding servers rather than upgrading the CPU/RAM.

HTH

C.

symcbean
We are proposing a service layered architecture where the back end will be REST SERVICES being served by a combination of .NET and Java application- The PHP solution would fit in the App server component under Dynamic content.The PHP layer would be CakePHP using jQuery for Ajax and would use XML RPC JSON API to make service calls to java runtime and .NET servers.
arvind sharma
This way we will be able to achieve high performant service delivery backbone.The question that we have is –• How any concurrent users can a Apache + PHP solution support? Please don’t be bogged down by Mysql constraints – we are using LAP without M as we are storing around 2-8 PB at the back end.• How many users can nginx + PHP supportAssume that we will be using a standard medium Cloud hosted machine- Linux Server Size (RAM / Disk)- 4096 MB / 160 GB.
arvind sharma
A Pb DB and you're trying to make a solution fit onto a single hosted server! You've got bigger problems than worrying about which webserver software to use.
symcbean