Topics /
Systems & Performance
The most popular blog posts about systems & performance on Hacker News. 4,389 posts.
The Go 1.1 scheduler
One of the big features for Go 1.1 is the new scheduler, contributed by Dmitry Vyukov. The new scheduler has given a dramatic increase in performance for parallel Go programs and with nothing better to do, I figured I'd write something about it.
Needy Programs
We used to use software; now software started to use us
macOS 11 boot volume layout
A complete guide to the structure and layout of APFS startup disks from High Sierra to Big Sur (Intel), together with tear-out PDF charts.
A brief history of Dell Unix (2008)
[update December 2021: files for 86Box install at update December 2020: Dell Unix on 86Box “Today let me present Dell Unix more properly, with 1024×768, 256 colors video and proper networking…
Full-system dynamic tracing on Linux using eBPF and bpftrace
How do you debug an application, library or an entire system with multiple processes? One answer: tracing. An introduction into bpftrace, and an overview of the Linux tracing ecosystem (DTrace, eBPF, uprobes, etc).
A brief history of APFS (2022)
Born secretly on 27 March 2017, it was Apple’s biggest gamble. Introduced in High Sierra, it didn’t work on Fusion Drives and had other problems. Also explains version numbering.
How SerenityOS declares ssize_t
This post explores one of my favorite hacks in SerenityOS. I don’t recommend doing this in your codebase, but it has worked for us so far. :^)
Wild performance tricks
Last week I had the pleasure of attending RustForge in Wellington, New Zealand. I gave a talk titled “Wild performance tricks”. You can watch a recording of my talk . If you’d prefer to read rather than watch, the rest of this post will cover more or less the same material. The talk shows some linker benchmarks, which…
FreeBSD Jails the hard way
There are many great options for managing FreeBSD Jails. iocage, warden and ez-jail aim to streamline the process and make it quick an easy to get going. But sometimes the tools built right into the OS are overlooked.
Linux 7.0 Broke PostgreSQL: The Preemption Regression Explained
Linux 7.0 delivered roughly half the throughput of Linux 6.x on the same hardware and workload.
Building account systems
Troy Hunt recently published a blog post titled “Authentication guidance for the modern era”. It has a big pile of solid advice on what…
Text consoles and framebuffer consoles in Linux
You're probably reading this page because you've attempted to access some part of my blog (Wandering Thoughts) or CSpace , the wiki thing it's part of. Unfortunately you're using a browser version that my anti-crawler precautions consider suspicious, most often because it's too old (most often this applies to versions…
SIMD < SIMT < SMT: Parallelism in Nvidia GPUs (2011)
Programmable NVIDIA GPUs are very inspiring to hardware geeks, proving that processors with an original, incompatible programming model can become widely used.
Some small suggestions for the Intel instruction set
Programmers trying to make crypto run fast often say things like "Why can't the CPU designer just add a 128-bit multiplication instruction?" Sometimes these questions turn into academic papers analyzing the cycle counts that would be obtained from various instruction-set extensions. What's missing from most of these…
Prepared statements and their surprising performance implications
Or: How To Increase Your Elixir/Postgres Performance 20x With One Weird Trick
The state of netbooting Raspberry Pis
Let's take a look at the state of netbooting for Raspberry Pis including how and why you'd build a cluster and how well containers play with network booting
Casync – A tool for distributing file system images
Posts and writings by Lennart Poettering
A decade of major cache incidents at Twitter
This is a collection of information on severe ( SEV-0 or SEV-1 , the most severe incident classifications) incidents at Twitter that were at least partially attributed to cache from the time Twitter started using its current incident tracking JIRA (2012) to date (2022), with one bonus incident from before 2012. Not…
Netstat without netstat
Recently I was doing an assessment in a locked down and restricted environment. One of the first actions you tend to do when landing a shell on a [linux] box is to do some reconnaissance. This is both on host and network, as you want to determine what new access this host has given you. Normally you would run netstat…
ChromeOS is Linux with Google’s desktop environment
Between the Material You design and move to break apart the Chrome browser from ChromeOS, now more than ever, ChromeOS is Linux with Google's desktop environment.
Way to keep your cool running a Raspberry Pi 4 (2019)
From home temperature monitoring to a Kubernetes cluster hosting a live Drupal website, I have a lot of experience running Raspberry Pis. I've used every model through the years, and am currently using a mix of A+, 2 model B, and 4 model B Pis. The 3 model B+ was the first generation that had me concerned more about…
Async2 – The .NET Runtime Async experiment concludes
The .NET team has been working on a new experiment called async2, which is a new implementation of the async/await pattern that is designed to be more efficient and more flexible than the current implementation. It started with green threads and ended with an experiment that moves async and await to the runtime. This…
Bringing a dynamic environment to C: My linker project
I'm writing a linker. It's an unusual linker. It's focus is not on producing executable files. Instead, its focus is to facilitate rapid iteration on a program without having to re-link or re-open it after making changes. It is hot-loading of code at an object-file granularity.
Fibers, Oh My
Fibers, Oh My! # Written by Dale Weiler, last updated Oct 5th, 2020 Twitter GitHub It’s been brought to the attention of many people in the game development industry that you can use fibers to parallelize your engines and games. This one presentation in particular: Parallelizing the Naughty Dog engine using fibers has…
The Day “/Proc” Died
Solaris'd... This morning I got an email from our group manager asking about a UNIX server...