I've been reading about doing a multisite installation and how to use Drupal to host multiple sites from one codebase. So far it looks possible to manage content for 25-40 websites. What I'm wondering is what sort of server specs will be necessary and how performance of sites in a multiple site setup is affected. How much memory can you recommend to use, what sorts of settings in php.ini and my.cnf have others used? The database will be large with tables for each website. What are some good strategies for optimizing a multisite install? I'm running Apache 2.0.52, PHP 5.2.4 and Mysql 5.0.67.

Thank you,

JQ

Comments

matt_harrold’s picture

I'm certainly no expert, I'm sure there are geeks on this site with more technical info to share.

Server load is going to come from users, not websites. You could have 100's of websites on a shared host with low traffic and still be responsive. I imagine that many bigger sites require dedicated hardware, sometimes multiple servers for a single domain. I doubt there is any difference between a Drupal multisite and multiple single Drupal sites, beyond the obvious management convenience and elimination of duplicate files (I don't think there's a downside).

Most Drupal 6 sites will need a minimum of 20M (I use 96M to satisfy Imagecache module), so I suppose lots of RAM is going to help if you have lots of users.

There isn't much of a performance hit by having lots of tables in a single database (opposed to multiple databases), but it will make moving the site more difficult (possibly huge SQL dump). If the sites aren't sharing tables, separate databases might make maintenance easier.

Optimization will come from best PHP and MySQL practices (not specific to Drupal), and ensuring you turn on the caching mechanisms and other performance helpers built into Drupal (JS aggregation, CSS aggregation, etc).

vm’s picture

25 - 40 sites would cause me to rethink this. More from an updating/upgrading standpoint as mentioned above. When using a single code base all sites have to be turned off, so that each one can have update.php run. Shutting down that many sites at once doesn't seem productive.

WorldFallz’s picture

Not to mention, what happens when there's a glitch somewhere-- do you really want 40 sites worth of user complaints at one time? =/

remshad’s picture

From Where i can Get Drupal Tutorial

How To Use it

WorldFallz’s picture

Assuming this is not some thinly veiled attempt at link spam:

Documentation (big blue tab at the top of the page) -> Getting Started

johnquest’s picture

If I run separate websites with separate databases, could there be a way of sharing the main page template among all the sites. Basically, there are systemic design elements that I'd like to put into the page template that won't be editable and to have those elements distribute across all of the sites.

Thanks again,

WorldFallz’s picture

I would think if you're on a *nix system you could use a symbolic link from the theme directories of the satellite sites to the page.tpl.php file in the theme directory of the 'main' site.