Okay, so before we dive into this and the 80% rule of thumb, I just want to give you a little context on how ZFS commits rights, because it's different than your standard file system. So ZFS kinda is very transactional in how it makes a right. It's almost more like a database than a streaming file system, and this way it's very atomic, when it commits right, it commits the whole right. So, one of the great parts of this is you avoid all kinds of nasty stuff, like if you pull power on it before it commits right, it just loses that last little block, replays it from its intent log and recovers that way. So because of this, ZFS is an incredibly robust and redundant file system.
Okay, so what is this ZFS 80% rule of thumb? Well if you've done any research on ZFS online or it even says it in the Wikipedia page, around 80%, the code will switch more from performance mode to right space-saving mode. Really what this means to the end user or what is prescribed to most users, that your performance will start to fall off after 80%, so size your pool accordingly. So what I want to talk about is really where that cutoff point really is and give you a little bit of analogy so you can understand what ZFS is doing.
So the analogy I like to use when kind of telling someone how ZFS writes is you can kind of think of, you're a teenager and you've got a really messy room, and your mom comes in and she kicks the door and she looks at you and says “clean your friggin room man”, and you're going “well okay fine”, so you go to clean your room. So what do you do? Do you fold your clothes and put them away nicely? Nah, you crack that closet door open and you just start throwing stuff in, aright? And then so within like two seconds you've got half your room cleared. But now, what happens is your closet’s full, and you've still got that corner of stuff to get in there. So now you can't just keep throwing stuff into the closet, you gotta have to go grab some things, move some things around, fit it into that corner, fit it over there. This is essentially what a ZFS pool is doing when it writes. While there's room, it just bombs stuff in there. Once it starts to fill up, it's got to be a little careful on where it fits everything in. And this is this 80% cutoff that people are talking about, where this slowdown starts to happen.
It's a fun fact (I guess this week more of a kind of practical fact), this 80% rule of thumb is really more of a 90% rule. From our testing in our lab, we've gotten this as far as 94% full before we really saw any performance degradation at all. In the field we've seen it anywhere mix between 88 to 90, so of course your mileage may Vary, but really my point is that 80% rule of thumb that you may see Everywhere, you can push it a little further than that.
Okay so that's this week's tech tip, hope you learned something, hope you enjoyed it. As always, leave us questions, or requests, or anything in the comments below. Reach out on any of our social media, we love hearing from you. I’ll see you next week.
Contact us to discuss your storage needs and to find out why the Storinator is right for your business.Contact 45Drives