Into The Wild Blue Yonder

After a couple of outages caused by RAM starvation, I moved the site to a larger VM on [Azure][as] until I figured out the issue. I resisted doing that over the past year for several reasons, including informal benchmarking, but it made no sense to have free compute resources as a perk and not take advantage of them.

Based on my investigations, the Linux client appears to be the culprit1. Even on the new 2GB RAM machine (an A1v2 in West Europe), the current version consumes hundreds of megabytes, which caused issues on the 512MB DigitalOcean droplet I used before.

Since I find it ludicrous that takes up 650MB of RAM to sync a paltry 25.000 files (7.500 of those are actual posts, with the rest being image assets), I’m planning on rolling my own (one-way) client in due course – since I already had a fair amount of working code back when I tried porting my old blog engine to Google App Service, that seems pretty straightforward, although ’s API call limits might be a challenge2.

In the meantime, the migration was a great incentive to finish the Ansible script I started hacking away at last year. I can now provision a new VM and redeploy this site within minutes (except content syncing via ), and all I need to do manually is bind the instance and update DNS.

I will be moving the site to another machine in a US region soon to get it closer to the bulk of my regular audience, but downtime should be essentially zero – even despite CloudFlare’s recent issues, I intend to keep using them because I have no security concerns regarding this site (there’s no way to login or enter any kind of data via the web), but I also want to fool around with other things (including moving it to both AWS and Google for a few months, again to do some benchmarking).

As to everything else that’s been going on, I intend to resume writing more regularly fairly soon.

  1. In case you are just tuning in, I author this site as a set of documents on (which is the only thing that is supported across all my devices and editing tools), and I run a headless client on the server (with a separate, free account) to sync content across. ↩︎

  2. Before you ask, using any other file syncing solution like Resilio or is just not on the cards. ↩︎