Book review: Drupal 6 Performance Tips
Most books on Drupal cover various aspects of developing websites using this versatile platform. After reading one of these you might find that you have done a rather good job of it and your site is attracting an increasing amount of traffic. This is great until the point where your site starts to struggle to keep up with demand. Left unchecked this could result in your site becoming slow to use and people becoming impatient and looking elsewhere. At this point you might be tempted to throw money at the problem, maybe an expensive new server or an upgrade to your hosting account. Before you do though it might be worth reading “Drupal 6 Performance Tips” by T.J. Holowaychuk and Trevor James that explains strategies and technologies that might help out.
The book contains lot of information that is very useful to developers looking to build high performance sites, but as the preface says you do not have to be a developer to understand the book. If you find yourself responsible for an externally developed site but wouldn't classify yourself as a programmer this book is aimed at you too. Whoever uses this book though will need to have some idea of how Drupal and web hosting works though, that said chapter one eases the reader in with a discussion of how to upgrade modules and apply security updates to their installation. Interestingly the book starts with the example of a Drupal 5 site and covers updating it to Drupal 6. This is really useful as Drupal 5 is starting to age rapidly now and many webmasters will be thinking about the upgrade process.
I liked the way that this book accepted at its heart the real world nature of websites. It always remembered that it was about improving the performance of existing Drupal installations and didn't go in for the idealised examples of everything working perfectly that you would get in development books. People sometimes talk of “gritty realism” in TV drama and maybe this book is the closest I've ever seen a computing book come to that concept! I loved the screenshot of the site in chapter one with the screen covered in error messages. The text covered the example of a reasonably complex site built using Drupal 5 that even had views and this sort of upgrade work can be complex so the book calmly explained a situation where things did not go smootly and how to get though it. That said, there where a couple of ideas explained later on in the book that I wouldn't fancy having to explain to a System Administrator.
Before going through the modules for performance enhancement the book starts by explaining to check for problems and bottlenecks and performance issues caused by the configuration of your site. This discussion covers such things as making the most of the caching options in Drupal core and later on setting up Drupal in multisite mode which can save site administrators a lot of work. Chapter three shows you how to identify bottlenecks and then goes on to explain how to use the devel module to identify anything in your site that is expensive in terms of memory usage or strain on your MySQL server.
If optimising the configuration of your site is not enough to get good performance the book goes on to explain some of the additional modules and technologies that are available to enhance performance. It is very useful to see some of the options drawn together in one place and I found that I learnt quite a lot by reading about modules that I had not encountered before. Some of these modules can be quite complex to install and configure. Sometimes they will require the installation of extra software on your server. This can get quite complex and it would be easy to disappear into a discussion of the finer details of the many configuration options for these modules. Fortunately the book avoids this with some good walk-throughs of getting these modules installed set up, configured and ways to test that they are working. What I liked about these walk-throughs is that is managed to do this without being overwhelming and gave you a basis where could understand the module then go off and find further information about it.
Although I think the book was generally good there were a few things I felt could be improved on. The first is something I keep finding myself saying: don't assume everyone uses Windows! I don't care if “most people” use Windows, lots and lots of people don't. Alas the book goes down this route, even settling on Windows XP, which is not even the current version. To be fair the book does mention at points where to find information about how to do things on non-Windows platforms so that is very helpful.
The book makes extensive references to an example site, even using real URLs at times. It maybe would have been useful to have been able to download a complete version of this site to enable the option of being able to follow the examples in the book and try the ideas out on real code. The book should maybe have stuck to WAMP for building a development server too, it mentioned something called MoWeS to build yourself the equivalent of a LAMP stack on Windows, but the URL given resulted in a “page not found” error and when I did find it I could not see the the benefits of using it in this instance over a plain WAMP installation (which is an excellent choice if you are a Windows user).
Sometimes the book would explore options that were maybe not “production ready” as well. This is a difficult one as books by their nature can't be kept up to date very easily. The discussions about modules such as Cache Router and Advanced Cache were interesting, but currently these modules don't have finalised production versions for Drupal 6. A point illustrated in chapter eight where a development version of the Advanced Cache module had to be patched to fix a fatal error, this was after core code had to be patched to enable it to work. These are the sort of changes that I would imagine would make a System Administrator very unhappy indeed and I would not really want to have to explain this as an option to improve performance. That said, it is possible that these modules will become production ready during the lifetime of the book, so it is useful that they are there for the awareness of the reader.
There were a few additional items I would have liked to have seen in the book too. It would have been interesting if there was some material on the relative performance of installations using MySQL and PostgreSQL and any special considerations needed when using different databases. Chapter four also explained the throttle module, but it would have been nice to have some more explanation about how the numbers used in the configuration were arrived at. Lastly it would have been useful to talk about the role of users in improving performance. Chapter two mentioned users trying to upload 50MB Powerpoint presentations, but should they even be able to do this? Perhaps some discussion about using web analytics data to understand the average connection speeds of your audience too could have provided an extra dimension to this discussion.
Overall there was a lot to like about this book and I am sure it will become very useful. With the increasing popularity of Drupal and the continued growth of the Internet this is a well timed and useful resource for people running successful Drupal powered websites that explains some ideas for getting the most out of your Drupal installation without being overwhelming.
If you like the sound of this book then you can buy it now by clicking this link (or the book image). Yes this is an affiliate scheme so when you buy through this link you'll be helping towards my hosting fees! But, no reviews on this site are never affected by the presence of an affiliate scheme. If I don't like something I will always say.