I've been continuing to do a variety of testing with ZFS-FUSE, concentrating largely on the development branches which implement deduplication. I'm using Emmanuel Anne's branch, the 94767eeb512704d673e301eb6c837ee108739bd4 branch. With a change to kernel parameters, this has been running without any problems. Continue reading if you would like more details.
After around 10 days of run-time, with “dedup=verify”, the zfs-fuse daemon was dieing. Emmanuel tracked this down to being a limit to the number of mmaps that a process can do, which by default is 64,000-ish.
I pushed this number up to around 250,000 (via: “echo 250000 >/proc/sys/vm/max_map_count”), and observed that I did indeed exceed the 64K limit, which means that is likely why ZFS-FUSE was dieing. So far it's been running 15 days without problem.
Additionally, the number of mmaps seems to jump around between 60K and 110K, so I'm not thinking that this is a leak. I'm guessing it's related to the storage size – my test system currently has around 750GB used (out of 1.25TB).
I'm going to keep this running for another couple of weeks, just to see what it ends up looking like. However, with this change to the number of mmaps, I think it's looking good.
Of course, Emmanual has continue to progress since this branch I took. He's been cruising along squashing bugs and adding improvements. However, he's been quite willing to work with me on old branches, which has been a huge benefit since my testing is often taking 1-2 weeks to run into a problem. If I was constantly getting “oh, try the latest version”, my testing would be ineffective.
So, the early result seems to be: dedup=verify with 250K mmaps and 94767eeb512704d673e301eb6c837ee108739bd4 is stable.comments powered by Disqus