Como o fstrim continua procurando bytes para aparar em um Xen PV dom0?

1

Eu tenho um nó Xen PV executando o RHEL6 no kernel 3.10. Este nó tem o RAID1 do mdadm e as seguintes partições:

[root@node ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/md1         15G  4.1G  9.9G  30% /
tmpfs           966M     0  966M   0% /dev/shm
/dev/md0        477M   84M  365M  19% /boot
xenstore        966M  184K  966M   1% /var/lib/xenstored

O nó também possui um LVM que ocupa a parte restante dos SSDs menos 20 GB que deixei não alocado para o superprovisionamento de SSDs.

Eu notei um comportamento interessante recentemente quando executo fstrim do dom0. fstrim continuará reduzindo os bytes mesmo que não tenha ocorrido uma quantidade significativa de atividade de disco no dom0 (com exceção dos backups noturnos). Há toneladas de atividade de disco ocorrendo nas domUs, mas quase nenhuma em dom0.

Cada um destes comandos fstrim abaixo foram separados por um atraso de ~ 2 minutos:

[root@node ~]# fstrim -v /
/: 10452664320 bytes were trimmed
[root@node ~]# fstrim -v /
/boot: 0 bytes were trimmed
[root@node ~]# fstrim -v /
/: 181784576 bytes were trimmed
[root@node ~]# fstrim -v /
/boot: 0 bytes were trimmed
[root@node ~]# fstrim -v /
/: 283222016 bytes were trimmed
[root@node ~]# fstrim -v /
/boot: 0 bytes were trimmed
[root@node ~]# fstrim -v /
/: 334065664 bytes were trimmed

O primeiro fstrim foi o primeiro executado durante o dia e, como esperado, encontrou cerca de 10 GB de páginas para aparar - está correlacionado com backups noturnos que foram feitos. Se eu executar o comando alguns minutos depois, não há nada para cortar. Mas se eu esperar mais alguns minutos e cortar novamente, então sempre haverá algo para aparar - não uma quantidade insignificante de dados (por exemplo, ~ 300MB).

Como mencionei antes, o dom0 tem muito pouca atividade de disco fora do backup noturno. Os domUs têm toneladas de atividade de disco, mas eu não teria pensado que o dom0 poderia cortar páginas associadas a um sistema de arquivos domU.

Em ambos os casos, quando executo fstrim on dom0, o desempenho nos domUs irá melhorar notavelmente - iowait cai.

Alguém sabe como é possível que o dom0 possa cortar continuamente centenas de MB quando há pouca atividade de disco no dom0?

    
por Elliot B. 19.09.2017 / 17:30

0 respostas