Eu tenho atop
instalado, com uma solução alternativa para que funcione corretamente quando suspendo meu sistema (um laptop) durante a noite .
Os atop
logs podem ser muito informativos, se você tiver um problema prolongado com o consumo de memória. A frequência de amostragem (padrão) é de 10 minutos, portanto, pode perder problemas mais curtos.
- O meu problema parece ter durado 10 a 20 minutos.
- O uso de swap aumentou de 1,4G na amostra anterior para 2G (100%).
- Os próprios tópicos
qemu-img
não tinham um tamanho grande na RAM. O processoqemu-img
tinha apenas 25 milhões de residentes. -
swout
foi175735
. Isso é medido em páginas de 4096 bytes, o que significa que 0.7G foi trocado.
Ao mesmo tempo, cache
cresceu de 0,8G para 2,3G. free
de memória ficou em 0,1G.
Eu suspeito qemu-img está fazendo IO em cache, o cache está empurrando outra memória, e isso é o que causa a troca. Se eu não tivesse espaço de troca, espero que ainda haja algum problema; isto é, o código do programa carregado e outros caches seriam despejados.
Parece que meu qemu-img convert
é mais complexo que cp
e está criando muitas páginas "ativas" no cache.
One could think of the inactive list as a sort of probational status for pages that kernel isn't sure are worth keeping. Pages can get there from the active list as described above, but there's another way to inactive status as well: file-backed pages, when they are faulted in, are placed in the inactive list. It is quite common that a process will only access a file's contents once; requiring a second access before moving file-backed pages to the active list lets the kernel get rid of single-use data relatively quickly.
Se eu drop_caches
e, em seguida, cp
um arquivo 16G, pareço ter um problema semelhante, onde ele aciona bastante troca. Então o kernel não parece estar se livrando dos dados de uso único tão rapidamente quanto eu esperava.