On 2015-10-02 00:21, Russell Coker wrote:
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).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 enoughI'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.
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).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.
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.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.
smime.p7s
Description: S/MIME Cryptographic Signature