/proc/meminfoでは、DirtyはWritebackを含めるか除外しますか?

/proc/meminfoでは、DirtyはWritebackを含めるか除外しますか?

Dirty%lu - ディスクへの書き換えを待つメモリ。

Writeback%lu - メモリがディスクに積極的に書き戻されています。

-人間のプロセス

含まれますか?DirtyそれともWriteback除外されますか?

私のカーネルバージョンは4.18.16-200.fc28.x86_64です。

答え1

「Dirty」と「Writeback」は、これを示すための別々の統計とページの状態です。例をご覧ください。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;

そのうちの1つが別のものを含む場合、ここで考慮されます。

/proc/meminfo また、その値を処理しません。:

show_val_kb(m, "Dirty:          ",
        global_node_page_state(NR_FILE_DIRTY));
show_val_kb(m, "Writeback:      ",
        global_node_page_state(NR_WRITEBACK));

答え2

Dirty私はそれが排除されたと思います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
...

/proc/meminfo(これは100%の一貫性を保証する証拠にすぎません。)

関連情報