Pressflow – Performance Optimized Drupal

Author: Abhiraj Banerjee | Categories: CMS

Drupal is a very flexible web content management system. It provides a robust API and development framework to customize and enhance its core features. That’s one of the reasons why today there are around 8,000 modules available (and this number grows day-by-day) which provide functionalities not included with Drupal’s core. Using those modules, it’s possible to create various types of websites and web applications: from online communities to intranets, from CRM systems to eCommerce portals. If there’s no module to suit project needs, experienced Drupal teams can build project-specific modules with ease.

In addition, Drupal can run on many database platforms such as MySQL, PostgreSQL, and SQLite, giving business owners the flexibility to choose the platform that suits their licensing and infrastructure requirements. It also supports several major releases of PHP, namely PHP 4 and PHP 5 and can run on Linux, Mac or Windows servers.

However, this flexibility comes at a cost. Having an extendible API, which suits each and every use case and capability to run on different technical platforms, creates some performance bottlenecks which become visible on high traffic projects with thousands and thousands of visitors a day. However, there are many large scale projects which still run on Drupal to take advantage of its flexibility. So how do those projects handle high traffic loads?

The answer is Pressflow!

Pressflow is a Drupal distribution which was built to take advantage of Drupal’s flexibility and leading industry practices in high-performance web applications. Pressflow is still the same good-old Drupal, but with some performance tweaks under the hood.

How is Pressflow different from Drupal? Here are some differences:

  • Optimization for MySQL. While Drupal runs on multiple storage systems, the majority of websites run on MySQL. Therefore to eliminate the cross-database support overhead, Pressflow is tuned to work only on MySQL which gives significant improvements on the database access level.
  • Database replication. Pressflow is built to support MySQL database replication out of the box. What MySQL Replication gives is multiple database support on a single web application, resulting in reduced load on a single database, thus improving the performance of the application overall.
  • Reverse proxy caching. A reverse proxy cache is a technology which helps to reduce the load on the web server, application and database servers by caching content between the visitor’s browser and the server. When a request is made, a reverse proxy cache returns data from its own cache if available, instead of making a request to the server, thus reducing the load on the latter.
  • Optimization for PHP 5. Drupal provides wrapper functions to provide PHP 5-style operations to PHP 4. Although this provides support for PHP 4 to run advanced features, it comes with an overhead and often slows down the application. Pressflow supports only PHP 5 so it replaces those wrapper functions with higher-performance PHP 5 alternatives.

Pressflow can even be a drop-in replacement for an existing Drupal project and since it still runs the same core, those 8,000 contributed modules are compatible with Pressflow too. So if you anticipate that your project will receive thousands or even hundreds of visitors a day, edynamic highly recommends that you go with Pressflow instead of pure Drupal.