A drawback of short servers

Since Oracle killed off the inexpensive SunFire line, our new generationof 1U servers is from Dell and we've started migrating to them. Oneof the two models is the Dell R210. It has two features of particularnote. The first is that it doesn't have easily accessible drive cages;you have to disassemble things to swap (or add) drives, and then if youactually add a second drive you need to update the BIOS. The secondis that it is only a


One good use for default function arguments

When I wrote about a danger of default function arguments I mentioned that there are cases where they makesense and are useful. Today I'm going to present what I feel is one ofthem.

To put it simply, one use for default arguments is when you effectivelyhave a bunch of slightly different APIs but it would be awkward to havedifferent functions for them. Not uncommonly you might have too manyfunction variants, the code would be too entwined, or both. Reasonablychosen default arguments effectively give you multiple


fork() and closing file descriptors

As I noted in Why fork() is a good API , back in thebad old days Unix had a problem of stray file descriptors leaking fromprocesses into commands that they ran (for example, rsh used to giftyour shell process with any number of strays). In theory the obviousway to solve this is to have code explicitly close all file descriptorsbefore it exec() s something. In practice Unix has chosen to solve thiswith a special flag on file descriptors, FD_CLOEXEC , which causes


Things that systemd gets right

On Twitter, I recently put forward the hereticalopinion that systemd is actually a good thing (as I've written abit about before ).Now, systemd is not flawless or without worrisome tendencies and ithas a number of features that I'm indifferent to, but I do thinkthat it gets quite a lot of things right. Today I feel like tryingto list them off (partly so that I have this in one place for futureuse).

(A disclaimer: this is from the perspective


The general lesson from the need for metrics

The lesson I learned about why metrics are important is an important lesson, but it's a specific lesson. It would be a shameto stop there, because there is a general lesson lurking in the underbrushbehind it. That is:

Fallible humans are always going to overlook something .

This is the real lesson of fragile complexity , inall its various specific facets .Our systems are too complex for us to genuinely understand, and thatcomplexity means we are always going to overlook something (and sooneror later that


When I'd use a web server other than Apache

As I mentioned last entry , while I've come aroundto Apache as my default choice for new web servers there are stillsituations where I would start with something else. Of course theobvious case is when you've assessed and measured your web site andyou've determined that some other web server is the best choice (forwhatever reason). Here, I'm interested in more general cases, oneswhere I haven't done any particular specific measurements and so on.

Right now, there


Why Apache is such a temptation

We all know the hulking monster of Apache. Encrusted with decades ofhistory and baroque trim, it's not exactly renowned for being speedy orlightweight and it's famously common for it to explode your machineunder load if it's not configured exactly right; in trying to beeverything for everyone it does nothing particularly well (so it'scommonly said). The usual prejudice is that everyone sensible uses amodern, lightweight web server that's designed for today's operatingsystems and web environments


How I use virtualization (and what for)

The high level view is that I use virtualization for testing things onmy workstation, which I think of as the typical sysadmin use of localvirtualization. In terms of my taxonomy of virtualization usage , there are three different caseswith a number of common elements.The common elements are that I only run VMs for a short time (I powerthem up, use them for a bit, and then shut them down again) and that Imanage them by hand. Beyond that the cases split apart:

  • I have a

In praise of KVM-over-IP systems

We're in the process of migrating to a new generation of serverhardware and it is, for me, a kind of a sad moment. You see, while thenew servers have generally better specifications, the old servers have one big thing that the new servers don't; a builtin KVM-over-IP system as part of their remote management capabilities.

On the surface, perhaps KVM-over-IP ought not to be a big deal; all itreally saves you is an occasional trip


One way to break down how people use virtualization

Virtualization is such a general technology that even when people areusing it for whole machine virtualization thereare any number of different ways that they can use it. Today I want topresent a number of usage dimensions for this (when I started I thoughtit was going to be a simple four-quadrant breakdown, but the more Ithought the more dimensions showed up).

So, here's some axes that you can chart virtualization usage along:

  • when you power up VMs, do you leave them running for a