/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;

그 중 하나가 다른 하나를 포함하는 경우 여기에서 고려됩니다.

/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% 일관성을 보장하는 증거 일 뿐입니다 .)

관련 정보