Dirty in / proc / meminfo para dd

2

Eu li de aqui que o comando abaixo me fornece a quantidade de dados que precisam ser gravados no disco.

grep ^Dirty /proc/meminfo

Em particular, diz Sempre se pergunte "Quantos dados seriam perdidos se eu pressionasse o botão de reinicialização?"

Eu queria testar o comando acima e fiz o seguinte.

dd if=/dev/urandom of=sample.txt bs=1G count=1

Agora, em outro shell, executei o comando acima.

grep ^Dirty /proc/meminfo
Dirty:                44 kB
grep ^Dirty /proc/meminfo
Dirty:                36 kB

No entanto, se eu fizer uma cópia de arquivo usando cp ele relata,

grep Dirty /proc/meminfo
Dirty:            387680 kB
grep Dirty /proc/meminfo
Dirty:            609172 kB

Eu vejo da esta página o que o Dirty faz.

Dirty — The total amount of memory, in kilobytes, waiting to be written back to the disk.

Por que Dirty não está reportando nenhum tamanho no caso de dd ?

    
por Ramesh 13.09.2014 / 19:38

1 resposta

4

Tente usar este comando:

dd if=/dev/urandom of=sample.txt bs=1M count=1024

dd só grava os dados a serem gravados no disco quando tiver todo o tamanho bs em sua memória.

Aqui está a saída de ps para um dd de 128mb antes de a saída ser gravada no disco:

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND    
root      4465  100 12.8 236260 129784 pts/1   R+   17:15   0:13 dd if=/dev/urandom of=sample.txt bs=128M count=1

Você pode ver que o processo está usando cerca de 130 MB de RAM (coluna RSS)

    
por 13.09.2014 / 23:13

Tags