pmap -x
예를 들어 익명 및 스택 매핑을 합산하여 비공유 메모리 사용량을 계산할 수 있었습니다.
sudo pmap -x $THE_PID |egrep 'anon|stack' | awk '{print $2}' | paste -sd+ | bc
하지만 비슷한 정보를 얻을 수 있는 방법을 ps
전혀 찾을 수 없습니다. 열 top
을 표시 SHR
하지만 공유되지 않은 메모리를 기준으로 정렬하는 방법을 제공하지 않는 것 같습니다. RSS에는 공유 페이지가 포함되어 있지만 프로세스에서 접촉한 공유 페이지는 AFAICS에만 있으므로 RSS로 정렬하는 것은 유용하지 않습니다.
따라서 동일한 16GB 공유 주소 공간을 사용하는 두 개의 프로세스가 있는 경우 공유 메모리를 더 많이 사용하는 프로세스를 기준으로 정렬됩니다. 둘 다 동일한 양의 shmem을 건드리거나 그에 가깝지 않는 한 더 많은 개인용(비공유) 메모리를 할당한 것은 아닙니다.
공유 라이브러리의 읽기/쓰기 매핑과 조상의 쓰기 시 복사 페이지를 공유하는 fork
편집은 되었지만 편집은 안 되는 프로세스에서 유사한 문제가 발생합니다.exec
이건... 도움이 안 돼요.
top
표현식별로 출력을 정렬하는 방법을 살펴보았습니다 . 그러나 그것이 정렬 구문에서 지원한다면 나는 그것을 알아낼 수 없습니다.
이것은 너무나 당연해 보이지만 ps는 공유 정보조차 전혀 노출하지 않습니다!
내가 뭔가를 놓치고 있다고 말해주세요.