Dirty
%lu - 正在等待写回磁盘的内存。
Writeback
%lu - 正在主动写回磁盘的内存。--人进程
包括?Dirty
Writeback
还是排除了?
我的内核版本是4.18.16-200.fc28.x86_64。
答案1
“脏”和“写回”是单独的统计数据和页面状态;要证明这一点,请参见示例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;
如果其中之一包括另一个,则此处将予以考虑。
/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% 一致的证明)。