Today I (re-)learned that top's output can be quietly system dependent
I'll start with a story that is the background. A few days ago Itweeted :
Current status: zfs send | zfs recv at 33 Mbytes/sec. This will take awhile, and the server with SSDs and 10G networking is rather bored.
(It's not CPU-limited at either end and I don't think it'sdisk-limited. Maybe too many synchronous reads or something.)
I was wrong about this being disk-limited, as it turned
I've learned that sometimes the right way to show information is a simple one
When I started building some Grafana dashboards, I of course reached for everyone's favorite tool, thegraph. And why not? Graphs are informative and beyond that, they'refun. It simply is cool to fiddle around for a bit and have a graphof your server's network bandwidth usage or disk bandwidth rightthere in front of you, to look at the peaks and valleys, to be ableto watch a spike of activity, and so on.
For a while I made pretty much everything
Go 2 Generics: Interfaces are not the right model for type constraints
A significant and contentious part of the Go 2 draft genericsdesign is its method of specifying constraints on the types that implementationsof generic functions can be used with. There are excellent reasons forthis; as an motivating example, I will quote the overview :
[...] In general an implementation may need to constrain the possibletypes that can be used. For example, we might want to define a
Set(T), implemented as a list or map, in which case values of typeTmust be
Go 2 Generics: A way to make contracts more readable for people (if not programs)
In the Go 2 generics draft design , myonly real issue with contracts is their readability; contractstoday are too clever . Contracts have beencarefully set up to cover the type constraints that people willwant to express for generics, and I think that something likecontracts is a better approach to type constraints for genericsthan something like interfaces (but that's another entry ). Can we make contracts more readablewithout significantly changing the current Go generics proposal? Ibelieve we can, through use of social convention and contract
(Open)SSH quiet connection disconnects in theory and in practice
Suppose, not entirely hypothetically, that you are making frequenthealth checks on your machines by connecting to their SSH ports tosee if they respond. You could just connect, read the SSH banner,and then drop the connection, but that's abrupt and also likely tobe considered a log-worthy violation of the SSH protocol (in factit is considered such by OpenSSH; you get a log message about 'didnot receive identification string'). You would like to do better,in the hopes of
How we monitor our Prometheus setup itself
On Mastodon, I said :
When you have a new alerting and monitoring system, 'who watches thewatchmen' becomes an interesting and relevant question. Especiallywhen the watchmen have a lot of separate components and moving parts.
If we had a lot of experience with Prometheus, we probably wouldn'tworry about this; we'd be able to assume that everything was justgoing to work reliably. But we're very new with Prometheus, and sowe get to worry about its reliability in general and also
Firefox's middle-click behavior on HTML links on Linux
When I wrote about my unusual use for Firefox's Private Browsingmode , I lamented in an aside that youcouldn't attach custom behavior to middle-clicking links withmodifier keys held down, at least on Linux. This raised an obviousquestion, namely what are the various behaviors of middle-clickinglinks on Linux with various modifier keys held down.
So here they are, for posterity, as of Firefox 63 or so:
| Middle click or Shift + middle click | Your default 'open link in' |
Some Linux disk IO stats you can calculate from kernel information
I've written in the (distant) past about what disk IO stats youget from the Linux kernel and what per-partitionstats you get . Now I'm interested in what additionalstats you can calculate from these, especially stats that aren'tentirely obvious.
These days, the kernel's Documentation/iostats.txt more or lessfully documents all of the raw stats that the kernel makes available(it's even recently been updated to add some very recent new statsthat are only available
Qualified praise for the Linux ss program
For a long time now, I've reached for a combination of netstat and ' lsof -n -i ' whenever I wanted to know things like who wastalking to what on a machine. Mostly I've tended to use lsof ,even though it's slower, because I find netstat to be vaguelyannoying (and I can never the exact options I want without checkingthe manpage yet again). Recently I've started to use another programfor this, ss ,which is part of the
Some views on more flexible (Illumos) kernel crash dumps
In my notes about Illumos kernel crash dumps ,I mentioned that we've now turned them off on our OmniOS fileservers . One of the reasons for this is that we'rerunning an unsupported version of OmniOS, including the kernel. Buteven if we were running the latest OmniOS CE and had commercial support ,we'd do the same thing (at least by default, outside of specialcircumstances). The core problem is that our needs conflict with whatIllumos crash dumps want to give us right now.