항목 /proc/<pid>/smaps
의 형태로 각 프로세스 의 파일 에서 이러한 종류의 정보를 얻을 수 있습니다 Pss
( "비례 공유 크기"의 약자).
두 프로세스 사이에 200MB "공유"가있는 위의 예에서 각 프로세스는 해당 매핑의 PSS 항목에 100MB를 표시합니다. 즉, 메모리는 프로세스를 공유하는 프로세스간에 균등하게 분배됩니다 (어느 프로세스에서나 복사 및 공유 해제 될 때까지).
다음은 게시 한 것과 같은 것을 실행 한 추출물입니다.
$ top
...
30986 me 20 0 790m 769m 2200 S 0 4.8 0:00.48 python3.2
30987 me 20 0 790m 767m 224 S 0 4.8 0:00.00 python3.2
$ cat /proc/30986/smaps
...
0119a000-015b7000 rw-p 00000000 00:00 0 [heap]
Size: 4212 kB
Rss: 3924 kB
Pss: 1992 kB
...
7fa06b020000-7fa09ab11000 rw-p 00000000 00:00 0
Size: 781252 kB
Rss: 781252 kB
Pss: 390626 kB
...
7fff8e45a000-7fff8e489000 rw-p 00000000 00:00 0 [stack]
Size: 192 kB
Rss: 160 kB
Pss: 82 kB
...
(거기에있어 많은 물건은 잠재적으로 많은 프로세스간에 공유되는 공유 라이브러리에 대한 매핑을 포함하여, 그 파일에 따라서 각 프로세스는 단지 작은 부분들에 대한 PSS 항목에 차지 가져옵니다.)
ELC : 응용 프로그램에서 실제로 사용하는 메모리 양은 얼마입니까?
나는이 정보를 표시하는 일반적인 최상위 도구를 모르며 ps
불행히도 그것을 보여주는 옵션 이 없다고 생각 합니다. 이 기사 pagemap
는 Matt Mackall 이라는 파이썬 스크립트가있는 저장소를 가리키며 사용하거나 조정할 수 있습니다.
뻔뻔한 플러그 : 유닉스 및 리눅스에서 PSS에 대한 게시물 과 smaps
관심이 있다면 파일을 찾을 수 있습니다.