Informative articles on various technologies ...

Performance Logging and Monitoring: A module to log and monitor performance statistics for Drupal

We've released a new module for performance logging and monitoring of Drupal sites.

The module shows pages and how much memory they are using for each page load, as well as the milliseconds of page generation time for each as well.

The module is intended for developers as they are building and testing sites, as well as site administrators to measure the most resource hungry pages.

Free your content of PHP: Moving PHP code out of blocks, views and nodes

From the early days, Drupal had the ability to embed PHP code in its content. This provides flexibility and functionality, most importantly, nodes and blocks can contain dynamically fetched data from the database using custom queries and displayed them in other content.

This is an easy approach to get such data without writing a module. All you need to do is assign the PHP input format filter to the node or block and paste your PHP code in it, and voila, you have dynamic content.

Benchmarking strings overrides vs. locale module

Drupal is distributed in English by default. Translations into other languages require downloading the translation, enabling the locale module and importing the translation's .po file.

Another use for the locale module is when the Drupal terminology is not suitable for the site's audience, and the site owner wants to replace end user facing text with custom versions of that. In this case, they create a locale, and change the strings they want.

Configuring Drupal with multiple bins for memcached

In a recent article, we explained how to build memcached from source and  PHP memcache using PECL on Ubuntu Gutsy 7.10.

This article is a followup on how to configure memcache for Drupal, and how multiple bins help with performance.

Each bin in memcached correspond to one or more cache table in Drupal.

To do this, we first setup a start script for memcache that would start each bin with the correct size. This would go into /usr/local/bin/

How to copy images partially from a live Drupal site to a development/test site

Copying a Drupal site from a live server to a test one is normally a straightforward process: you dump the database, and create a tar archive of the site, extract the archive, load the database dump, make a few changes to the settings.php file, and voila: you have a test site that mirrors the live site. You can then use this for development, training or any other purpose.

Benchmarking Drupal with PHP op-code caches: APC, eAccelerator and XCache compared

Almost every one knows that running high traffic sites powered with PHP applications is impossible without a PHP op-code cache / accelerators. Op-code caches speed up PHP applications by parsing and tokenizing PHP scripts once, and executing them faster for every subsequent request.

There are several accelerators available, many of them are free. The ones that are maintained are:

Installing memcached 1.2.5 and memcache pecl 2.2.3 on Ubuntu server

A large web site that built and manages gets over 1 million page views a day. It has been using Drupal's Memcached API module for several months. The version installed until yesterday was 5.x-1.1. Since there is a newer version (5.x-1.7), it was time to upgrade.

The upgrade seemed to have gone well, but we saw the load on the CPU to go up a lot during peak hours.

Installing PHP APC on GNU/Linux Ubuntu Gutsy Gibbon 7.10 (and Debian)


On Ubuntu 12.04 LTS (Precise Pangolin) the repositories already contain a package called php-apc that works very well. There is no need to install APC using pecl at all as in the article below.

Complex PHP applications, such as Drupal, can gain a lot of performance benefits from running a PHP op-code cache/accelerators.


Is your Drupal or Backdrop CMS site slow?
Is it suffering from server resources shortages?
Is it experiencing outages?
Contact us for Drupal or Backdrop CMS Performance Optimization and Tuning Consulting