<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Performance on Damien Dye&#39;s Blog</title>
    <link>https://blogs.damiendye.uk/en/tags/performance/</link>
    <description>Recent content in Performance on Damien Dye&#39;s Blog</description>
    <generator>Hugo</generator>
    <language>en-GB</language>
    <lastBuildDate>Fri, 07 Aug 2026 20:00:00 +0100</lastBuildDate>
    <atom:link href="https://blogs.damiendye.uk/en/tags/performance/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Making HDD-Backed Proxmox Ceph Clusters Fast — NVMe Metadata, One Optane Per Spindle, and What It Costs You</title>
      <link>https://blogs.damiendye.uk/en/proxmox/hdd-backed-ceph-bcache-optane/</link>
      <pubDate>Fri, 07 Aug 2026 20:00:00 +0100</pubDate>
      <guid>https://blogs.damiendye.uk/en/proxmox/hdd-backed-ceph-bcache-optane/</guid>
      <description>Flash pricing has made all-NVMe hard to justify, and enterprise HDDs are worth another look. Acceptable latency out of them on hyper-converged Proxmox Ceph: move RocksDB off the spindle, pair each disk with its own Optane through bcache (Optane, because NAND endurance is wrong for the job), and be honest about the failure modes it buys.</description>
    </item>
    <item>
      <title>4Kn, 512e and 512n — Why Native 4K Wins, and What the Emulation Costs</title>
      <link>https://blogs.damiendye.uk/en/proxmox/block-sizes-4kn-512e/</link>
      <pubDate>Fri, 07 Aug 2026 12:00:00 +0100</pubDate>
      <guid>https://blogs.damiendye.uk/en/proxmox/block-sizes-4kn-512e/</guid>
      <description>512e drives present 512-byte sectors they do not have, and the firmware makes up the difference on every unaligned write. What that costs on the medium, in the host and in write amplification — why direct synchronous writes are the worst case — and how to convert a fleet to 4Kn.</description>
    </item>
    <item>
      <title>PCIe Passthrough Performance on Proxmox VE — The IOMMU Tax and How to Minimise It</title>
      <link>https://blogs.damiendye.uk/en/proxmox/pcie-passthrough-performance-the-iommu-tax/</link>
      <pubDate>Fri, 07 Aug 2026 10:00:00 +0100</pubDate>
      <guid>https://blogs.damiendye.uk/en/proxmox/pcie-passthrough-performance-the-iommu-tax/</guid>
      <description>Why PCIe devices lose throughput when passed through to a VM via VFIO, and the practical tuning steps that claw most of it back.</description>
    </item>
    <item>
      <title>NUMA Alignment on Proxmox VE — Why It Matters and How to Get It Right</title>
      <link>https://blogs.damiendye.uk/en/proxmox/numa-alignment-proxmox/</link>
      <pubDate>Fri, 07 Aug 2026 09:40:00 +0100</pubDate>
      <guid>https://blogs.damiendye.uk/en/proxmox/numa-alignment-proxmox/</guid>
      <description>On multi-socket systems, a VM with its vCPUs on one NUMA node and its passed-through device on another loses 20–30% throughput before you&amp;#39;ve even looked at anything else.</description>
    </item>
    <item>
      <title>PCIe ASPM and Why You Should Disable It for Passthrough</title>
      <link>https://blogs.damiendye.uk/en/proxmox/pcie-aspm-passthrough/</link>
      <pubDate>Fri, 07 Aug 2026 09:20:00 +0100</pubDate>
      <guid>https://blogs.damiendye.uk/en/proxmox/pcie-aspm-passthrough/</guid>
      <description>Active State Power Management saves a few watts on idle PCIe links. Under VFIO passthrough, it adds latency jitter that&amp;#39;s hard to diagnose and easy to fix.</description>
    </item>
    <item>
      <title>PCIe MaxPayloadSize — A Free Performance Win for Passthrough</title>
      <link>https://blogs.damiendye.uk/en/proxmox/pcie-maxpayloadsize/</link>
      <pubDate>Fri, 07 Aug 2026 09:00:00 +0100</pubDate>
      <guid>https://blogs.damiendye.uk/en/proxmox/pcie-maxpayloadsize/</guid>
      <description>QEMU&amp;#39;s virtual root complex defaults to 128-byte TLP payloads. Most devices support 256 or 512. One kernel parameter fixes it.</description>
    </item>
  </channel>
</rss>
