Dismal Performance - where do I start?

darryl.rosin - May 7, 2008 - 04:35

Hello.

I'm a OS X systems admin and I'm totally new to drupal. I've taken responsibility for a Drupal 5.1 site, developed by someone very sharp with php, but somewhat weaker on the other pieces of the drupal puzzle. I know almost no php myself and the few php driven sites I run seem to hum along nicely with no problems at all (SugarCRM, Mantis, phpBB, phpMyAdmin)

The performance of the Drupal site, however, is really quite terrible, and I'm at a bit of a loss where to start with improving it. I'm hoping someone here can point me in the right direction.

My site is hosted on a new apple Xserve. 8Gb RAM, 2x 3Ghz Dual core intel processors, OS X 10.4.11, with an Xserve RAID for storage (RAID - 5). MySQL 5.0.45, Php 5.2.2. Drupal 5.1 All indicators show that the box is humming along, barely ticking over.

Except it seems to be taking unreasonably long times to get a drupal page returned.

When I am the only user on the system, loading user's home page takes about 30sec and over 900 SQL queries. That, er... doesn't seem right.

After the break is the rather bewildering collection of 'modules' installed. Not all of them are displayed on a home page and it's kind of hard for me to work out which ones are and aren't. I apologise for the lack of detail in the post, but I'm new to this and I'd appreciate any advice.

thanks

d

Modules installed

Actions
Avatar Gallery
Block
Blog API
Buddylist Auto Add
Comment
Cronplus
Event
FCKeditor
Forum
Google Analytics
Image
Image Gallery
ldapauth
ldapgroups
Login Destination
Neighborhood CCK
Nodevote
OG Audience
OG Contact
OG Galleries
OG promote
OG Teampage
Profile
Search
Smileys
Syndication
Tagadelic
Taxonomy Block
Taxonomy Theme
Upload
Video
Video Image
Views
Voting API
Aggregator
Basic event
Blog
Buddylist
Chat Room
Contact
Classified Ads
Frequently Asked Questions
Filter
Front Page
Guestbook
Image Attach
Image Import
ldapdata
Lightbox2
Menu
Node
Organic groups
OG Audience Inline
OG forum
Organic groups join role
Organic Groups Sites
Poll
ProfilePlus
Simplenews
Statistics
System
Taxonomy
Taxonomy context
Throttle
User
Video ffmpeg Helper
Video Upload
Views UI
Watchdog

Modules, modules, modules

millionleaves - May 7, 2008 - 22:01

Not sure I can shed a whole lot of direct experience here, but I'm guessing that there isn't a silver bullet.

With the sites we've built, we've found that adding modules = slowing things down. The problem with Drupal is that there is a point on the learning curve, just after you move out of newbie stage, where it's like being in a candy shop. There are so many modules that extend Drupal in so many different directions that it's easy to get carried away and install every module that looks cool without realising the performance hit you're taking.

At some point, you have to stop and think: do I really need that functionality? What is the performance price I'm paying for it?

From what I've read around the forums in the last couple of years, OG is a particular resource hog, and Views, while a fantastically useful module, generates an awful lot of inefficient SQL code. We were able to dramatically reduce the load time on one of our sites by using the Visibility setting in the related blocks - we entered our own simple SQL queries to determine whether the view was empty or not. Before that, Drupal would load the block, run all the associated queries to populate the view, and then decide if it had anything to show. If it was empty, all that processing time/power was wasted.

So, my advice? Go through the site and look at what each module is doing for you. Strip out the ones that you don't need. If nothing else you'll get a much greater appreciation for how Drupal works, which in turn may lead you to some alternative ways of doing some of the things your current does.

Thanks for the reply. I've

darryl.rosin - May 9, 2008 - 04:01

Thanks for the reply. I've got a dev instance of the system setup now, so I'll start removing stuff and see what happens.

d

 
 

Drupal is a registered trademark of Dries Buytaert.