Topics /
Systems & Performance
The most popular blog posts about systems & performance on Hacker News. 6,944 posts.
Understanding consensus and Paxos in distributed systems
A whirlwind tour on acheiving agreement in a distributed system
MkLinux and the pimped-out Apple Workgroup Server 9150
As is typical here in the Floodgap lab, it all started so innocently: rebuilding a flaky Apple Workgroup Server 9150, the odd duck of the Wo...
Faster CRC32-C on x86
Computing the CRC-32C of a 4KB buffer on a modern x86 chip can be done as a simple loop around the crc32 instruction:
The PDP-7 Where Unix Began
Serial Number of First Unix System In preparation for a talk on Seventh Edition Unix this fall, I stumbled upon a service list from DEC fo...
The case of a program that crashed on its first instruction
Didn't even make it out of the gate.
eBPF for tracing how Firefox uses page faults to load libraries
Modern browsers are some of the most complicated programs ever written. For example, the main Firefox library on my system is over 130Mbytes. Doing 130MB of IO poorly can be quite a performance hit, even with SSDs! :). Few people seem to understand how memory-mapped IO works. There are no pre-canned tools to observe…
Clang Static Analyzer and the Z3 constraint solver (2022)
Notes on using the Z3 constraint solver with the Clang Static Analyzer
10Gbit/s full TX wirespeed smallest packet size on a single CPU core
The Linux Kernel Network Stack Scalability, mitigating DDoS attacks firewalling iptables netfilter connection tracking (conntrack)
Using Go for Scalable Operating System Analytics
At Kolide, part of what we do is build a client-server system that facilitates the management of large, isolated installations of an open-source tool called osquery. While I’ve written and spoken about osquery in the past, in this post I want to focus on how we use Go to solve many of the challenges we face building…
Deterministic simulation testing for async Rust
How S2 uses deterministic simulation testing for async Rust to find distributed-systems bugs before they reach production.
Call Me Maybe: Percona XtraDB Cluster
Percona’s CTO Vadim Tkachenko wrote a response to my Galera Snapshot Isolation post last week. I think Tkachenko may have misunderstood some of my results, and I’d like to clear those up now. I’ve ported the MariaDB tests to Percona XtraDB Cluster, and would like to confirm that using exclusive write locks on all…
PyPy IO improvements
Hello everyone! We've wrapped up the Warsaw sprint, so I would like to describe some branches which have been recently merged and which i...
Exploring .NET Core platform intrinsics: Part 4 – Alignment and pipelining
You’ve implemented some of your performance critical code using the new platform intrinsics API. The code is now running 10x or even 100x faster than before, and you might think that it can’t get any faster. This post will show you some less obvious (but almost universally applicable) techniques for improving the…
The Raspberry Pi 4 has a fan now – the Case Fan
Last year, I wrote a blog post titled The Raspberry Pi 4 needs a fan. And in a video to go along with that post, I detailed the process of drilling out a hole in the top of the official Pi 4 case and installing a 5v fan inside. But that solution wasn't great. The fan was a little loud and annoying, and would stay on…
What is gained and lost with 63-bit integers? (2014)
Almost every programming language uses 64-bit integers on typical modern Intel machines. OCaml uses a special 63-bit representation. How does it affect OCaml?
Async hazard: MMAP is blocking IO
Memory-mapping a file is convenient, but it's a hazard when used with async/await concurrent code: it means a "simple" memory index does blocking IO.
Systemd has been a complete, utter, unmitigated success
Eleven init systems enter, one init system leaves.
SQLite (with WAL) doesn't do `fsync` on each commit under default settings
SQLite doesn’t do fsync unless specified.
The Syslog Hell
Syslog. You’ve probably heard about that, especially if you are into monitoring or security. Syslog is perceived to be the common, unified way that systems can send logs to otherContinue reading
Latches in C++20
Latches and barriers are coordination types that enable some threads to wait until a counter becomes zero. You can use a std::latch only once, but you can use a std::barrier more than once. Today, I have a closer look at latches.
Pine64 and Radxa's new Pi CM4-compatible boards
Since the Raspberry Pi was introduced, hundreds of clones have adopted the Pi's form factor (from the diminutive Zero to the 'full size' model B). Often they have better hardware specs, and yet they remain a more obscure also-ran in that generation of Single Board Computer (SBC). So when I saw Radxa's CM3 and Pine64's…
The Serial TTL connector we deserve
Goodbye dangling Dupont pins, hello Julet E-Bike connector. I have them now everywhere, from my router to my servers.
Tools to measure software energy consumption from your computer
Measuring the energy consumption of software is far from being a trivial task. This article provides essential details about energy consumption tools, their...
Performance of Rust and Dart in Sudoku Solving
Introduction About two years ago I evaluated the performance of ~20 compilers and interpreters on sudoku solving, matrix multiplication, pattern matching and dictionary operations. Two years later,…