Is it possible to build a high-traffic Drupal community website without hacking?

the1brit's picture

I would like to find out from anyone that has built a high traffic Drupal community website ( a website with at least 500,000 visitors a month, with anywhere from 10,000 to 20,000 authenticated users at any one time ), is it is possible to create this kind of site without having to do a high level of hacking to make Drupal scale? Can standard Drupal scale without a lot of query and other types of hacking / coding handle this traffic and user levels? Can I install Drupal, configure the modules I need, and then add more hardware and functionality (APC, Varnish, Memcache, etc) without having to do query hacking? How do people deal with Drupal's high number of database queries without hacking, or is there no way around having to hack? If you have built this type of community site with numerous authenticated user, what were the biggest hurdles and stumbling blocks when it comes to performance and scalability? I already know about auth cache and pressflow.

Comments

Drupal can handle that

rgristroph's picture

There are Drupal sites it that range, and you should not expect to have to do "hack queries". If you do, it will be because of a particular feature is causing problems - so a key is to as you build the site and traffic increases, to keep some sort of monitoring logs and performance measurements, so you know what things you added are causing problems, and you can investigate and fix them.

You may find it better to focus on building the site and simply host with someone who will provide that level of scaling, such as Pantheon or Acquia or Advomatic or any of the other Drupal Hosting places.

If you host it and build everything yourself, I would suggest starting with the standard "Mercury Stack" and working from there. If you bottleneck in PHP, you can add an additional webserver to your cluster; eventually, if you get enough load, you will begin to bottleneck on the database, and you will probably fix your problems by tuning MySQL buffer sizes and cache sizes more than by hacking queries in Drupal.