Blog  Subscribe to our RSS feed RSS

Stress and Performance Testing on The Student Room

tsr-testing

Page load time and site stability are critical, especially when your business is your website. Knowing how a website performs under specific circumstances is essential for every business owner – a poor performance leads to lost revenue and customers.

The Student Room is the biggest online student community in the UK. Every year after highschool graduation, students start looking for the right university, often referred to as the Clearing Phase. During this period the traffic to The Student Room increases significantly. They asked us to ensure their site could withstand the surge in traffic they were going to be hit with.

Testing The Student Room

clearing_traffic
Traffic spikes by 108% during Clearing.

Having run into performance issues before, The Student Room wanted to be on the safe side and asked Gossamer Threads to run a performance test prior to this important time of the year. One aspect of the test focused on the disaster recovery set-up in Vancouver to make sure they were prepared if ever their servers in London failed.

Another aspect they wanted to measure was the impact of updating PHP and MySQL on the performance of their website.

After discussing the project and understanding The Student Room’s concerns, two main goals for the test were defined:

  1. Testing if the disaster recovery server in Vancouver would be able to handle the expected traffic increase in case it needs to take over.
  2. Updating PHP and MySQL to the newest versions:
    • To see the exact impact on load time and performance.
    • To see if these versions were directly compatible with their code.

Preparing the Test

Our Quality Assurance (Q/A) Analysts and System Administrators worked closely together to set up a testing environment that mimicked The Student Room’s live site as accurately as possible. Because The Student Room is located in the UK and gets most of its traffic from UK students, our System Administrators set up a virtual server in London, allowing our Q/A Analysts to simulate website traffic from a UK IP address. Additionally, Google Analytics was set-up to evaluate the traffic closely.

We also needed to consider different scenarios for the two test goals:

  1. Preparing the performance test of the disaster recovery server required a little bit of calculation because we needed to test if it would be able to handle the increased traffic during Clearing Phase. In order to provide accurate information, our Q/A Analysts needed to estimate the traffic increase during this time. To do so they compared this year’s traffic against last year’s and adjusted it for the yearly increase. They also checked the traffic individual pages received in order to measure the performance as accurately as possible.
  2. The purpose of the second test was to measure the performance after upgrading to the newest versions of PHP and MySQL. We emulated a user’s behavior including wait-time, input errors, and drop-outs. Their forums and wiki pages were considered the most important ones and we focused our testing on these two, although we still wanted to guarantee that the rest of the site would perform well.

Running the Performance Tests

We used Apache JMeter to run the test and New Relic to verify the performance results. The performance testing was done over two days, during which we logged the response times, concurrent number of users, response codes, transactions per second, and number of bytes served.

Testing the Disaster Recovery Set-Up
For this test our Q/A Analysts sent the estimated number of requests to the server in our Vancouver data center. The server was able to handle the amount of traffic, but we still needed to fix a few issues in order to fine-tune the performance:

  • The Student Room usually has only one web server to take over in the event of a failure. This is good enough throughout most of the year, but becomes an issue during Clearing Phase. That’s why we added seven more servers for this specific season.
  • Additionally, we increased the RAM and CPU allocated to each server to improve the response time.
  • We also did some fine tuning on the database: MySQL typically has to generate some temporary data at the request of the web server. This data is usually stored on the hard drive. For better and faster access during Clearing Phase we moved this data into RAM instead. This requires significantly more RAM, but consequently the queries can be accessed much faster which speeds up the process.

disaster-recovery
The Student Room will failover to the Vancouver, Canada server setup in the event of a failure.

Upgrading PHP and MySQL
We completed two tests: The first one tested the performance of the current version of their PHP and MySQL software, the second measured the performance after upgrading them. This benchmarking allowed us to measure the exact impact of the upgrade. Additionally, we were able to discover any possible issues regarding bugs and website failures due to the upgraded software versions.

The Outcome

Upgrading PHP and MySQL led to a noticeable increase of response time at all times with an average increase of 30%; and the upgrade didn’t introduce any bugs. Our Q/A Analysts also discovered that the response time was steadier. (you can see the line is smoother in the diagram below.) This was likely a consequence of lower latencies as processes/connections in MySQL didn’t need to be held as long, freeing them up quicker for use by the next requests.

Software_upgrade_overall_latency
Upgrading the PHP and MySQL software led to better performance and a noticeable decrease in load time.

Testing the disaster recovery server led to a few issues that were worth investigating. The possible server issues that might have affected the performance were fixed thanks to the close co-operation of our Q/A Analysts and System Administrators.

Performance Testing at Gossamer Threads

Thanks to the performance tests, The Student Room’s disaster recovery set-up is stress-tested and it’s equipped with all the necessary information to consider before upgrading to the newest versions of PHP and MySQL.

Knowing how a website performs under specific circumstances can be crucial when it comes to revenue. We are happy to help you find out if you are equipped for emergencies. Let’s talk.