De alguma forma, aconteceu de trocar 14 GB de memória. Depois de matar o culpado, tenho toneladas de memória livre novamente, então pensei em trazer os dados importantes novamente. Portanto, com 5 GB dos 32 GB usados e 14 GB de espaço de troca usado, executei swapoff -a
.... e 4 horas depois, cerca de metade do trabalho foi concluído.
Isso significa menos que 1 MB / s, enquanto eu posso copiar facilmente 200 MB / s. Minha troca é criptografada, mas todas as partições normais também são e, com o aes-ni , não há carga perceptível na CPU (e o preenchimento do espaço de troca levou apenas alguns minutos). Vejo que não há nenhuma razão especial para otimizar swapoff
, no entanto, me pergunto como isso poderia ficar tão lento?
Apenas adicionando mais alguns dados: Minha memória principal é de 32 GB e tenho espaço de troca de 32 GB em cada um dos 4 discos rígidos (certamente um exagero, mas quem se importa?). Todo o espaço de troca pode ser (descriptografado e) lido em menos de 5 minutos:
time -p sudo sh -c 'for i in /dev/mapper/cryptswap?; do md5sum $i & done; wait'
014a2b7ef300e11094134785e1d882af /dev/mapper/cryptswap1
a6d8ef09203c1d8d459109ff93b6627c /dev/mapper/cryptswap4
05aff81f8d276ddf07cf26619726a405 /dev/mapper/cryptswap3
e7f606449327b9a016e88d46049c0c9a /dev/mapper/cryptswap2
real 264.27
Ler uma parte de uma partição não pode ser mais lento do que ler tudo. No entanto, ler cerca de 1/10 disso leva cerca de 100 vezes mais.
Observei que, durante as swapoff
duas CPUs, a maioria estava ociosa (talvez 10% de um núcleo) e os discos ("medidos" pelos LEDs). Também vi que os espaços de troca foram desativados um após o outro.
iostat -d 5
apresentam baixa IO nos discos durante swapoff
, também?