Fedora is got a good choice if long term stability and usability is a high priority

Every so often I hear about people running servers or infrastructurethat they care about on Fedora, and my eyebrows almost always goup. I like Fedora and run it by choice on all of my desktops and my work laptop , but I'm the sole user onthese machines, I know what I'm getting into, and I'm willing todeal with the periodic disruptions that Fedora delivers. Fedora isa good Linux distribution on the whole, but it is what I would calla 'forward looking


It's a good idea to label all of the drives in your desktop

I was doing some drive shuffling with my office workstation today, so opening it up reminded me thatwhen I originally built it up, I did the wise thing of puttinglabels on all of the drives in it (both the spinning rust harddrives and the SSDs). We generally don't label the drives themselveson modern servers, because most servers have their backplane ordrive cables hardwired so that a drive in a given spot in the chassisis always going to be the same disk as Linux sees it.


Firefox's peculiar handling of font choice preferences

On Twitter, I said :

I really don't understand how Firefox decides which particular 'Fontsfor ...' preference controls the font sizes of any particular webpage. They also seem to keep changing them.

If you look at Firefox's Preferences 'General' tab and scroll down,you'll discover a 'Fonts and Colors' preference which offers youthe chance to set your default font and its size, and also has an'Advanced...' option. As it happens,


The Go runtime scheduler's clever way of dealing with system calls

One of Go's signature features is goroutines , which are lightweightthreads that are managed by the Go runtime. The Go runtime implementsgoroutines using a M:N work stealing scheduler to multiplex goroutines on tooperating system threads. The scheduler has special terminology forthree important entities; a G is a goroutine, an M is an OS thread(a 'machine'), and a P is a 'processor', which at its core is alimited resource that must be claimed by an M in order to


Some important things about how PCIe works out involve BIOS magic

I'll start with my remark on Mastodon :

I still don't know why my Radeon graphics card and the PCIe bridgeit's behind dropped down from PCIe 3.0 all the way to PCIe 1.0bandwidth, but going into the BIOS and wandering around appears tohave magically fixed it, so I'll take that.

PCIe: this generation's SCSI.

When I added some NVMe drives to my office machine and ran into issues , I discovered that the Radeongraphics card on my


PCIe bus addresses, lspci, and working out your PCIe bus topology

All PCIe devices have a PCIe bus address, which is shown by lspci ,listed in dmidecode ( cf ), and so on.As covered in the lspci manpage , the fullygeneral form of PCIe bus addresses is : : . . On most systems, thedomain is always 0000 and is omitted by lpsci and what you seeis the bus, the device, and the function, which looks like this:

0a:00


Looking into your system's PCIe slot topology and PCIe lane count under Linux

Suppose, not hypothetically , thatyou want to understand the PCIe slot and bus topology of your Linuxsystem and also work out how many PCIe lanes important things havebeen given. Sometimes the PCIe lane count doesn't matter, but thingslike NVMe drives may have lower latency under load and performbetter if they get their full number of PCIe lanes (generally fourlanes, 'x4'). You can do this under Linux, but it's not asstraightforward as you'd like.

The easiest


Desktop motherboards can have fewer useful PCIe slots than they seem to

When I had to get an adapter card for my office machine's secondNVMe drive , I worried (in advance) aboutthe card itself slowing down the drive. It turns out that I shouldhave also been concerned about a second issue, which is what PCIeslot to put it in. My current office machine uses an ASUS Prime X370-Pro motherboard, and if you look at it thereare six PCIe slots; three of them are 'x1' single lane slots (which the


You can have Grafana tables with multiple values for a single metric (with Prometheus)

Every so often, the most straightforward way to show some informationin a Grafana dashboard is with a table, for example to list howlong it is before TLS certificates expire, how frequently peopleare using your VPN servers , or howmuch disk space they're using .However, sometimes you want to present the underlying informationin more than one way; for example, you might want to list both howmany days until a TLS certificate expires and the date on which itwill expire. The good news is that


Calculating usage over time in Prometheus (and Grafana)

Suppose, not hypothetically , that youhave a metric that says whether something is in use at a particularmoment in time, such as a SLURM compute nodeor a user's VPN connection, and you would like to know how used itis over some time range. Prometheus can do this, but you may needto get a little clever.

The simplest case is when your metric is 1 if the thing is in useand 0 if it isn't, and the metric is always present. Then you