After my previous post “A highly scalable WordPress self-hosting that is not a burden on your wallet”, I had a few month to tweak the system and experiment. Additionally, we shifted the technologies around a little bit.
hardware changes
We switched to a kvm machine with 256MB RAM, which is only 1/4 of what we had before. This was primarily cost related, as our plan price would have doubled in the coming year.
The phoronix test suite was released onto the server to see how the performance changed. The cpu power we get is a little less, the disk speed less than half, but it’s more than sufficent with a transfer rate above 100MB/s.
| kvm server | previous server | |
|---|---|---|
| cpu (compress-gzip) | 29.94 seconds | 24.39 Seconds |
| io (aio-stress) | 111 MB/s | 263 MB/s |
To check, that the “slower” server still performed well, we used httperf to check our static page delivery and cdn. The test showed, that even if we multiply our peak load by ten, we’re still serving the pages in less than two seconds.
httperf --server united-coders.com --num-conns 600 --rate 20 Total: connections 600 requests 600 replies 600 test-duration 30.244 s Connection rate: 19.8 conn/s (50.4 ms/conn, <=8 concurrent connections) Connection time [ms]: min 231.6 avg 272.9 max 1715.4 median 248.5 stddev 68.3 Connection time [ms]: connect 41.1 Connection length [replies/conn]: 1.000 Request rate: 19.8 req/s (50.4 ms/req) Request size [B]: 70.0 Reply rate [replies/s]: min 19.0 avg 19.9 max 20.4 stddev 0.5 (6 samples) Reply time [ms]: response 67.2 transfer 164.6 Reply size [B]: header 246.0 content 49512.0 footer 2.0 (total 49760.0) Reply status: 1xx=0 2xx=600 3xx=0 4xx=0 5xx=0
software setup

We dropped Apache for Nginx. Nginx has the lighter footprint for our new system and performs well.
Varnish also had to go. My configuration, basically what i found on the web as recommended settings with some tweaks, did provide more misses than hits. Furthermore our lower memory does not allow a big caching overhead any more. So we simplified the setup.
We’re still running W3 Total Cache and Amazon Cloudfront without any complaints and with a measurable performance improvement.
server and application monitoring
A few weeks back I stumbled upon New Relic on the W3 Total Cache settings inside WordPress. New Relic is a server and application monitoring tool. For our use case, monitoring one server and php installation, they have a free plan. I really like New Relic, as it helped me to find a configuration mistake, which slowed down the site. Additionally I could see, that the database was not a bottleneck, after I cut back memory consumption of MySQL.
In case of trouble or bad performance, it will send out alerts. For this blog, it’s all we need.
cost
As mentioned in the beginning, one reason for the switch was the price increase of our old plan. If we would have with our host the price would have doubled. The new virtual server comes in at $3.60 a month. Amazon S3 + CloudFront is around $1 per month. We round this up and say our average cost currently is $5.00 per month. This is slightly less than what we paid before and an affordable price for having your own virtual root server and the freedom that comes with it.
newsletter
A new feature is the newsletter, which we currently send once per month. It’s just a summary of the new articles we have and some interesting links. Additionally we encourage to give some feedback or interesting stories. The newsletter is still in its beginnings, but it’s slowly picking up subscribers.
As we migrated quite often, I decided to “outsource” the newsletter and let MailChimp do this for us. Again, at free tier. Once we make it to the critical 2000 subscribers, we’ll think about how we continue.
summary
As far as I could test performance was satisfying. The page usually loads in less than two seconds. The software used is easy to configure and runs without a problem so far. We haven’t had any real peak yet. Looking back, our best day so far was 5000 unique visitors creating around 6000 page views within ten hours. I’m confident, that the system wouldn’t even break a sweat with that number.
Nico Heid
Latest posts by Nico Heid (see all)
- Raspberry Pi Supply Switch, start and shut down your Pi like your PC - August 24, 2015
- Infinite House of Pancakes – code jam 2015 - July 13, 2015
- google code jam 2014 – magic trick - April 18, 2014