On Fri, 31 May 2002, Justin Felker wrote:
> I have spent the last hour pouring over this list's archive.

(Not a flame, but I keep seeing this recently. The word is "poring".)

> I, along with several other people am starting a business which will depend 
> heavily on its web presence.  Unfortunately, I am in the all too common 
> position of having to make technical decisions that will have repercussions 
> on the future well-being of said business, with little to no budget.  It is 
> crucial that the solution I pick, handle what we hope will become a very 
> large load in the not-to-distant future (whether this happens or not is a 
> question for another day, heh).  To this end, I am very interested in using 
> the LAMP (Linux+Apache+MySQL+PHP) approach.  I have experience with all of 
> these technologies, but I am definitely not in a position to vouch for 
> their worthiness for use in a large scale application running beneath a 
> heavy load.
> 
> To quantify LAMP's ability, is it appropriate for say, sites that generate 
> on the order of 5 million unique hits per day?  If not, where would you 
> draw the line?  At 500,000?  Or 1 million?  If so, how much higher could it 
> go possibly?  10 million?  20?
>
> . . .
>
> So, what say you?  Given all that I have said, is LAMP appropriate?  Will 
> PHP and maybe even more importantly, MySQL be able to scale well?  I have 
> no doubt that MySQL is fast, but just how scaleable is it?  Will it die 
> beneath the kind of loads I have described?

It's really difficult to answer this question without knowing a lot more
about your application. But as a casual guess, if you reach that sort of
traffic level, I'd say your stumbling block is going to by MySQL. At some 
point - granted, that point can be far away if you design your database 
and queries well - it will buckle under load.

I'm too busy actually working, unfortunately, to pay attention to the 
bleeding edge developments in MySQL. But as it stands, there's no serious 
support for clustering, which means that when you are pushing more 
transactions than can be handled by the most expensive single machine you 
can afford, you've hit a brick wall. And as you know, there is a point 
after which multiple lesser-powered machines are a whole lot cheaper than 
a single mighty one.

If your database transactions are mostly read-only, and you can segregate
the infrequent write transactions to a separate server, you can do
jury-rigged replication of the main data store and scale indefinitely.

Otherwise, you'll probably have to plan with an eye to a migration path 
toward Oracle, DB2, or whatever. This doesn't mean you can't start out 
with MySQL, but it does mean you should develop with a database 
abstraction layer and shouldn't depend on features that are fast in MySQL 
but poorly supported by other databases (or emulated in the abstraction 
layer).

As for Linux, Apache, and PHP, there's no limit to the transaction volume 
you can handle with even rudimentary load-balancing tactics, so that's 
nothing to worry about. 

miguel


-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to