My setup is X410s + 2SSDs per node + L3 Cache enabled.
My understanding is NFS writes will be cached no matter what because they are buffered/coalesced, and later pushed to L3. This way the next read will avoid to hit the spinning disks.
But then, would a write from a SyncIQ policyrun also end up in the cache? My gut feeling is it wouldn't.
The distinction here is quite important for our use pattern (occasionally reading from a SyncIQ replica).
Yes, I mean that SIQ writes look like any other write to the filesystem. SIQ hands off the write to the filesystem layer just like any other protocol. This will mostly affect the L2 cache on the target but should have less of an effect on L3 from a data caching perspective unless you do random reads from those data blocks while they are in L2 in which case putting those blocks in L3 is probably a good idea anyway.
Keep in mind that not every data block in L2 goes to L3. OneFS looks for things that it finds "interesting" which in this case tends to be small random access. Big sequential accessed blocks will most likely skip L3 and just get ejected from L2 when their time has come. This is to prioritize L3 for metadata reads as well as take advantage of the fact that SSDs get the biggest bang for the buck on small random I/O. The system watches and sees how the data is accessed while in cache and decides at ejection time.
Of course, the shorter the time from when the data is written to when it is read, the better chance you'll get an L2 hit anyway.
AdamFox
254 Posts
927
2
Posted March 19th, 2018 08:00
Yes, I mean that SIQ writes look like any other write to the filesystem. SIQ hands off the write to the filesystem layer just like any other protocol. This will mostly affect the L2 cache on the target but should have less of an effect on L3 from a data caching perspective unless you do random reads from those data blocks while they are in L2 in which case putting those blocks in L3 is probably a good idea anyway.