Diagnosing Storage Bottlenecks in the Homelab
Recently, I noticed some sluggish performance in my self-hosted services, particularly with my Nextcloud and Jellyfin instances.
The Symptoms
- Slow page loads
- High I/O wait times shown in
htop - General unresponsiveness during backups
The Investigation
I started by checking the Proxmox metrics. My CPU usage was low, RAM was fine, but the IO delay was spiking consistently.
My setup at the time:
- Proxmox running on a Dell Optiplex
- VM storage on local SATA SSD
- Docker data mounted via NFS from my Unraid NAS
I thought keeping state on the NAS was smart for redundancy, but I hadn't accounted for the network overhead and the random I/O patterns of databases (MariaDB, SQLite) running in those containers.
The Fix
I migrated the persistent volumes for my high-IO containers (databases, search indices) to a local NVMe drive passed through to the VM.
# Example docker-compose volume change
volumes:
- /mnt/fast_nvme/app_data:/config
The difference was night and day. Services that took seconds to load now load instantly. I still use the NAS for bulk media storage and nightly backups, but active data lives on fast local storage now.