Skip to main content
  1. Stories/

Slow Servers

·11 mins
Thoughts Software Hardware Personal Computers Gadgets Linux Long-Read Web Dev Photos
Table of Contents

My January was less busy with the regular chores — mostly, due to archiving Rostymo — so I commited to finishing some long-forgotten projects.

One of those was organising a cluster of my own personal servers.

Why would I need a personal server? Oh, you see, I’m a developer, mostly web-developer these days. And for a web developer, not having their own server is… weird.

Self-hosting
#

Apart from that, there’s this movement, people intend to host critical internet services themselves, on their own hardware. That’s called self-hosting.

That’s when I have some vital web services hosted on my own hardware, instead of relying on a third-party company.

I started playing with it a decade ago. The experiment went very successful, and I’m slowly building my tiny intranet, so to say. It’s very nice to be independent (from Big Tech) and not rely on anyone but me.

  • Having my own infrastructure is expensive, but I treat it as a long-term investment.
  • Having my own servers allows me not only to self-host, but enhance my knowledge of many work-related topics.

Obsolete Tech
#

My very first server was free.

An obsolete hand-me-down computer of 15 years. It was 2015, and the computer was from the year 2000. I just left it lying at home, before figuring out how to recycle it. I did no attempts to sell it even for bananas, there was no use for it. So I thought.

Ten years later, that very old computer is still works and is kicking! I don’t know how many years it would take this old machine to actually stop functioning. It’s quarter of century old already.

One day, I tried with a desktop Linux (Debian XFCE), and turned out it was quite snappy. That’s when I realised that it would be a not-so-bad server. According to modern standards, that machine is slow, but it’s not too slow, I’d say. It’s usable for some tasks. Right now, it works as a huge file-server with terabytes of media, and it handles that task quite good.

Servers
#

The issue with most servers is that they are huge, loud, and very power-hungry. This obsolete computer is like that.

  • Space isn’t an issue in that very location.
  • And loudness too, it has a separate uninhibited room with near-street ambient temperature.

I use obsolete tech extensively, and I’ll teach you one tiny secret.

For some reason, it’s not obvious to everyone, but it is very obvious.

These obsolete servers of mine, they don’t ought to be turned on all the time. That’s my secret. They’re power-hungry, but I need most of them once a month or two, so it’s a non-issue. Apart from that, the hardware is good and is basically free.

Atoms
#

For those computers that I need to work more often, the electricity consumption matter.

That bugs me all the time.

  • Not only the price of powering it, the electricity was quite cheap before ruzzia attacked us.
  • And not the electricity availability either. Say, solar panels can help a lot.

It’s just unreasonable to run power-hungry machines these days. That’s why power efficiency is my top-priority for most of my tech.

That’s how I found Intel Atom line of processors.

  • They are the very low power-consumption processors from Intel. A great deal of my server computers are Atom-powered. Generally, I can recommend them for a low-powered non-powerful machines of a ‘real-computer’ size.

If one looks for something dirt-cheap. You can assemble a huge cluster of servers for very cheap.

DIY Farm PC
#

Being very interested in servers, I started inventing some weird ideas. Since 2019, I had this obsessive notion, I wanted to make a server without a case.

I’ve seen guys making a computer case into a table back in Bangkok in 2015, but they were making a gaming computer, while I was willing to make a server.

I was willing to make this a reality so much that I forced this idea at Rostymo’s farm, and that idea failed miserably.

I wasted a month of my free-time, trying to achieve that, before I just bought another computer, brought it to the farm, and it was ready for work in half an hour.

I finished that computer, and it works as a server now, yet it wasn’t a reasonable project for the resources I had.

DIY Server
#

I couldn’t just release that idea and accept it as a fail, I liked it too much. I did another attempt, at a server this time.

It was going to be not an orthodox one. Not loud and powerful but the opposite. Silent and not too powerful.

I chose this low-energy consumption consumer device, based on an Intel Atom chip. With passive cooling (no fans) and no case.

I completed the project, within a day. And it works. But upon completing it, I realised how much time and energy it consumed. It was a year in the making, if we’d take the time I’ve been postponing it due to myriads of different reasons.

So, it’s a fail in my vocabulary.

Also, I realised it’s not scalable. To make it truly scalable, I need to invest even more effort. It wasn’t worth the price for me.

It was do-it-yourself for DIY’s sake.

I love building systems. Part of that is having the solutions that can scale.

I always think about how this or that solution would scale. Often I seek scalable solutions too prematurely. I’m falling for very scalable solutions, even when there’s no need for that in the upcoming future.

Related bit on that.

This solution was not scalable.

Big Computers
#

Big computers aren’t too scalable these days.

Unless you’re a huge corporation with tremendous space and energy at hands. Or you need very resource-hungry applications, and they pay for all that.

For most personal use-cases, it’s not the power one should seek. I’d say, it’s the power-efficiency. For me, it’s how much energy the solution consumes. The lower, the better.

Closing the project, even when it’s a fail, is good. It releases the potential for opening another one, one that could be successful.

Single-board Computers
#

I worked through the regular big servers, and learned their advantages and limiatations.

Only then I paid much closer attention to single-board computers. These are smartphone-size computers.

Tecnhically, a smartphone is a single-board computer too. But these typically have at least a USB port, or some other peripherals. Plus, they’re intended to run a real mature operating system, usually Linux.

That’s where I clearly realised that it’s hard to beat this tiny machine, when it comes to portability and power consumption. Hence scalability.

And apart from all that, managing many different servers with easily replaceable microSD cards is so much simpler.

  • Those cards aren’t very reliable, but it’s easy to make the system not write on them too much.

Single-board computers scale gracefully, when one needs many of them.

Raspberry Pi
#

I have five Raspberry Pi computers.

That’s one of the most popular devices of the class here in Europe, and in the U.S. too. It’s good, if you can get it for very cheap, yet I wasn’t too fond of them.

I use them too, but they’re unstable.

  • I believe the reason for that is that they want some sophisticated power supply of 5.1V / 2.5A DC output, while the ones I have from my iPads and iPhones are mostly 5.1V/2.1A.

    Sometimes, it’s just difficult to find the proper power supply.

I will recommend against them, because if your budget for your project is much bigger, and so you need more resources, you can buy N100. That wasn’t my case, I needed no resources, and I didn’t want to throw money at it.

Orange Pi
#

That’s how I accidentally bought Orange Pi Zero, a tiny board of 5 × 5 cm.

It works with basically any power supply you might find lying around. It works from a laptop usb port, which is quite telling too.

It has just 4 ports, all of them are usable to me in this project:

  • microUSB for power;
  • ethernet for network;
    • it has Wi-Fi, which is nice to have (for free), but isn’t of any need for me;
  • microSD card for system, or just boot drive;
  • USB-2 for external disk storage, and system too.

I like this board for its minimalism. It has exactly what I need and nothing more.

But not only that, it’s super energy efficient! According to its specs, it consumes just ~0.7W at idle and ~2W at load.

  • average computer can get from 30x to 500x of that, depending on how resourceful it is and whether it has a dedicated GPU (a video card);
    • avarage laptop consumes from 20x to 50x of that;
    • it’s more comparable to modern smartphones, actually.
  • It’s 5 to 20 times less than a LED bulb. Those are typically from 5 to 20 W.
    • Also, it’s the power consumption of an average Wi-Fi router, which works 24/7.

In most measures it’s nothing. It’s very hard to beat that!

I tested this board, and I’m very happy with the results. It does all the job I want it to do. For almost free. Almost free is very scalable. I could buy hundreds of boards like that, if needed. And this cluster would consume the power of a couple of computers, but could be very distributed.

Heat
#

There was just one quirk I didn’t like. It’s getting very hot under stress.

  • At idle, I had my average temps at 65 ºC, which is hot to touch, but is okay for a computer.
  • But with some work, the chip would go 95 ºC, which is very hot to touch, and is (almost) a temperature of boiling water. It’s not healthy for a computer to be there for long periods.

I lived with that for a week, and was very satisfied regardless. However, I found out that you can actually lower the processor’s power, underclocking it with software.

2.5 times lower, from 1,200 Hz to 480 Hz.

With just one command:

echo "powersave" | sudo tee /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
  • for permanent change, add echo "powersave" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor to /etc/rc.local

That little trick immediately lowered the temperature by whopping 40 (sic!) degrees! It dropped from 95 ºC to 55 ºC!

Slowness
#

After I clocked down the CPU, the device became slower, obviously.

Now it works at 1.6 cores capacity, instead of 4.

Sometimes I feel like this tiny little board of mine, burning at 95 ºC under load.

With the board, it’s so obvious that it does not need to be that way. It’s idle for very long periods of time, all of the night, moirnings, evenings. I interact with my servers during my work day, and mostly that.

When such hardware under constant load, it starts throttling, to avoid burnout. It’s when hardware forces itself to be slow under extreme stress.

I don’t mind my website to be rendered within 25 seconds instead of 5 seconds. I don’t mind most of my tasks to be slower. In most personal scenarios, there’s exactly zero difference.

As much as many things in our lives, they can be done within a longer time frame, and nothing bad would happen. Apart from the person doing the job, they would burnout less. And hence, be able to produce better results much longer.

Do we need to run twice as fast?.

I like this tiny computer. It’s much smarter than it appears.

And I enjoy its minimalism, and its power efficiency. I enjoy knowing that I have a huge cluster of personal servers, living in different locations – so to be protected from massive electricity blackouts — and it’s free to run. For them running for years, I’d pay mostly nothing, cents. Yet, they help me tremendously with all my personal needs. It feels much better than having powerful machines idling and just burning electricity. Especially during this war.

Conclusion
#

I’m happy I finished this very long project. My primary mistake was that I joined two tasks into one:

  • I wanted to deploy a set of my own servers;
  • and I wanted them all to be hand-made caseless pretty things, artworks.

That made me delaying on the task for a very long time. I needed to finish the first project, so I could make a few more after that.

I may make my own caseless cluster of in the future, but in most of my scenarios it won’t be necessary, a single-board computer solves the task magnificiently.

I ordered more boards, and made all my clusters at home, and then I just moved all the servers in my backpack to their locations. This project doesn’t even feel like a project, so easy it was.

For all my boards, I bought very long bolts, and attached them to the side of the wooden panel.

  • The computers would be less hot, because they’ll be hanging in the air. This solution eliminated any need for cases, and so… here it is, the caseless server I’ve been willing to do for so very long.

And for one board, I have this 3d-printed case. I don’t really need it, I think I’ll give it away (with the board) to someone.

  • Looks pretty good for a server, huh?
Reply by Email

Related

Things I Automated This Year
·8 mins
Analysis Annually Automation Software iOS iPhone Linux Operating Systems Artificial Intelligence Blogging Computers Documentation Retrospective Management Optimisation Personal Programming Web Dev Workplace Workshop Long-Read
What I Use: Hardware, Software, Workplace
·18 mins
Hardware Software Workplace Workshop Personal Wish-List Thoughts Gadgets Long-Read Operating Systems
My Automations with Apple Shortcuts
·9 mins
Analysis Automation Software iOS iPhone Linux Operating Systems Artificial Intelligence Blogging Computers Documentation Retrospective Management Optimisation Personal Programming Web Dev Workplace Workshop Long-Read Incomplete
An experiment of working with iPad 3 as my primary computer
·4 mins
Hardware Review Software Workplace Gadgets iPad Typing Machine
Computers and Me
·2 mins
Operating Systems Personal Essays Hardware Computers Workplace Incomplete
How I Write
·5 mins
Personal Software Hardware Essays Typing Machine Workflow Automation