[l] Does the HN crowd show up in monitoring?
So my previous post made the frontpage on Hacker News.
Awesome! I have seen many websites collapse under the load of a HN crowd, so this is the perfect time to look at the monitoring.
1 megabit per second? That’s lower than I anticipated, even with all the size optimizations that I implemented (or let’s
just say, all the bloat that I purposefully did not add). Same goes for CPU usage: I’ve heard so many people on the
internet complain about how expensive TLS handshakes are, yet my virtual server handles all of this with less than six
percent of a single core. It’s barely even visible on the CPU usage chart, and completely drowned out by noise on the
load chart.
[l] Latency matters
A month ago, danluu wrote about terminal and shell performance. In that post, he
measured the latency between a key being pressed and the corresponding character appearing in the terminal. Across
terminals, median latencies ranged between 5 and 45 milliseconds, with the 99.9th percentile going as high as 110 ms for
some terminals. Now I can see that more than 100 milliseconds is going to be noticeable, but I was certainly left
wondering: Can I really perceive a difference between 5 ms latency and 45 ms latency?
Turns out that I can.
Read more...
[l] Argh-P-M! – Dissecting the RPM file format
As the first actual content on my new blog, let me tell you the story of how I went absolutely crazy.
On my private systems, I ship configuration as system packages. Every distribution has their own tooling and process for
building these packages, but I eventually grew tired of the ceremony involved in it, and wrote my own system package
compiler. Since I’m using Arch Linux everywhere, the first version generated only Pacman packages, but I
was determined to make it truly cross-distribution. The first step was support for Debian packages, which I implemented
in a mere two evenings (one for understanding the format, one for writing the generator).
Next to dpkg, the other widely deployed package format is RPM, so I set out to add support for RPM as well. If I could
write the Debian generator in two days, then surely RPM support wouldn’t take that long, either. Little did I know that
I was embarking on a multi-month endeavor (including multiple week-long breaks to restore my sanity). To add insult to
injury, I stubbornly refused to add dependencies and use existing tooling (i.e., the rpm-build(1)
command). I wanted
to serialize the format directly from my own code, like I did for Pacman and Debian packages.
Read more...