We, at Morris DigitalWorks, have been working like dogs to optimize our Drupal sites' performance by trying different caching modules and combinations of configurations and yet, we hadn't found the most optimal solution until earlier this week.
We had been experimenting with using Pressflow in combination with Memcache and the Boost module and had some improvements in performance but, there were points where Boost interfered with the large amount of content our sites were dealing with, which on top of that, caused our file system to be flooded. We scrapped that. Though the Boost module is a great simple solution, it is not a solution for high traffic sites with a large amount of authenticated users and sites that reside behind a squid system.
Michael Worsham, aka Swampcritter, informed me today that he finally generated a patch, that allows the two major caching modules, Memcache and Authcache, to be able to work together and more properly cover our caching needs without sacrificing performance. We have been using Memcache for a while and it is extremely beneficial and Authcache is a new module that we've just begun to experiment with.
The Authcache module is an amazing tool in that it allows caching for authenticated users. It's only drawback is that it cannot work multiple instances and it can be clustered to allow for fail-passing.
In beginning tests, the Authcache module improved page load by almost 75% which dwarfs our current load times but, did not do as well when handling unauthenticated users at the same time under heavy user loads (actually it failed pretty bad... it made the box cry). The main thing that we found, though especially, was that we could not have both Memcache and Authcache running at the same time. Each system wanted to be the "one" to handle the site caching.
Michael worked to find a way to get the two to play nice together so that we could a good handle on usage by unauthenticated and authenticated users, which in the end, as he presented to me today, yielded a patch to allocate session handling (authenticated users) and other site components between the two systems to allow them to handle the data that they want to without stepping on each other's "feet" so to speak.
So, that's pretty much our performance solution as of now... (sorry D5.x users Authcache is not available for that version). A Pressflow 6.x install combined with Authcache and Memcache.
I have invited Michael (Swampcritter) to write a post talking about his work along with a release of his patch and configurations that he used to make the system work.
I am also going to try an implementation of the same configuration using the basic Drupal 6.x install combined with the two caching modules, myself, to see how it affect this site (not because it's a high traffic site but, because i want to).
0 comments on Getting the Most Out of Your Drupal Site's Performance.