[ZFS] ARC accounting bug ?

Ben RUBSON ben.rubson at gmail.com
Fri Aug 26 09:39:06 UTC 2016


Hello,

Before opening a bug report, I would like to know whether what I see is "normal" or not, and why.

### Test :

# zfs import mypool
# zfs set primarycache=metadata mypool
# while [ 1 ]; do find /mypool/ >/dev/null; done

real	0m59.469s
user	0m0.243s
sys	0m3.184s

real	0m1.445s
user	0m0.181s
sys	0m1.264s

real	0m1.441s
user	0m0.150s
sys	0m1.291s

(...) // then all results are equal to 0m1.4s

# zfs-mon -a

ZFS real-time cache activity monitor
Seconds elapsed: 162

Cache hits and misses:
                                1s    10s    60s    tot
                   ARC hits: 79228  76030  73865  74953
                 ARC misses: 22510  22184  21647  21955
       ARC demand data hits:     0      0      0      0
     ARC demand data misses:     4      7      8      7
   ARC demand metadata hits: 79230  76030  73865  74953
 ARC demand metadata misses: 22506  22177  21639  21948
                ZFETCH hits:    47     29     32     31
              ZFETCH misses:101669  98138  95433  96830

Cache efficiency percentage:
                        10s    60s    tot
                ARC:  77.41  77.34  77.34
    ARC demand data:   0.00   0.00   0.00
ARC demand metadata:  77.42  77.34  77.35
             ZFETCH:   0.03   0.03   0.03

### Question :

I don't understand why I have so many ARC misses.
There is no other activity on the server (as soon as I stop the find loop, no more ARC hits).
As soon as the first find loop is done, there is no more disk activity (according to zpool instate -v 1), no read/write operations on mypool.
So I'm pretty sure all metadata comes from ARC.
So why are there so many ARC misses ?

Any clue ?
An accounting bug ?

Many thanks !

Ben



More information about the freebsd-fs mailing list