The mercury stack for WordPress
- Installing Xdebug remotely to debug WordPress and gather profile traces - November 23, 2022
- Speeding up WooCommerce 7 (wp-admin and imports) - November 4, 2022
- More speed boosts for wp-admin and imports with Scalability Pro upgrade - October 12, 2022
The Mercury stack is the fastest single-server stack possible so far for WordPress. It makes WordPress VERY fast.
Transcription: So I’m going to tell you about the mercury stack, it is good for wordpress, it makes it really fast. So what is it? Normally if you are on a normal host it’ll host your wordpress installation on a OS called centos. Now centos is slow, you can’t get latest version of php, you can’t get the latest version of *******. Reason why hosts use it just because it has got compatibility so it reduces their maintenance and support costs but compatibility with other stuff not just wordpress. So anyway, mercury stack uses Ubuntu 14.04, which is really fast – one of the fastest operating systems out there. Now wordpress runs on PHP, normally PHP is interpreted, that means as the pages are loading and running it turns it into machine code one line at the time or as the pages are running. The mercury stack uses something called HHVM created by facebook because facebook is written in PHP, when facebook realised that they were getting big they realised that interpreted PHP wasn’t fast enough. So they made something called HHVM compiler, Hip Hop Virtual Machine, which basically compiles all your PHP pages into machine code in advance. So that makes your pages, depends on what you’re doing, for woocommerce websites, if you have got a lot of products, it can make your pages 5-10 times faster just from that one thing alone. It’s 100% compatible with woocommerce but there are some incompatibilities like with bunnypress but with the mercury stack there is a fall back, it will fall back to using PHP if an error occurs. So you do get 100% compatibility and you get the benefits of the performance where it will work which is, and as long as you are not using bunnypress you will get 100% compatibility and it will always be using HHVM. Right so that’s your compiled pages then wordpress also uses mysql.
Now Mysql is a great database, it can handle millions and billions of rows in your database but there are two forks, that are really popular of Mysql, that are 100% compatible, one of them’s called MariaDB, one of them’s called PerconaDB. I use in the mercury stack I use PerconaDB, it’s about 80% faster than Mysql but that’s not all – it also doesn’t suffer from nips in performance. You get nips in performance with Mysql every time it’s cleaning up, every 5 minutes every 10 minutes. You can see some graphs on my mercury service page. So PerconaDB is another part of it, then you also get a whole bunch of caching. So you get memcached, which is great for, if you have multiple servers it’s great for distributing caching, I also use something called APC caching which is, I tend to use that, when I’m setting up mercury stack I tend to use w3 total cache but I’ll use disc cache for page caching and I’ll use APC caching for object caching potentially also for database caching – depends how much memory you’ve got on your server. The more memory you’ve got the more you can take advantage of caching. And what that means is that you don’t have to run the database calls at all if they’ve already been run before. Now in front of all that, we have Varnish which is an absolutely lighting fast http accelerator, it basically has a copy of your entire page served up for the users, really really fast and basically it’s lighting fast. But thats only for fully cached pages, it doesn’t, it makes the scalability of your site huge so you can have thousands and thousands of simultaneous users without even hitting your php hhvm code. Also, most hosts will use a web server called apache. apache again it’s really popular because it’s compatible with so many different things but there’s a better one that’s far faster has a lower memory footprint, scales better and it’s called enginex. So the mercury stack uses enginex.
Again, combine all these things together, you’re talking, depends on how many products you’ve got on your, or how many posts you’ve got on your wordpress database but you’re talking overall anything between 5 and 50 times faster. It’s really that fast. Now what you can expect with the mercury stack is a 100 millisecond page load time. Now that’s lightening fast that’slike you’re now playing with the same speed as the big boys.So I’ve got a service where I can install it for you, i’ve got it all basically scripted or you can do it yourself and just forward over the script if you are not afraid of SSH but if you want me to do it for you I’m very happy to do it. Just find it on the service page. If you’ve got any other questions I’m gonna set up a forum on the site so you guys can ask me questions. But that’s the mercury stack and it’s awesome.
You can find out more about the Mercury Service options here
December 30, 2015 @ 8:33 pm
LEMP stack would be quicker over LAMP. Ngnix and Varnish both work really well.
January 5, 2016 @ 3:46 pm
Agreed – Nginx beats Apache easily on speed and scalability