다음은 내 서버 의 메모리 사용량 mysql
과 apache
각각 의 메모리 사용량입니다 . 의 출력에 따라 pmap
말, mysql
379M에 대해 사용하고 apache
277M을 사용하고 있습니다.
[root@server ~]# pmap 10436 | grep total
total 379564K
[root@server ~]# pmap 10515 | grep total
total 277588K
이것을 출력과 비교하면 top
값이 거의 일치 함을 알 수 있습니다.
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=....
이제이 값은 분명히 두 프로세스의 현재 메모리 사용량이 아닙니다. ram
내 시스템 에서 512M 을 초과하면 이 두 프로세스에 할당 된 페이지의 크기이며 실제로는 그렇지 않습니다. 그들에 의해 적극적으로 사용되는 메모리의 크기 이제 우리가를 사용할 때 프로세스의 메모리 사용량이 훨씬 적은 pmap -x
여분의 열이 보입니다 Dirty
. 아래의 예에서 볼 수 있듯이 Dirty
첫 번째 coloumn의 379M과 반대로 coloumn은 15M을 보여줍니다. 내 질문은 : coloumn 아래의 값 Dirty
이 해당 프로세스에서 적극적으로 사용하는 '실제'메모리 양입니까? 그렇지 않은 경우 프로세스의 실제 메모리 사용량을 어떻게 알 수 있습니까? 하지 ps
와 top
위와 같은 이유. 우리는 아래에 뭔가가 있습니까/proc
이 정보를 제공합니까?
[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 ~]#