-
|
Hello I have a pretty basic ZFS Mirror on Segate Exos X18 drives and I am wondering why I am somewhat away from the theoretical read and write performance. Let's put it that way, it's not bad but it could be better. During the storage expansion, I did some benchmarks. Especially the slower read speed after the change from raid0 to twin two way mirrors is strange. I read trough a lot of articles but I did not find anything conclusive. According to https://static.ixsystems.co/uploads/2020/09/ZFS_Storage_Pool_Layout_White_Paper_2020_WEB.pdf I should get: Note: I am using numjobs =1 because I am normally just me and myself reading/writing big data files. Settings: The Disks have ~140...280MB/s, depending on the location: Read: Write: Config1 I would expect read ~500MB/s / write ~250MB/s Config 2 (I was brave to break the mirror to expand the size) I would expect read ~500MB/s / write ~500MB/s (Pretty much there but not exactly) Config 3 I would expect read ~1000MB/s / write ~500MB/s (But read got slower by changing to a two way mirror instead of faster?! Reads are from all four disk, just halve the speed than without mirrors) Config 3 with recordsize=1M Better but still not great. |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 3 replies
-
|
Single-stream reads from a mirror of HDDs is tricky. Since both disks contain exactly the same data, if you do round-robin in not bit enough chunks, then while one disk read the data, another will just fly the head over. Increased chunk size together with deeper speculative prefetch might help, but also only to a degree. I was thinking to look on it again at some point, but not yet. With SSDs the situation is predictably better. |
Beta Was this translation helpful? Give feedback.
Single-stream reads from a mirror of HDDs is tricky. Since both disks contain exactly the same data, if you do round-robin in not bit enough chunks, then while one disk read the data, another will just fly the head over. Increased chunk size together with deeper speculative prefetch might help, but also only to a degree. I was thinking to look on it again at some point, but not yet. With SSDs the situation is predictably better.