Updated comparison of performance modules

We encourage users to post events happening in the community to the community events group on https://www.drupal.org.
juan_g's picture

These days I've added a feature table to Caching: Modules that make Drupal scale, this group's wiki page for comparison of performance and scalability modules, started by Mike Carper some time ago.

This follows other Drupal module comparison pages, trying to make it simple and clear for most normal cases, so that a majority of users can easily understand the basics and use them. Anyone can naturally share additional info. Let's hope the wiki will be useful for Drupal users.

Comments

Module descriptions

juan_g's picture

A Descriptions section has been started on the wiki page, for additional details complementing the feature comparison table.

More helpful info

mikeytown2's picture

Letting people know what modules are the most popular is quite handy IMHO. # of open bugs for the latest version (would be 6.x right now) is a better way to list if it is Maintained IMHO. Both make the wiki harder to keep updated though... maybe a link for bugs. Example: Boost: Open bugs for 6.x.

Usage stats, etc.

juan_g's picture

Mike wrote:

Letting people know what modules are the most popular is quite handy IMHO.

All right, I had already included (in "See also") a link to the list of performance modules sorted by usage statistics, but I've now ordered the modules in the table following those same stats.

BTW, congratulations. The Boost module, whose 6.x version you are developing and maintaining, is now the #3 by usage (#2 for contributed), probably because of its really good performance and compatibility with all hosting types, even shared.

And about the "Maintained" column, I've seen the recent (last months) activity. If the module maintainers are committing code and/or replying to users in the issue queue, I simply wrote "Yes". If not, then "Low activity". Also, I think the number of fixed issues is more indicative of maintainer activity than the number of open issues, quite high for some semi-abandoned modules. I'm not sure how to weight those different factors (commits, issues...), and there are already links to the project pages, but maybe others can improve that aspect of the table.

Updated it

mikeytown2's picture

Under Performance gain I added in "very high" for caching that completely bypasses the php/drupal layer. Boost & Varnish are in this category. Also put in 2 links to the bugs in the issue queue for boost explaining that 6.x is maintained while 5.x isn't.

Benchmarks

juan_g's picture

Differencing between high and very high might be a bit controversial. Maybe people can add some benchmarks (requests per second, etc.), also for Memcache, APC, etc.

Very High

mikeytown2's picture

Serving static files is always faster then any kind of program/caching... the only way to make it faster is to serve the static files from memory, which is what varnish can do.

This is slower then

<?php
echo "Hello World";
?>

This

Hello World

New benchmarks section

juan_g's picture

I've added a new section "Performance benchmarks" to the wiki page, with some links, and naturally other people can add more links, etc.

Well, it's true that bypassing both PHP and database (via .htaccess) makes a very significant performance difference, but there are other possible combinations of factors, and many different situations. Boost is really one of the best performance modules indeed, however using APC+Memcache (Cache Router) can also give excellent results. Because of this, I considered these, like Boost, high performance modules.

And, if we wanted to differentiate between high and very high, then Varnish would be super high... Since Boost seems near Memcache, etc., I would reserve the "very high" label for Varnish. Just an opinion.

Anyway, that's just a simplified table to give Drupal users a basic, general orientation. Performance specialists can analyze specific sites, configurations, etc.

Boost vs Varnish

mikeytown2's picture

No one has yet to benchmark this, if using apache, yes varnish will win; if using nginx it's another story... one that has yet to be written.
http://groups.drupal.org/node/26485#comment-91278

Combining high performance caches/modules

juan_g's picture

Benchmarks of Boost vs Varnish in similar server configurations would be very welcome and interesting, naturally. There are already benchmarks on Project Mercury (Pressflow+Varnish) vs others (not Boost for now).

I've added a little to the wiki page, about combining several high performance caches/modules, which can also give a very high performance gain. For example, APC makes PHP much faster, and Memcache improves performance with a high-speed memory cache, skipping the database.

nginx vs varnish

mikeytown2's picture

There are some reports that nginx is faster then varnish, so it really depends on the rewrite rule complexity penalty vs varnish
http://www.ruby-forum.com/topic/167859#737384
http://blog.mudy.info/2009/02/nginx-vs-cherokee/

Memory vs file caching

brianmercer's picture

According to the Varnish guys, file caching can be faster than memory caching. Or at least leaving the memory caching to the OS.

http://varnish.projects.linpro.no/wiki/ArchitectNotes

I'm sure it depends a great deal on scale.

Virtual memory

juan_g's picture

Brian wrote:
"Or at least leaving the memory caching to the OS."

Yes, something interesting about this:

"Varnish stores data in virtual memory and leaves the task of deciding what is stored in memory and what gets paged out to disk to the operating system." [Wikipedia: Varnish (software)]

I think virtual memory uses disk when there is not enough RAM (faster than disk, if available).