- Posted by bwf
- On November 11, 2014
- 0 Comments
Magento is a powerful package and it is becoming more widely used for eCommerce websites. It is also a very resource intensive application and servers need to be tuned and optimized to ensure Magento sites run really well.
We were approached by a local company ‘Robinson’s Shoemakers’ who are one of Ireland’s most prestigious gentlemen’s shoe companies offering bespoke shoemaking, traditional English brands as well as a shoe repair service. Robinson’s customers include Game of Thrones actor Ian McElhinney, Reggae Reggae Sauce Creator Levi Roots as well as the Ulster Senior Rugby Squad and St Johnstone FC.
Prior to hosting with Big Wet Fish Robinsons had a VPS Server running cPanel, Apache and MySQL supplied by a competitor. Although the VPS had a decent specification they were finding their website running pretty slowly and as part of their SEO strategy and in an effort to increase their conversion rate they were wanting to speed up the website.
Our understanding is the previous supplier increased the server specification for them but that did not actually have any effect on the loading speed of the site. The site did feel sluggish especially if you were trying to perform queries showing say 100 pairs of mens shoes on a page. This slowness made sense as the slowness was not caused by any lack of server power, rather it was caused by how the server was set up. The Apache / MySQL server setup was perfect for most applications but critically it was not optimized for Magento.
We engineered an SSD Powered server solution for Robinson’s and their website loading time was instantly better the moment they switched over. Site load times were decreased, The GT Metrix Speed test site showed significant improvement and all in all the directors of the company were happy with the boost in performance.
So what did we do to make this website scream with speed:
100% Dedicated Hardware
We moved the website to its own completely dedicated SSD powered server where the raw power of the 8 Xeon CPU Cores and 32GB fast RAM was exclusively available to the website with no contention from other Virtual Machines. The RAID10 array with a fast cache also helped ensure there were zero bottle necks in the Input/Output to and from the disk.
Raw Linux with No cPanel
Whilst cPanel is an awesome piece of software and many clients love it we felt in this case it was an extra layer of software that could potentially slow the system down. We deployed the server with Linux and configured the server manually.
Out with Apache and in with Nginx as a back end server
The old server that was being slow ran Apache. We chose to implement this server with Nginx as opposed to Apache. Nginx (pronounced engine-x) is a free and open source, high performance http server and reverse proxy. Nginx is known for its high performance, stability and low resource consumption. Nginx was also finely tuned to work with PHP-FPM and APC opcache to get the best possible performance out of the server
Varnish as the Public Webserver
Varnish was installed as a high performance cache server, it will retain commonly fetched items completely in RAM which is perfect for speedy browsing as accessing RAM is much faster than accessing the disk. For anything not cacheable (for example: there is a cookie with a php session, meaning they are logged in so we should not cache certain output) it will hit the backend server. This really made the difference to the Robinson’s Shoes website.
Below are some examples of the caching working on the server.
The important fields to note are ‘hits and ‘misses’. A ‘hit’ is when the Varnish Cache serves the item the user requested. A ‘miss’ is when the cache doesn’t have the file stored yet and Nginx serves it. You’ll note that the ‘User Cache’ shows a lot more misses compared to hits than the file cache, this is because the User cache typically serves logged in users, with a session cookie, which Varnish does not cache.
We worked to finely tune each setting until we got the best caching performance we could find. There may be lots of products but in theory they should not change often enough that we can not get the majority to be cached in RAM. This is what we aimed to achieve with this setup.
Backup was provided through our partnership with R1Soft – the backup solution we implemented can make backups as often as 15 minutes apart to ensure minimal loss of data should the server develop a fault. There is the possibility of extending this to a clustered MySQL setup with real-time replication but this was not specified in the original proposal but as the company grows this is on the cards.
So How can we help you?
Talk to us about your custom server needs and allow us to put together a quote for a fully managed server for your application. We believe the custom optimized server solution we have engineered for Robinson’s will be of great benefit to them as they move forward as a business.
We would welcome the opportunity to talk to you about deploying an optimized custom Magento server for your application or website. We have the expertise in house to make this happen quickly and efficiently for you.
Why not have a browse on the Robinson’s Shoes site yourself and see what you think of the performance?