OT: why are LAMP sites slow?

Kartic removethis.kartic.krishnamurthy at gmail.com
Thu Feb 3 21:46:16 EST 2005


Paul Rubin said the following on 2/3/2005 7:20 PM:
> LAMP = Linux/Apache/MySQL/P{ython,erl,HP}.  Refers to the general
> class of database-backed web sites built using those components.  This
> being c.l.py, if you want, you can limit your interest to the case the
> P stands for Python.
> 
> I notice that lots of the medium-largish sites (from hobbyist BBS's to
> sites like Slashdot, Wikipedia, etc.)  built using this approach are
> painfully slow even using seriously powerful server hardware.  Yet
> compared to a really large site like Ebay or Hotmail (to say nothing
> of Google), the traffic levels on those sites is just chickenfeed.
> 

If you are talking about Wikipedia as a prime example, I agree with you 
that it is *painfully* slow.

And the reason for that I probably because of the way the language is 
used (PHP) (this is a shot in the dark as I have not looked into 
Mediawiki code), and compounded by probably an unoptimized database. I 
don't want to start flame wars here about PHP; I use PHP to build client 
sites and like it for the "easy building of dynamic sites" but the 
downside is that there is no "memory"...every page is compiled each time 
a request is made. I doubt if Wikipedia site uses an optimizer (like 
Zend) or caching mechanisms. Optimizers and/or PHP caches make a huge 
performance difference.

Also, PHP has put dynamic sites within easy reach of several programmers 
who slap together sites in no time. These sites may have spaghetti code 
and even the best infrastructure is not enough to support shabby design 
(code, db setup and even server tuning). I have seen people become 
programmers overnight! There are also LAMP sites that use Apache 1.3 
that is a resource hog; I guess production sites do not want to upgrade 
to Apache 2.x/PHP combo!

Coming to python, to be honest, I have not seen many LAMPy sites. I use 
blogspot.com frequently and it is pretty reliable; I hear that it is 
written in Python but I have no idea about the server and database software.

The way to go is to build around application servers, IMHO. I like the 
Twisted.web/Nevow methodology, though for simple situations it may be an 
overkill. I like the Webware with Apache-thru-Webware-Adapter setup - 
that is what I am considering implementing for my organization. (Even in 
the App Server arena, I have seen Websphere with JSP/Servelets sites to 
be soooo slow that I could finish my breakfast and still wait for the page)

 From my experience it is an overall tuning thing. Usual culprits are 
untuned Linux boxes, unoptimized database design, poorly designed 
queries and/or poor application logic...and ah! table-driven pages. 
Pages built on tables for the layout kill the browser. CSS is the way to go.

Thanks,
-Kartic



More information about the Python-list mailing list