Improving performance of RaidZ1

Yuri_AR

New Member
May 27, 2026
1
0
0
Hi! One of the nodes I'm using Proxmox in is experiencing high IOwait from time to time, and I'm very confident this is because physical disk bandwidth limitation.

The storage being affected is a 3 disk raidZ1 pool, all of them 2.5" SSDs (Mix of crucial and Samsung drives). All of them are pooled in a single pool. This storage is being used by around 15 containers and VMs, some of them with occasional bursts of disk use. During these periods of use, and during backups, restores, disk migrations, etc, the IOwait can reach 10-20%, and all the machines using that storage slow down to a crawl.

It was suggested to just buy more disks and expand the pool, but I'm not convinced this would address the issue. Write capacity would remain the same as far as I know, and I'm not sure there would be an improvement on read speeds given that the data would be read from the same number of shards.

I have 3 free bays on the server, and I have the possibility of adding 3 more disks. What configuration would be optimal for this situation? A different zfs pool would defeat the purpose of it, since I would need to have different PCTs/VMs on different storage, and I'd like to have them all on the same pool. Just adding the disks to the pool would probably not be useful as I said, and creating another 3 disk raidZ1 and somehow mashing both together sounds fairly inefficient.

What are my options, and which is the best one? I've been using proxmox for a while, but I don't have a firm grasp on the nuances of ZFS and storage management, until now I've managed with plain zfs pools with all the disks.
Thanks!
 
Last edited:
What you want for an OS/VM pool is random Read/Write IOPS. Striping your drives will always be faster than mirrors/RAIDZ (speed vs. reliability/parity..) but having drives with good random IOPS makes a much bigger difference.

Practically this means you want SSD's with DRAM cache, acting as a high-speed map for locating data on the slower NAND flash, thereby significantly improving random read/write performance and overall drive responsiveness. PLP is another sort of cache which is not performance minded, but serves as a failsafe buffer that ensures writes to the NAND flash before the drive shuts down.

Enterprise SSD's generally excel in random IOPS, but there are also consumer SSD's out there with DRAM cache that can run modest PVE OS/VM pools perfectly fine.

What disks are you using exactly?
 
Last edited:
  • Like
Reactions: UdoB