Replies: 2 comments 5 replies
-
With exception of Direct I/O added in ZFS 2.3 and which has to be requested explicitly, all normal I/O in ZFS, including writes, goes through ARC. But ARC is called "Adaptive" for a reason. It tries to balance between MRU and MFU policies based on the workload it experiences over time to prevent massive wipe out by large sequential operations. I suppose the backup is not the only workload of your system, so you may take a look on |
Beta Was this translation helpful? Give feedback.
-
I suppose it would really be the |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
As the title says, I'm curious whether any data being written to a pool is written into the ARC, or does the ARC only operate upon data that is being read from a pool?
Basically I'm trying to confirm some behaviour I've been observing – my home setup consists of three pools, one is my working pool (zdata), one is a direct attached backup pool (zbackup), and the third is my NAS (zbackupds). Basically what I do for my backups is I send regularly from zdata to zbackup, then periodically send from zbackup to zbackupds (when it runs, this occurs immediately after the zdata -> zbackup send/receive).
But I've noticed that the disk activity on zbackup during each step is broadly the same, except that it flips from writing (zdata -> zbackup) to reading (zbackup -> zbackupds) which seems to suggest that nothing (or very little) is being pulled from ARC, and it's all coming from the disk(s).
As a result I'm interested in optimising that step somehow, as most of my backups tend not to be that large (usually in the order of 1-3gb) so could be buffered in RAM, but the fact that the frequency of the backups is different makes that tricky (I can't just retain the output of
zfs send
and repeat it). I could alternatively change the procedure so both backups are from zdata, which isn't impossible, but partly why I set up this "chained" approach is I may eventually move zbackup to a NAS as well.It seems like it would be beneficial in my case if the first backup (to zbackup) populated the ARC with the new data, as it would mean that the bulk of the data going to zbackupds could be fetched from ARC, since that step runs immediately afterwards.
TL;DR
Basically the questions I'm interested in are:
Beta Was this translation helpful? Give feedback.
All reactions