[consulting] Does anyone offer Drupal performance tuning services?
Darrel O'Pry
darrel.opry at gmail.com
Mon Apr 27 18:59:24 UTC 2009
On Mon, Apr 27, 2009 at 12:22 PM, Chris Johnson <cxjohnson at gmail.com> wrote:
> Maybe I shouldn't wade into this with my highly opinionated take on
> things, but I'm feeling curmudgeonly today.
>
> First, some free advice. As alluded to by another writer, very often
> performance problems are caused by badly written modules. Most of
> Drupal's contrib code is, in fact, not written in a very optimal way
> for performance. This is not a criticism, by the way. Functionality
> first, after all and avoid the premature optimization.
>
> If one is running a D6 site with a large number of modules, the sheer
> number of modules plus the fact that most of them are probably written
> "inefficiently" is probably the biggest cause of performance problems
> -- absent any really gross configuration errors (missing database
> indexes, tiny memory sizes, etc.). As someone who is running over a
> hundred contrib modules on large number of sites, I see this situation
> all the time.
>
> Lots of modules means lots of PHP code. Simply opening, reading and
> parsing all those PHP files takes a significant amount of time per
> request. This is one big reason why PHP opcode caches like APC are
> one of the key first steps in making Drupal run faster. It's also why
> well written modules include avoiding loading code that won't be used
> for the request when possible.
I kind of have to disagree with your assertion of well written and
conditionally loading code. If you're already using a compile cache like APC
most of the benefits of conditional loading is lost.
> Second, complexity of the performance problem space . Despite there
> being some large, obvious places to look for performance problems,
> it's really a very large, complicated problem. There are almost
> innumerable factors involved. Let me just list a few of them:
>
> 1. efficiency of the code of the modules being used.
> 2. end case inefficiencies in core (I'm being charitable, perhaps).
> 3. anomalous edge case SQL queries.
> 4. wrong PHP configuration (fairly simple).
> 5. wrong Apache configuration (quite more complex).
> 6. wrong database configuration (even more complex).
> 7. host system configuration errors (large problem space).
> 8. host system limitations (obscure problem space).
> 9. VPS configuration errors (obscure problem space.
> 10. network problems (large can of worms by itself).
>
> What this means is, I don't believe any one person knows enough to
> actually solve all problems in all problem spaces. Probably not any 2
> people, either. It probably takes 3 or 4 people, say a Drupal expert,
> a DB expert, a host / sysadmin expert and a senior generalist, and
> then maybe even a network expert, if it turns out that's where the
> problem is, as discovered by the previous 3 or 4 experts.
The average developer / sysadmin with 5+ years of experience should be able
to cover all of those tasks.
> That's not to say one guy can't make a big improvement, or enough
> improvement to satisfy the client. It IS a tradeoff of money versus
> incremental improvement. But to get every last bit of performance out
> of a system is a really a Hard Problem -- it IS rocket science, so to
> speak.
It's not really rocket science... It's fairly rote work to optimizing an
existing infrastructure. It just takes a good understanding of resource
requirements and allocation, with a very small set of resources...
processing time, disk storage, ram, network i/o, and interconnect
bandwidth.
It's a fairly closed system compared to the world rockets have to fly
through.
The team I work with (about a dozen folks at OpenBand) will be
> optimizing the heck out of our large D6 distribution over the next few
> months. It's going to be a very interesting experience.
I bet.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.drupal.org/pipermail/consulting/attachments/20090427/a46297af/attachment.htm>
More information about the consulting
mailing list