On Thu, Dec 1, 2022 at 9:21 AM Michael Loftis <mloftis@xxxxxxxxx> wrote: > > > > On Thu, Dec 1, 2022 at 06:40 Mladen Gogala <gogala.mladen@xxxxxxxxx> wrote: >> >> On 11/30/22 20:41, Michael Loftis wrote: >> >> >> ZFS snapshots don’t typically have much if any performance impact versus not having a snapshot (and already being on ZFS) because it’s already doing COW style semantics. >> >> Hi Michael, >> >> I am not sure that such statement holds water. When a snapshot is taken, the amount of necessary I/O requests goes up dramatically. For every block that snapshot points to, it is necessary to read the block, write it to the spare location and then overwrite it, if you want to write to a block pointed by snapshot. That gives 3 I/O requests for every block written. NetApp is trying to optimize it by using 64MB blocks, but ZFS on Linux cannot do that, they have to use standard CoW because they don't have the benefit of their own hardware and OS. And the standard CoW is tripling the number of I/O requests for every write to the blocks pointed to by the snapshot, for every snapshot. CoW is a very expensive animal, with horns. And if you want to know more, ARS wrote a good ZFS 101 article -- the write semantics I described in overview are on page three, https://arstechnica.com/information-technology/2020/05/zfs-101-understanding-zfs-storage-and-performance/3/ -- "Genius might be described as a supreme capacity for getting its possessors into trouble of all kinds." -- Samuel Butler