The site examenklacht.nl ('exam complaint') of the Landelijk Aktie Komitee Scholieren (LAKS) has seen a lot of traffic lately. LAKS is the Dutch national action committee representing high school students. On the site examenklacht.nl students can get information about their high school exams and lodge complaints. The site is also the first site to publish Dutch exam results so the site tends to get swamped with visitors when that data comes in.
The site was actually unreachable a for a period of time on Thursday the 17th when 20,000 students tried to reach exam results at the same time. The examenklacht.nl site is located on a Windows virtual server. Below you can see the CPU graph of this VPS.
Server Load examenklacht.nl - Thursday the 17th of May, 12:00 AM - 12:00 PM
In the evening after the performance problems we were contacted by LAKS to optimise the performance of examenklacht.nl. They were expecting an extremely large number of visitors the following Monday. Two big exams were planned that day and the Dutch minister of education would visit the LAKS offices in the afternoon.
The first thing we did was optimise the general configuration of IIS and switch on its internal caching. We managed to increase the server speed significantly but were still worried the site would go down when confronted by more than a few thousand simultaneous visitors.
Varnish workflow Varnish is a HTTP accelerator that caches content in memory after it is requested. The next time the request is made the static content can be served out of memory relatively quickly. The users of the site are requesting mostly static content so if that static content can be kept in memory a lot of waiting can be avoided.
Varnish can take some work to set up – it has a lot of configuration options. Dynamic elements (like cookies) also need to be stripped from static data, or the caching will not work. Implementing SSL can also be a lot of work. With a few hours of configuring, most sites can experience significant improvements, however.
In our experience Varnish works best when it is placed on a separate virtual server, in this case a VPS with 3G of memory and a small hard disk.
Server Load examenklacht.nl - Monday the 21st of May, 12:00 AM - 12:00 PM
The graph above shows the server load during the Monday peak after the implementation of Varnish. The site was extremely fast for the entire period and the maximum CPU load recorded was 28.7%.
Please contact us ahead of time if you have a site or application that is expecting peak performance. We will be able to use Varnish (and many other techniques) to optimise the experience of your users.