A month ago I started experimenting with various VPS hosting solutions for this website. Well I now consider myself settled for the time being.
Here are a few of my findings for those that were interested. Nothing Delphi-related there.
Note that while I am listing some Virtual Private Server vendors here, they are all from France.
The benefits of switching from a shared host to a VPS can be summarized by the following chart, I do not have to point the day the switching occurred, do I?
From Google Webmaster Tools point of view, all VPS were similarly good.
UptimeRobot, which I also used to monitor things reported similar findings.
Windows or Linux?
Among the VPS I tried was a Windows one from Ikoula. We use them at work, and they are very reliable. I also tested one from OVH. I did not even test Microsoft Azure, as their VMs are completely over-priced, and you need to pay extra for storage and bandwidth…
The performance of PHP and IIS is very, very good. While I did not make a perfect comparison, my gut feeling is that it is not just faster than Apache, but faster than nginx as well. MySQL performed well enough, but is quite the memory hog.
Compatibility of WordPress with IIS is not perfect (mostly because most plugins just expect Apache and its .htaccess), but administration of the machine through RDP is a breeze, while Linux console is definitely a less smooth experience. On the bright side, Linux prevents your Kung-Fu from getting too rusty…
However, where things are not so rosy for Windows is the price. The cheapest Windows VPS are still quite costly, and for a given price, where the Windows VPS would have been “tight”, I could get a vastly over-spec’ed Linux VPS.
I’ll be keeping a couple of 1€/month VM from Ikoula for testing and backup.
Linux VPS providers
In addition to Linux hosts at Ikoula and OVH, I tested Digital Ocean. Setup is very simple, but while their entry price VPS is cheap, the higher spec’ed ones aren’t. Also I might have been unlucky, but the physical host I was on was obviously quite busy.
The other one I tested was pulseheberg, which is also the one I settled on. They are priced very low, for 7€, you get a dual vCore, 2 GB VM with plenty of HDD space… or about a tenth of what it would cost on Azure.
Another very noteworthy advantage (for me) is that they’re using the Data Center of the hosting branch of my ISP, meaning that for administrative tasks, I have very low latency. Coupled with the over-spec’ed VM, WordPress administration has become a very comfortable, LAN-like experience. This is something you may want to keep in mind when choosing a host for a blog or web site.
I didn’t try Amazon EC2, mostly because the setup and billing would be too complicated for this website. But by experience, once you start to need to ramp up, they’re quite competitive (unlike Azure… Microsoft, seriously?).
I do use Amazon Glacier for backups (I already used it for personal backups), as you just can’t beat the price.
Content Delivery Network
Finally, CloudFlare seems to have been quite beneficial overall, as the latency for international visitors got reduced. I’ve kept the filtering and security settings to a minimum, and haven’t seen any negative effects so far.
I wouldn’t mind seeing blogs and Delphi websites from overseas use Cloud Flare so I can benefit from it as well 😉
Between the VPS and the CDN, I’ve also noticed that page views per visit went up, bounce rate down, so I guess the site is more friendlly to viewers now. And that’ll conclude my short foray into the realm of web hosting!
Thanks for the feedback.
From your POV, which Ikoula pack may be used to host a DWS server?
(should match mORMot HW expectations)
Perhaps Flex’s Server 2 (at 15 € / month) is enough?
What about the 1€ VM?
How do you ensure your RAM consumption stays below 512 MB? Disk caching (managed by the OS) may use RAM for nothing.
How much CPU does the http.sys server use?
Have you an approximation of how much may cost one HTTP client when hosting DWS for simple use (with e.g. a SQLite3 database, not MySQL) on a 1€ VM?
… and which version of Windows server do you use for DWS hosting?
(I mean, DWS does not require MSSQL nor IIS)
@A. Bouchez It really depends on factors others than the DWS Server, such as the external database you’ll use, or how much data you’ll be dealing with, and how much you want to be cached in RAM. The cheapest option (9.99€) could be enough if other services are frugal as well. Unused Windows services will swap out, and out of the 512 MB, you can have around 400+ for your purposes.
It’s possible to run Win2008 R2 24/7 on the 1€ VM without exceeding the franchise, but you need to be careful.
For DWS Web Server itself, the throttling options for CPU and bandwidth will limit the risk or extent of over-use on that front.
For memory, you need to properly setup the OS (still haven’t finished that article, need to get down to it), and then try to stay in the 300-400 MB range, so the OS won’t allocate above 512 MB.
If you have activity that could involve much disk access and caching you may be out of luck, unless you flush the disk cache. SysInternal’s RAMMap can do it, and I’ve found code that claims to do it (like http://pastebin.com/6kvkdQV2) but I haven’t tested those. In my case the DB was small so that wasn’t an issue, but it really depends on your needs (for reference, this whole website, DB+images is about 60 MB, so you can already do a lot with a few dozen MB).
The CPU usage (http.sys) I see is below the measurement threshold, I used only about 20 ikbogos per month (out of 4200 in the franchise). Due to the way they sample CPU every 5 Minutes, if your CPU usage is only in short spikes, odds are most of those spikes won’t be metered. I stayed far below the bandwidth, storage and I/O limits. Only the memory was tight, even if I never go above 512 Mo, it is a close thing.
That said, when using a 1€ VM for testing and work time hours, staying within the franchise is very easy provided you don’t forget to shutdown the VM for the night and week-ends (I use a schedule shutdown, just to be sure 😉 ). The franchise is a monthly cumulative, not an instantaneous check, so if you use 1.5 GB RAM for 8 hours, and keep the VM shut down for 16 hours, you’ll be under the franchise. Once you factor week-ends and other things, even 2GB RAM is no problem.
I guess the only thing to be really wary of is HDD space usage.
There is now an API to clear the cache: SetSystemFileCacheSize