So,
I’ve never bothered with this before, since systemD seems to work just fine.
But I did this year stop using Ubuntu for most of my hosting needs and moved to Alpine or Debian, depending on what I’m doing.
So it makes sense to optimize even more. I read up a little about why people dislike systemD. Good reasons if mainly you’re worried that it’s doing too much and is too heavy.
So what are the alternatives that work with both Alpine and Debian? What are people using? Is it relatively easy to move from systemD to whatever is your alternative?
Thanks!
Glibc matters on desktop, but the speed advantage doesn’t really matter to services running in cgroup2 containers borrowing the host’s kernel and namespaces.
For op’s purposes, memory density is important, and alpine base images will need about 10x less memory than their Debian counterparts, mostly due to a very pared-down service layout.
There’s a reason a huge portion of docker images are alpine-based.
Do you have any sources for the 10x memory thing? I’ve seen people who have made memory usage claims, but I haven’t seen benchmarks demonstrating this.
EDIT: glibc-based images wouldn’t be using service managers either. PID 1 is your application.
EDIT: In response to this:
After months of research, my company pushed thousands and thousands of containers away from alpine for operational and performance reasons. You can get small images using glibc-based distros. Just look at chainguard if you want an example. We saved money (many many dollars a month) and had fewer tickets once we finished banning alpine containers. I haven’t seen a compelling reason to switch back, and I just don’t see much to recommend Alpine outside of embedded systems where disk space is actually a problem. I’m not going to tell you that you’re wrong for using it, but my experience has basically been a series of events telling me to avoid it. Also, I fucking hate the person that decided it wasn’t going to do search domains properly or DNS over TCP.
musl does support DNS over TCP since version 1.2.4.
That is incus. But similar in other implementations of LXC. Docker has similar ratios, but I suspect you know this already.
That has been fixed since 3.18.
Look, I’m not sure why you’re challenging me so hard on this, I’m not a superfan of Alpine or anything. I use it when I can because it’s really, really light on memory and so do others. There are lots of cases that don’t work with Alpine, like mongodb, sql, etc. But there are lots of great uses for alpine as well, like networking or anything that works well with busybox tooling.
Have a better one.