The ARC has a low priority in RAM, so if any program wants/needs to allocate memory, the ARC size is reduced.
If you constantly run into memory pressure ( zfs-stats -A
), put more memory in the system as your problem isn't ZFS but too little memory for your workloads.
On low-memory systems you absolutely don't want to use an L2ARC - firstly because it needs memory for its pointer maps, which will be capped from the ARC, and secondly the L2ARC holds blocks that have fallen off the ARC, so there has to be an ARC to spill over in the first place.
As for SSHDs: I've replaced all the various (Seagate) SSHDs here that came in Laptops and Clients. The failure rate of these drives is absolutely insane: I still have 6 of them lying here in the closet and 4 of them are refurbished RMA parts and almost all of the other ~half I've already recycled also were RMA'd drives. I think the main reason for this is the constant spindown/spinup on mid- to low workloads on these drives, just as it was the case with WD green drives. On the WDs you could at least adjust or disable the automatic spindown to prevent them from self-destruct...
Also: NO disk-cache is even remotely as fast as ARC in system memory, especially over slow and single-queued SATA links. We're talking about magnitudes way up in the 4-digit range for latency and probably even bandwidth here. Completely disabling the ARC will definitely obliterate the performance of the pool.