Getting live network bandwidth numbers on Linux

Today I got curious about a simple question: was my iSCSI targetmachine actually running at its full potential read speed?

The machine exports individual disks to its clients, so measuringsingle disk performance wouldn't give me the answer. Summing up IOacross all the disks would have given me a number, but so would justgetting the network bandwidth utilization; if the machine was saturatingits gigabit link, it was clearly running as fast as it could.

There doesn't seem to be a program that will directly


Today's Solaris 10 irritation: the fault manager daemon

More and more, Solaris 10 strikes me as being much like Ubuntu 6.06: asystem with plenty of big ideas but only half finished implementations.Today's half implemented idea is fmd , the new fault manager daemon .

One of the things I expect out of a fault monitoring system is that itshould not report things as faulted when they are now fine, especiallynot with scary messages that get dumped on the console at every boot(it's acceptable to report them as faulted and now


The Bourne shell is not a programming language

Before you rise in righteous indignation, let me say that that doesn'tmean that you can't write programs in the Bourne shell; you can writeprograms in anything that's Turing-complete if you try hard enough.It's just that you shouldn't.

The problem with writing programs in the Bourne shell is the same aswriting programs in any other highly constrained language: your programs come out all but unreadablebecause they are spending most of their time getting around the inherentlimitations of their


The costs of doing your own system administration automation

There is a constant tension in system administration between doingthings by hand in the standard way, versus creating your own customsystems to automate the work. Doing things by hand takes longer and ismore tedious, so it sounds like automation should be a slamdunk, butthe problem with automation is that you've created a new local piece ofsoftware that has to be updated, maintained, learned by other people(especially new people), and understood.

(Or to put it another way, you have taken something


On standard interfaces

One of the things that is usually cited in favour of Macs (and Windows)is that the core of the GUI interface is more or less standardized,unlike many Unix programs. For example, consider the huge disagreementamong xterm , GNU Emacs, and Firefox about how simple copy and pasteworks; surely the Mac or Windows way is better than that.

I don't think so.

My view is that it is easily possible to overdo an adherence tostandardized interfaces, because standardized interfaces only reallymatter if you


Why people don't automate sysadmin stuff

Yesterday's entry raises an obviousquestion: why don't people automate things ahead of time, before theyhave so many systems that they have to automate or die?

The simple answer is that it is easier for them not to automate thanit is for them to automate. But why is it that way?

There are at least two reasons:

  • there is pretty much no standard way to automate things at thevarious levels, especially across different Unixes and platforms.This means that you have to build an automation

Automation changes as systems grow

Over the time I've worked in system administration, I've observed acommon pattern that I will summarize this way:

As your system count grows, you wind up automating the automation.

Here is the levels that I've seen people (myself included) go through:

  • managing systems by hand, one by one.
  • using tools that let you run a command on all of your systems orclasses of your systems.
  • automating things for clusters, so that you don't have to explicitlyrun commands on

What the co_names attribute on Python code objects is

As a trap for the unwary, Python code objects have both a co_names and a co_varnames attribute. Since I just confused myself aboutwhich was what the other day , here is what the co_names one is.

Put simply, co_names is a tuple of names of globals and attributesthat are used by the function's code. For example, if you have ' a =self.bar() ' in the function, the ' bar ' will show up in co_


Why apt is always going to be faster than yum

One of the things that people report (to put it politely) when theyswitch between a Debian-derived distribution and Fedora is that apt isfaster than yum . This is indeed the case, and it is always going to bethe case, because yum is simply doing far more work than apt is.

(Whether or not the speed difference matters in practice is anotherdebate. It doesn't bother me, but then I use fairly fast and beefymachines.)

As I understand it, the different amount


Why you can't stop 'abuse' of file sharing services

I hope that everyone will agree that filtering 'banned' content(whatever that is in your local jurisdiction) is in practiceimpossible. Users are happy to rename files and otherwise obscurethem in order to evade machine inspection, and no one can afford tohand audit everything that is being shared.

(Arguing that people must hand audit things anyways basicallyamounts to arguing that no one can run a file sharing service.)

This means that the only thing you can really do to deter this bannedcontent is to make your