Performance Optimizations
Performance Optimizations
This page documents the specific kernel and hardware tweaks applied to Terra (Ryzen 5950X / Ubuntu 24.04) to optimize for container performance, storage throughput, and power efficiency.
⚡ CPU & Power Management
AMD P-State (Active Mode)
- Driver:
amd_pstate=active(EPP - Energy Performance Preference) - Benefit: Allows the kernel to communicate directly with the Zen 3 power management controller. Enables a wider frequency range (550MHz - 5000MHz) and more granular boost control.
- Configuration: Added to
GRUB_CMDLINE_LINUX_DEFAULTin/etc/default/grub.
IRQ Balancing
- Service:
irqbalance(Installed/Enabled) - Benefit: Distributes hardware interrupts (HBA, NVMe, NIC) across all 32 threads. Prevents Core 0 from becoming a bottleneck during high I/O tasks.
🧠 Memory Tuning
Static Hugepages
- Setting:
hugepages=2048(Reserving 4GB total as 2MB pages) - Benefit: Reduces TLB (Translation Lookaside Buffer) misses for memory-heavy apps like Minecraft (Java) and Postgres/AI services.
- Configuration: Added to
GRUB_CMDLINE_LINUX_DEFAULTin/etc/default/grub.
Kernel Memory Guard
- Setting:
init_on_alloc=0 - Benefit: Disables the sanitization (zeroing) of memory pages at allocation time, reducing CPU overhead for high-frequency memory operations.
💾 I/O & Network Tuning (sysctl)
ZFS Write Buffering
/etc/sysctl.d/50-dirtybytes.conf
Settings: vm.dirty_background_bytes = 268435456, vm.dirty_bytes = 1073741824 (256MB / 1GB)
Benefit: Prevents the kernel from buffering massive amounts of "dirty" data in the 128GB RAM before flushing to HDDs, which eliminates system-wide stutter during large I/O tasks.
Redis Overcommit
vm.overcommit_memory = 1
Benefit: Necessary for Redis/Valkey background snapshots. Allows the kernel to grant memory fork requests even if it exceeds current estimated availability.
HTTP/3 & QUIC Buffers (Caddy)
/etc/sysctl.d/99-caddy.conf
Settings: net.core.rmem_max = 7500000, net.core.wmem_max = 7500000 (7.5MB)
Benefit: Increases UDP receive/send window sizes, preventing packet drop and improving performance for modern HTTP/3 and QUIC connections through Caddy.
🎮 GPU Optimization (Quadro P2200)
Persistence Mode
- Command:
sudo nvidia-smi -pm 1 - Benefit: Keeps the Nvidia driver loaded in memory regardless of active load. Eliminates the 1-2 second initialization delay when a container (Immich, OpenWebUI) calls the GPU for transcoding or inference.
🛡️ Future Considerations
ZFS Dirty Ratio:Potential tuning for smoother HDD write buffering.