Writing

Software, technology, sysadmin war stories, and more. Feed
Wednesday, June 20, 2012

A wish for systems which report on their own slowness

I want computer systems to give users more insight into why they are being slow. There are too many places where a user interface can just go off and throw that spinning beachball at you (Mac) or whatever hourglass thing Windows does now. This happens and it never tells you why.

It's obviously blocked on something, and I want to know what. If it's blocked because it's having to page something back in from disk, I want to know about it. Worse, if it's having to page something else out in order to get room, I want to know that, too.

Now, I don't mean I want it with a big animated popup in my face. No. Just make a note someplace which says you sat there doing nothing productive for 5701 milliseconds because the I/O subsystem had to do X and Y first. While you're at it, get the I/O subsystem to say why it did that, like "RAM pressure, needed X, found .5X, evicted ram_hog_prog".

Or, hey, if you're a network client of some sort and things slow down beyond the normal range of speeds, see if you can figure out why. If you notice that the Ethernet port is running at half-duplex all of the sudden, or you're getting pause frames, or collisions (!), make a note of it. For that matter, if TCP isn't behaving as well as usual, and there's a higher rate of retransmits, this might be meaningful as well.

Then, when someone says "my machine is being slow", at least there will be some kind of data which can be used to assess the situation. These things are rarely slow on demand, so you really do need long-term sampling and reporting done deliberately.

I doubt this will be easy, but hey, people like "hard problems", right?

It basically means violating those happy assumptions that you can just live your life at one layer of the stack and never think about what goes on beneath. After all, if something is slow and it's not you, then you have to go digging to see what's causing it. More often than not, that means going down the stack.

I do this enough manually as it is. I'd just like it if these marvelous devices could be taught to do it themselves.