3

My setup has 256 GB of RAM, of which 200 GB are dedicated to arc, and 2 SSDs for l2arc. It's being up since several days and steadily serving files to many clients, yet it seems that the l2arc is still not warmed up properly. The cache report of zpool iostat -v says:

cache           -      -      -      -      -      -
  sdy       4.84G   889G      0      0    203    819
  sdz       4.84G   889G      0      0    202    826

I'm seeing a miss ratio for arc constantly around 10%:

$ arcstat 2
    time  read  miss  miss%  dmis  dm%  pmis  pm%  mmis  mm%  size     c  avail
09:18:03    78     7      9     0    0     7  100     0    0  200G  199G    31G
09:18:05   21K  1.0K      8     5    1  1.0K   50     5    1  200G  199G    31G
09:18:07   18K  1.0K      8    40    1  1.0K   47     2    1  199G  199G    31G
09:18:09   18K  1.0K      7    44    1  1.0K   48     3    1  200G  199G    31G

so I'd say that this should lead to a population of the l2arc, which instead seems to not happen with the two cache SSDs stuck at an occupation of about 4.8 GB since days. As a consistency check the l2arc miss ratio is constantly 100%:

$ arcstat -f l2bytes,l2read,l2miss,l2miss% 2
l2bytes  l2read  l2miss  l2miss%
      0       6       6      100
      0    1.0K    1.0K      100
      0    1.0K    1.0K      100
      0    1.0K    1.0K      100

For sure I'm either missing something or having a faulty setup, so I'd need some guidance.

1 Answers1

1

L2ARC is populated only from soon-to-be-evicted ARC buffers. If ARC churn rate is too low, or too high, L2ARC can have issue warming up.

To increase L2ARC utilization, you can try to set l2arc_noprefetch=0 and, if you are using ZFS 2.0.x, l2arc_headroom=0 (if using an older ZFS version, you need to specify a value as l2arc_headroom=32).

shodanshok
  • 52,255