私は巨大な RAM を消費する Java プロセスを持っており、彼がこのすべてのメモリで何をしているのかを理解しようとしています。したがって、この PID で pmap -x を実行しています。結果の一部を次に示します。
Address Kbytes RSS Dirty Mode Mapping
0000000000001000 4 0 0 rw--- [ anon ]
0000000000400000 48 0 0 r-x-- java
000000000050b000 4 4 4 rw--- java
0000000003b9d000 264 224 212 rw--- [ anon ]
0000000003bdf000 2199556 1887992 1830160 rw--- [ anon ]
000000396c800000 112 108 0 r-x-- ld-2.5.so
000000396ca1c000 4 4 4 r---- ld-2.5.so
[...]
ffffffffff600000 8192 0 0 ----- [ anon ]
---------------- ------ ------ ------
total kB 7072968 4382820 4270104
アドレス 3BDF000 でわかるように、2199556 KBytes と 1830160 Dirty のマッピングがあります。
/proc/10139/smaps で、詳細を確認できます。
03bdf000-89fe0000 rw-p 03bdf000 00:00 0
Size: 2199556 kB
Rss: 1887996 kB
Shared_Clean: 0 kB
Shared_Dirty: 0 kB
Private_Clean: 57832 kB
Private_Dirty: 1830164 kB
Swap: 231996 kB
Pss: 1887996 kB
したがって、この汚い記憶が何であるかを知りたいですか?これらのページはディスクに書き込む必要はないと思いますが、なぜダーティと呼ばれるのでしょうか?