<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Systems on Daniel &#39;f0o&#39; Preussker</title>
    <link>https://f0o.dev/tags/systems/</link>
    <description>Recent content in Systems on Daniel &#39;f0o&#39; Preussker</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <lastBuildDate>Sun, 16 Mar 2025 15:11:03 +0000</lastBuildDate><atom:link href="https://f0o.dev/tags/systems/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Quickwipe</title>
      <link>https://f0o.dev/projects/2025/03/quickwipe/</link>
      <pubDate>Sun, 16 Mar 2025 15:11:03 +0000</pubDate>
      
      <guid>https://f0o.dev/projects/2025/03/quickwipe/</guid>
      <description>&lt;p&gt;Wiping old hard drives is a total drag. If you have ever decommissioned a server with a couple of high-capacity SATA drives, you know exactly what I mean. Scurrying to write randomized bytes across several terabytes of magnetic platters can easily drag on for seventy or eighty hours.&lt;/p&gt;
&lt;p&gt;If you try to run a naive &lt;code&gt;dd if=/dev/urandom of=/dev/sdX&lt;/code&gt;, you are bound to fail. Standard tool chains are throttled by the Linux page cache, buffer copying overhead, and CPU-bound random number generators.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Netbench</title>
      <link>https://f0o.dev/projects/2023/07/netbench/</link>
      <pubDate>Fri, 21 Jul 2023 08:03:57 +0000</pubDate>
      
      <guid>https://f0o.dev/projects/2023/07/netbench/</guid>
      <description>&lt;p&gt;Benchmarking network systems is usually a static affair. You spin up ApacheBench or wrk, tell it to run at a fixed fifty concurrent connections for two minutes, and look at the resulting average latency.&lt;/p&gt;
&lt;p&gt;But real-world traffic is never static. In the wild, servers face dynamic traffic surges, sudden micro-bursts, and predictable diurnal waves (like the slow ramp-up of users starting their workday followed by a quiet night-time dip).&lt;/p&gt;
&lt;p&gt;To test how my network infrastructure and auto-scalers handle these fluid concurrency transitions, I built &lt;strong&gt;Netbench&lt;/strong&gt; (written in Go, ofc). It is an high-concurrency network and HTTP traffic generator that dynamically scales its worker thread concurrency using real-time mathematical wave functions.&lt;/p&gt;</description>
    </item>
    
  </channel>
</rss>
