Eu tenho um zpool de teste configurado com um único disco giratório de 4 TB conectado por USB que lê cerca de 40MB / s.
Tenho quatro SSDs internos SATA2 rápidos de 300 GB configurados como cache para este disco. Eu posso ler cerca de 900MB / seg deste L2ARC.
Estou lendo um conjunto de dados em grande parte estático de 400 GB deste pool.
O sistema em questão tem mais de 200 GB de memória livre, o que, presumo, opera a > 1500 MB / s para nossos objetivos.
Every 1.0s: zpool iostat -y -v 1 1 ; zpool status -v las2: Tue Oct 16 20:20:07 2018
capacity operations bandwidth
pool alloc free read write read write
-------------------------------------------------- ----- ----- ----- ----- ----- -----
storage 417G 3.22T 239 2 29.7M 132K
usb-Seagate_M3_Portable_NM12QHQF-0:0-part1 417G 3.22T 239 2 29.7M 132K
cache - - - - - -
ata-INTEL_SSDSC2BA400G3_BTTV41450D92400HGN-part3 52.8G 291G 11 0 927K 128K
ata-INTEL_SSDSC2BA400G3_BTTV423000XA400HGN-part3 52.9G 291G 13 0 1.48M 0
ata-INTEL_SSDSC2BA400G3_BTTV423406FG400HGN-part3 52.7G 291G 8 0 324K 0
ata-INTEL_SSDSC2BA400G3_BTTV423406G6400HGN-part3 52.9G 291G 5 0 336K 0
-------------------------------------------------- ----- ----- ----- ----- ----- -----
pool: storage
state: ONLINE
scan: scrub repaired 0B in 1h56m with 0 errors on Sun Oct 14 02:20:56 2018
config:
NAME STATE READ WRITE CKSUM
storage ONLINE 0 0 0
usb-Seagate_M3_Portable_NM12QHQF-0:0-part1 ONLINE 0 0 0
cache
ata-INTEL_SSDSC2BA400G3_BTTV41450D92400HGN-part3 ONLINE 0 0 0
ata-INTEL_SSDSC2BA400G3_BTTV423000XA400HGN-part3 ONLINE 0 0 0
ata-INTEL_SSDSC2BA400G3_BTTV423406FG400HGN-part3 ONLINE 0 0 0
ata-INTEL_SSDSC2BA400G3_BTTV423406G6400HGN-part3 ONLINE 0 0 0
errors: No known data errors
AIUI, leituras colocadas em cache no ARC na memória do sistema. Quando isso atinge algum nível de "full", eles são despejados no L2ARC, 1.1TB de SSD rápido.
Quando executo um tar -c . | pv > /dev/null
de um dos diretórios praticamente inalterados nesse conjunto, vejo cerca de 40 MB / s - a velocidade das leituras do HDD subjacente e lento.
O problema é que eu vejo pela segunda vez também! Às vezes aumenta para 80-100MB / seg, mas também às vezes cai para 10MB / seg. Eu esperaria que 99% das leituras viessem da memória ou do rápido L2ARC.
O que dá? Eu esperaria ver a partir de velocidades de memória RAM como esta caixa tem 256GB de memória do sistema e mais de 200GB do que é livre. Caso contrário, ainda há centenas de gigabytes de L2ARC não utilizados.
O que estou fazendo de errado? Por que esses dados não estão sendo lidos do ARC a uma velocidade extremamente alta (> 1 GB / s)? Falhando nisso, por que não está sendo lido do L2ARC (> 500MB / s)? Por que estou vendo 40-80MB / seg em um sistema principalmente descarregado?
Ubuntu bionic 18.04.1 x86_64 system.
Linux las2 4.15.0-36-generic #39-Ubuntu SMP Mon Sep 24 16:19:09 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
zfs-auto-snapshot/now 1.2.4-1 all [installed,local]
zfs-zed/now 0.7.5-1ubuntu16.4 amd64 [installed,local]
zfsutils-linux/now 0.7.5-1ubuntu16.4 amd64 [installed,local]