Em / proc / meminfo, o Dirty inclui ou exclui o Writeback?

0

Dirty %lu - Memory which is waiting to get written back to the disk.

Writeback %lu - Memory which is actively being written back to the disk.

-- man proc

O Dirty inclui Writeback ? Ou é excluído?

Minha versão do kernel é 4.18.16-200.fc28.x86_64.

    
por sourcejedi 14.11.2018 / 13:01

2 respostas

2

"Sujo" e "Writeback" são estatísticas e estados de página separados; para prova disso, veja por exemplo node_dirty_ok :

nr_pages += node_page_state(pgdat, NR_FILE_DIRTY);
nr_pages += node_page_state(pgdat, NR_UNSTABLE_NFS);
nr_pages += node_page_state(pgdat, NR_WRITEBACK);

return nr_pages <= limit;

Se um incluísse o outro, isso seria levado em consideração aqui.

/proc/meminfo não processa os valores correspondentes :

show_val_kb(m, "Dirty:          ",
        global_node_page_state(NR_FILE_DIRTY));
show_val_kb(m, "Writeback:      ",
        global_node_page_state(NR_WRITEBACK));
    
por 14.11.2018 / 13:11
0

Acho que Dirty exclui Writeback .

dd if=/dev/zero of=~/X.img bs=1M count=1 ; sync & for i in 1 2 3; do grep -E '^(Dirty:|Writeback:|MemFree:|Cached:)' /proc/meminfo ; done
1+0 records in
1+0 records out
1048576 bytes (1.0 MB, 1.0 MiB) copied, 0.00316564 s, 331 MB/s
[1] 13140
MemFree:         1461832 kB
Cached:          1475188 kB
Dirty:               132 kB
Writeback:          1032 kB
...

(Embora isso seja apenas uma prova se /proc/meminfo for garantido 100% consistente).

    
por 14.11.2018 / 13:05