On 2015-10-02 00:21, Russell Coker wrote: > On Sat, 26 Sep 2015 12:20:41 AM Austin S Hemmelgarn wrote: >>> FYI: >>> Linux pagecache use LRU cache algo, and in general case it's working good >>> enough >> >> I'd argue that 'general usage' should be better defined in this >> statement. Obviously, ZFS's ARC implementation provides better >> performance in a significant number of common use cases for Linux, >> otherwise people wouldn't be using it to the degree they are. > > No-one gets a free choice about this. I have a number of servers running ZFS > because I needed the data consistency features and BTRFS wasn't ready. There > is no choice of LRU vs ARC once you've made the BTRFS vs ZFS decision. I'm not saying there is a free choice in this, although that is largely because the page-cache wasn't written in a way on Linux that allows for easy development of alternative caching algorithms for it. When I said 'using it', I meant using ZFS, not just ARC. I would love to be able some day to be able to use ARC or even just SLRU (ARC with out the adaptive internal sizing bits) on Linux, as both provide better performance for COW workloads than plain LRU (although, somewhat paradoxically, for some COW workloads, an MRU algorithm is even better). > > ARC presumably worked better than the other Solaris caching options. It was > ported to Linux with zfsonlinux because that was the easy way of doing it. Actually, I think part of that was also the fact that ZFS is a COW filesystem, and classical LRU caching (like the regular Linux pagecache) often does horribly with COW workloads (and I'm relatively convinced that this is a significant part of why BTRFS has such horrible performance compared to ZFS). > > Some people here have reported that ARC worked well for them on Linux. My > experience was that the zfsonlinux kernel modules wouldn't respect the module > load options to reduce the size of the ARC and the default size would cause > smaller servers to have kernel panics due to lack of RAM. My solution to that > problem was to get more RAM for all ZFS servers as buying RAM is cheaper for > my clients than paying me to diagnose the problems with ZFS. The whole ARC sizing issue with zfsonlinux is largely orthogonal to whether or not ARC is better for a given workload, and I think that there is actually some lower limit they force based on the amount of RAM at boot.