![procstat에서 출력되는 메모리 정보를 설명할 수 있는 사람이 있나요?](https://linux55.com/image/147036/procstat%EC%97%90%EC%84%9C%20%EC%B6%9C%EB%A0%A5%EB%90%98%EB%8A%94%20%EB%A9%94%EB%AA%A8%EB%A6%AC%20%EC%A0%95%EB%B3%B4%EB%A5%BC%20%EC%84%A4%EB%AA%85%ED%95%A0%20%EC%88%98%20%EC%9E%88%EB%8A%94%20%EC%82%AC%EB%9E%8C%EC%9D%B4%20%EC%9E%88%EB%82%98%EC%9A%94%3F.png)
이 명령을 사용하면 procstat -r $(pidof myprocess)
다음과 같은 결과가 출력됩니다.
PID COMM RESOURCE VALUE
84867 myprocess user time 00:00:12.637834
84867 myprocess system time 00:00:06.671334
84867 myprocess maximum RSS 11400 KB
84867 myprocess integral shared memory 1931920 KB
84867 myprocess integral unshared data 28272 KB
84867 myprocess integral unshared stack 301568 KB
84867 myprocess page reclaims 653
84867 myprocess page faults 0
...
금액이 너무 커서 좀 걱정되네요
84867 myprocess integral shared memory 1 931 920 KB
84867 myprocess integral unshared data 28 272 KB
84867 myprocess integral unshared stack 301 568 KB
이 세 가지 용어는 무엇을 의미합니까?
htop
메모리(VIRT 등)에 대해 괜찮은 값을 알려주세요.
메모리 누수에 대해 걱정해야 합니까?
답변1
이것은 잘 문서화되어 있지 않으며 나를 혼란스럽게 합니다.
integral shared memory
및 integral unshared data
상태는 integral unshared stack
현재 사용량의 스냅샷이 아닌 실행 중인 카운터입니다. 무한정 증가하는 것은 정상입니다. 이는 메모리 누수를 나타내지 않습니다.
바라보다http://www.khmere.com/freebsd_book/html/ch07.html각 필드의 데이터에 대한 정확한 설명입니다.
답변2
여기에는 integral shared memory
프로그램이 링크하는 각 공유 라이브러리의 합계와 세그먼트가 포함됩니다 code
. rodata
2GB에 가까운 숫자는 크지만 브라우저와 같은 대규모 애플리케이션이라면 놀라운 일이 아닙니다. 비공유 세그먼트는 공유 라이브러리의 읽기/쓰기 데이터 페이지 등을 포함하여 프로그램에 의해 할당된 데이터입니다. 그 숫자가 놀라울 정도로 증가하지 않는다면(또는 더 나쁜 경우에는 제한이 없다면) 아마도 괜찮을 것입니다.