Memory

dd 的 /proc/meminfo 髒了

  • September 13, 2014

我從這裡讀到下面的命令給了我需要寫入磁碟的數據量。

grep ^Dirty /proc/meminfo

它特別說曾經問自己“如果我按下重置按鈕會失去多少數據?”

我想測試上面的命令,所以我做了以下。

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

現在,在另一個 shell 中,我執行了上述命令。

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

但是,如果我使用cp它報告進行文件複製,

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

我從這個頁面看到 Dirty 做了什麼。

Dirty — 等待寫回磁碟的記憶體總量,以千字節為單位。

為什麼Dirty不報告任何大小dd

嘗試改用此命令:

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

dd``bs只有當記憶體中的所有大小都達到時,才會寫入分配要寫入磁碟的數據。

這是輸出寫入磁碟之前 128mb 的輸出psdd

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

您可以看到該程序使用了大約 130mb 的記憶體(RSS 專欄)

引用自:https://unix.stackexchange.com/questions/155436