[development] Re: enterprise needs
kb at 2bits.com
Mon Feb 27 01:12:38 UTC 2006
Please write this as a handbook page and link to it from the performance
On 2/26/06, Benson Wong <mostlygeek at gmail.com> wrote:
> > All that said, we still haven't committed to Drupal long-term because for us
> > there is big issue that hasn't been fully solved: Drupal scalability. I'm
> > pretty confident that Drupal scales, but optimizing servers for Drupal is
> > still a pretty rare skill. (And, yes, we are diving into the forums on the
> > topic.)
> I think I blabbed about this at OSCMS in Vancouver, at Drupal for the
> Enterprise discussion. My philosophy go for the lowest hanging fruit,
> and work your way up the tree. You can probably quadrupal Drupal's
> pages per second in under a half hour.
> Here's my scaling tree. As you progress up the tree, you will find
> that time, money, maintenance, headaches will all increase.
> 1. Use a PHP cache:
> I found that using APC speeds up Drupal by a lot, 3 to 5 times the
> pages view per second. This was _literally_ a 5 minute install (on
> FreeBSD) for a 300% to 500% performance improvement. I think at that
> point it was my dev servers SATA HDDs were the bottle neck. It sits
> beside me and when I hit it with ab, I can hear the HDDs wrrrrr like
> 2. Use mod_gzip (or ob_compress or whatever it is in php, I prefer
> mod_gzip, or mod_deflate in Apache2)
> The benefits of this are amazing, considering the minimal effort it
> takes to implement. If doesn't matter if it takes Drupal 0.002 seconds
> to generate a 40K of html, if it takes like 1 to 2 seconds for a
> client to download it (more if using a modem). mod_gzip usually gives
> a 10% to 80% compression depending on the size of pages. Amazing
> results for 10 minutes of work.
> 3. Get a faster DB server. I'm thinking of 3x15K SCSI (raid 5), dual
> way xeon mysql server from freebsdsystems.com for my next
> installation. These things rip . Expensive (~$5K to $7K) but fast. An
> average Drupal dev charges like $100USD these days right? A super fast
> db server is still more bang for your buck than 50 to 70hrs of code
> performance tuning.
> 4. Get faster (or more) Web Servers. Maybe not the same specs as
> above, but fast anyways.
> 5. Get a load balancer, or a reverse HTTP proxy (squid) to distribute the load
> 6. Do MySQL replication
> 7. Profile / tune Drupal's code (shudder).
More information about the development