Aşağıdakiler, sunucumun sırasıyla mysql
ve bellek kullanımıdır apache
. Çıkışında gereğince pmap
söz hakkından, mysql
379M hakkında kullanıyorsa ve apache
277m kullanıyor.
[root@server ~]# pmap 10436 | grep total
total 379564K
[root@server ~]# pmap 10515 | grep total
total 277588K
Bunun çıktısıyla karşılaştırıldığında top
, değerlerin neredeyse eşleştiğini görüyorum.
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=....
Şimdi bu değerler kesinlikle bu iki sürecin şu anki bellek kullanımı değildir, çünkü eğer olsaydı ram
sistemimdeki 512M'yi aşmış olurdu ve bunların gerçekte değil, bu iki işleme atanan sayfaların boyutu olduğunu anlıyorum. aktif olarak kullandıkları belleğin boyutu. Şimdi, kullandığımızda pmap -x
, Dirty
süreç için çok daha az bellek kullanımını gösteren ekstra bir sütun görüyorum . Aşağıdaki örnekte görüldüğü gibi, Dirty
kolon, birinci kolonda 379M yerine 15M gösterir. Sorum şu: Sütun altındaki değer Dirty
, bu işlem tarafından aktif olarak kullanılan 'gerçek' bellek miktarı mı? Değilse, bir sürecin gerçek bellek kullanımını nasıl bulabiliriz? Yukarıda değil ps
ve top
aynı nedenlerle. Altında bir şey var mı/proc
bu bilgiyi verecek mi?
[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 ~]#