Stop your LVM snapshots from killing your disk performance
By Saket Jain Published Linux/Unix
Stop your LVM snapshots from killing your disk performance
Technical Briefing | 8/10/2026
You probably set up LVM snapshots years ago because they sounded like a quick win for backups. It is all fun and games until your write latency jumps from a few microseconds to half a second because your snapshot volume is full. I have seen production databases stall completely because the cow table overflowed during a heavy write burst, effectively freezing the volume group. It is a classic trap.
Why the copy-on-write overhead destroys your latency
Every time you write to an original block that has not been modified since the snapshot was taken, LVM pauses that write. It has to copy the original data to the snapshot volume first, then perform the actual write. When your snapshot volume is on the same physical spindle as your data, you are essentially doubling your I/O and killing your read-ahead performance. You need to keep a close eye on the snapshot utilization percentage.
lvs -o lv_name,data_percent,lv_size,lv_metadata_percent
- Never size your snapshot volume smaller than 20 percent of your total active data change rate
- Move snapshot volumes to physically separate storage controllers whenever possible
- Monitor the snapshot utilization with a cron job or node exporter to prevent silent failures
If you are running on modern XFS or ext4 partitions, consider switching to thin provisioning. It handles the metadata overhead much better than traditional linear snapshots and gives you a bit more breathing room. Just don’t forget that thin pools have their own failure modes if they run out of space. Keep your snapshots ephemeral, take them, move the data off-box, and kill them immediately.
If you really want to sleep better at night, use a monitoring check that triggers an alert at 70 percent usage. Once you hit 90 percent, you are already in the danger zone where any spike in logs or database writes will take the whole subsystem down. Automate the cleanup, but ensure you have a manual override so you do not accidentally prune a backup that is halfway through a transfer.
