Berikut ini adalah penggunaan memori mysqldan apachemasing - masing di server saya. Sesuai output pmapkatakanlah, mysqlmenggunakan sekitar 379M dan apachemenggunakan 277M.
[root@server ~]# pmap 10436 | grep total
total 379564K
[root@server ~]# pmap 10515 | grep total
total 277588K
Membandingkan ini dengan output dari top, saya melihat nilai hampir cocok.
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
10515 apache 20 0 271m 32m 3132 S 0.0 6.6 0:00.73 /usr/sbin/httpd
10436 mysql 20 0 370m 21m 6188 S 0.0 4.3 0:06.07 /usr/libexec/mysqld --basedir=....
Sekarang nilai-nilai ini jelas bukan penggunaan memori saat ini dari dua proses, karena jika itu sudah melebihi 512M rampada sistem saya dan saya mengerti fakta bahwa ini adalah ukuran halaman yang ditugaskan untuk dua proses ini dan tidak benar-benar ukuran memori yang aktif digunakan oleh mereka. Sekarang, ketika kita gunakan pmap -x, saya melihat kolom tambahan Dirtyyang menunjukkan penggunaan memori jauh lebih sedikit untuk proses tersebut. Seperti yang terlihat pada contoh di bawah ini, Dirtykolom menunjukkan 15M sebagai lawan dari 379M di kolom pertama. Pertanyaan saya adalah: Apakah nilai di bawah kolom Dirtyadalah jumlah memori 'nyata' yang digunakan secara aktif oleh proses itu? Jika tidak, lalu bagaimana kita bisa mengetahui penggunaan memori nyata dari suatu proses? Tidak psdan topuntuk alasan yang sama di atas. Apakah kita punya sesuatu di bawah/proc yang akan memberikan info ini?
[root@server ~]# pmap -x 10436 | grep total
total kB 379564 21528 15340
[root@server ~]#
[root@server ~]# free -m
total used free shared buffers cached
Mem: 489 447 41 0 52 214
-/+ buffers/cache: 180 308
Swap: 1023 0 1023
[root@server ~]#