The latest round of performance improvements has now taken place. Although just prior to the implementation of these the site was mentioned on ‘Bang goes the theory’ and coped with the small spike in traffic this caused. I think this is evidence of improvements brought from the previous round of performance changes.
This latest round has focused on the move of the site onto higher spec hardware with considerably more RAM to allow the site to cope with many more concurrent requests. Along with the RAM there have also been changes to the web server configuration, with two instances of Apache running; a smaller footprint gateway web server which is responsible for serving all the static page requests such as images and stylesheets and then a second web server being passed all the requests for dynamic pages e.g. drupal pages. There are many more requests for static pages than dynamic so this should allow the smaller footprint server to deal with these requests whilst saving memory for the dynamic page server to use.
The use of a gateway server also means we can map calls to the bayesian keys website to a URL without the :8080 in it, also we can have the keys website hosted on an entirely different server whilst still using the ispot URL.
Along with the move of the site I have also now set up the ability to monitor this site in a much more detailed way so allowing us to pinpoint bottlenecks/issues with the site and rectify these. This has already lead to the identification of several bottlenecks that have been fixed.
On the database server side of things, this has also been moved to a new server with much more RAM and has been set up for this along with making sure that the database configuration is matched to the PHP configuration on the web server. There has also been a change to the types of tables used to store the website data, this is in line with changes that have taken place in Drupal 7.
There are still many things that can be improved to help the site’s performance, these include:
- adding more caching using things such as Apache Solr and Memcache
- combining many of the images used in the site theme to one file so minimizing requests to the server
- move the Drupal core code over to Pressflow(a re-worked version of Drupal with greater scalability)
- changing various aspects of the site code such as image handling and badges/roles.
Before moving the site to the new servers we carried out some benchmark testing on them and, although it’s hard to mirror real world usage, the results seem to suggest that the new servers are capable of handling somewhere in the region of 10 times the amount of traffic of the old servers… time will tell. The beauty of the new architecture is that we can up capacity if we believe that we may need to, so we are in a much better situation for potential increases in site traffic.