Scaling Drupal Websites to millions of pageviews per day.
How do you scale Drupal to meet customer needs?
I often get asked about application tuning, and with the relatively explosive growth of CMS systems and our involvement with Drupal, a common question posed to me is “How do you scale Drupal to meet customer needs?”
Over a series of articles, I am going to discuss the various stages of developing, testing, and deploying a robust Drupal based website. Using experience garnered both from working with Drupal specifically as well as my experience gained in architecting large web application farms, I’m going to layout a framework that has served our customer base well and hopefully others will find useful.
One of the first things needed to properly answer customer questions about scaling is an appropriately equipped admin tool chest. Our technicians use the same tools most others would choose, a few of which are :
- AB (Apache Benchmark)
- Siege (Web server Benchmark tool)
- Jmeter (Great for producing graphs of web server benchmarks)
- Mytop (Mysql performance monitor)
- NMON (process monitoring and recording)
- Cacti (Great for historical benchmarking results)
Of course, just like any other SAAS shop, we also employ system tools like ps, vmstat, and top. Additionally, it’s useful to have monitoring software that can watch limits on servers, especially useful for large deployments where you have several or more servers. Nagios is great with it’s NRPE plugin architecture that lets us set CPU, Memory, and Disk I/O watermarks that help us know in extended testing how a server or servers will perform.
Being prepared and knowledgeable about what results you should expect to see from your tool chest is key. Quite a bit of work also goes into tuning each server so that unnecessary software and programs are not running, and required software only has the required modules necessary to perform the tasks expected.
In later blog entries, I’ll break down each phase we go through for our SAAS customers. In a lot of ways, SAAS procedures we’ve developed at Colocube have had the positive benefit of greatly helping us to serve our managed customer base and new customers that have similar requirements. Hopefully, you’ll find some interesting and useful material as you follow along.