Yorick
Wizard
- Joined
- Nov 4, 2018
- Messages
- 1,912
I’m having a lively discussion with @microserf elsewhere in this forum, and we’re hijacking a question about “what should be my first motherboard”. I’m taking this discussion here.
The two positions:
I can’t think of a home / enthusiast use case that would ever justify an L2ARC. Certainly not if the NAS feeds data through a 1Gb or 2x1Gb link.
@microserf asserts that an L2ARC can be beneficial in home setups with at least 32GB of RAM.
With that, in this post, I will attempt to refute his latest scenario.
Here’s a hypothetical he gave, and it’s off the top of his head, so no niggling on the numbers too much:
>>
First, don't conflate network link speed with ARC/L2ARC speed more than is necessary. Second, don't forget writes.
Off the top of my head :) ,
Alice is streaming a 20Mbps movie to the TV in the living room and is recording a 15Mbps OTA TV show using Plex . Bob is in his room talking to his girlfriend while his desktop is running an automated backup and streaming his playlist. Carol works from home and is updating NextCloud for the week ahead. Dave is in the backyard smoking a brisket while being recorded from two angles in HD (2 x 16Mbit/s).
The Plex streams are taxing the storage system (light to moderate, depending on fragmentation). If it's being transcoded, the CPU is awake. The backup is taxing the storage system (light to moderate) and might be using an internal db (more storage, random read/write, CPU). Carol is a wildcard but will interrupt the process of smoking brisket (sitting and drinking beer) if things get laggy. Dave is trying to hide from the multi-cam surveilllance system streaming to the NAS (moderate to...depends on stream count).
The 2 x 1Gb/s network is fine. The flying drive heads are getting a workout. Don't upset Dave.
>>
@microserf, you had linked me to the ZFS primer at https://www.ixsystems.com/documentation/freenas/11.2/zfsprimer.html . I’ll quote from that:
“When applications perform large amounts of random reads on a dataset small enough to fit into L2ARC, read performance can be increased by adding a dedicated cache device. SSD cache devices only help if the active data is larger than system RAM but small enough that a significant percentage fits on the SSD.”
Streaming by its nature doesn’t fit the description of “large amounts of random reads on a dataset”. L2ARC is not a readahead. That’s key to my argument. Once a piece of the show, some music, has been streamed, we’re not revisiting it. Only when there’s a dataset that doesn’t fit into RAM but does fit on L2ARC SSD, and we’re doing a large amount of random reads on it over and over again, does the L2ARC help me.
Nor do the writes mean anything in this situation. Sure they tax the heads, but since L2ARC isn’t a readahead, they’ll get taxed the same with or without L2ARC.
That’s the gist of my argument. L2ARC isn’t a readahead, and “large amounts of random reads over a dataset” should be taken literally, with “large” meaning a scale you’d see on a busy production server, not a home server.
Therefore, L2ARC does nothing for me in the home. It can’t.
ZIL doesn’t apply here either, none of these writes are sync writes.
I know some people with home labs ... two times ESXi, 10Gb NICs, sync writes, 38 VMs ... have seen great benefits from ZIL. That’s someone reproducing a datacenter workload in the home.
My question to the community, out of curiosity: If you implemented L2ARC because the analysis tools of FreeNAS indicated it was warranted, what was the environment? Type of workload, connectivity and throughput, measured performance increase?
The two positions:
I can’t think of a home / enthusiast use case that would ever justify an L2ARC. Certainly not if the NAS feeds data through a 1Gb or 2x1Gb link.
@microserf asserts that an L2ARC can be beneficial in home setups with at least 32GB of RAM.
With that, in this post, I will attempt to refute his latest scenario.
Here’s a hypothetical he gave, and it’s off the top of his head, so no niggling on the numbers too much:
>>
First, don't conflate network link speed with ARC/L2ARC speed more than is necessary. Second, don't forget writes.
Off the top of my head :) ,
Alice is streaming a 20Mbps movie to the TV in the living room and is recording a 15Mbps OTA TV show using Plex . Bob is in his room talking to his girlfriend while his desktop is running an automated backup and streaming his playlist. Carol works from home and is updating NextCloud for the week ahead. Dave is in the backyard smoking a brisket while being recorded from two angles in HD (2 x 16Mbit/s).
The Plex streams are taxing the storage system (light to moderate, depending on fragmentation). If it's being transcoded, the CPU is awake. The backup is taxing the storage system (light to moderate) and might be using an internal db (more storage, random read/write, CPU). Carol is a wildcard but will interrupt the process of smoking brisket (sitting and drinking beer) if things get laggy. Dave is trying to hide from the multi-cam surveilllance system streaming to the NAS (moderate to...depends on stream count).
The 2 x 1Gb/s network is fine. The flying drive heads are getting a workout. Don't upset Dave.
>>
@microserf, you had linked me to the ZFS primer at https://www.ixsystems.com/documentation/freenas/11.2/zfsprimer.html . I’ll quote from that:
“When applications perform large amounts of random reads on a dataset small enough to fit into L2ARC, read performance can be increased by adding a dedicated cache device. SSD cache devices only help if the active data is larger than system RAM but small enough that a significant percentage fits on the SSD.”
Streaming by its nature doesn’t fit the description of “large amounts of random reads on a dataset”. L2ARC is not a readahead. That’s key to my argument. Once a piece of the show, some music, has been streamed, we’re not revisiting it. Only when there’s a dataset that doesn’t fit into RAM but does fit on L2ARC SSD, and we’re doing a large amount of random reads on it over and over again, does the L2ARC help me.
Nor do the writes mean anything in this situation. Sure they tax the heads, but since L2ARC isn’t a readahead, they’ll get taxed the same with or without L2ARC.
That’s the gist of my argument. L2ARC isn’t a readahead, and “large amounts of random reads over a dataset” should be taken literally, with “large” meaning a scale you’d see on a busy production server, not a home server.
Therefore, L2ARC does nothing for me in the home. It can’t.
ZIL doesn’t apply here either, none of these writes are sync writes.
I know some people with home labs ... two times ESXi, 10Gb NICs, sync writes, 38 VMs ... have seen great benefits from ZIL. That’s someone reproducing a datacenter workload in the home.
My question to the community, out of curiosity: If you implemented L2ARC because the analysis tools of FreeNAS indicated it was warranted, what was the environment? Type of workload, connectivity and throughput, measured performance increase?
Last edited: