O ARC não tem nenhum contador persistente, por isso ele terá que ver seu padrão de acesso novamente para determinar se algo é usado com frequência. No entanto, não vai despejar nada até que esteja cheia de pressão de memória de outra coisa no sistema, então, na primeira inicialização, tudo que for lido ou escrito terminará no cache. Contanto que seus dados acessados com frequência sejam lidos duas vezes antes disso, ele deverá entrar na lista “MFU”.
Você pode ler mais sobre o algoritmo ARC aqui . Em suma, na verdade é feito a partir de duas listas LRU, uma para coisas que foram acedidas uma vez (a "lista MRU"), e uma para coisas que foram acessadas duas vezes ou mais (a "lista MFU" - sim, o nome está incorreto, ele realmente usa o LRU para remover porque o LRU é mais rápido e simples de implementar do que o MFU). Há também “listas fantasmas” que rastreiam as chaves recentemente despejadas (mas não os dados) de cada lista, que ajudam a determinar o tamanho dos dois caches em relação um ao outro.
O L2ARC é persistente (geralmente armazenado em SSDs), mas não usa o algoritmo ARC (outro nome sub-ótimo). Acredito que basta rodar os dados no cache. Além disso, acredito que você não poderá reutilizá-lo depois de uma reinicialização, a menos que você esteja usando o fork do OpenZFS da Nexenta (ainda não achei que ele tenha desembarcado no upstream).
Exceto pelo recurso "L2ARC persistente" da Nexenta, nada nesta resposta é específico da plataforma.