Benson
Please write this as a handbook page and link to it from the
performance
forum http://drupal.org/forum/49
On 2/26/06, Benson Wong <mostlygeek 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
> crazy.
>
> 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).
>
> Ben.
>
|