procstat에서 출력되는 메모리 정보를 설명할 수 있는 사람이 있나요?

procstat에서 출력되는 메모리 정보를 설명할 수 있는 사람이 있나요?

이 명령을 사용하면 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 memoryintegral unshared data상태는 integral unshared stack현재 사용량의 스냅샷이 아닌 실행 중인 카운터입니다. 무한정 증가하는 것은 정상입니다. 이는 메모리 누수를 나타내지 않습니다.

바라보다http://www.khmere.com/freebsd_book/html/ch07.html각 필드의 데이터에 대한 정확한 설명입니다.

답변2

여기에는 integral shared memory프로그램이 링크하는 각 공유 라이브러리의 합계와 세그먼트가 포함됩니다 code. rodata2GB에 가까운 숫자는 크지만 브라우저와 같은 대규모 애플리케이션이라면 놀라운 일이 아닙니다. 비공유 세그먼트는 공유 라이브러리의 읽기/쓰기 데이터 페이지 등을 포함하여 프로그램에 의해 할당된 데이터입니다. 그 숫자가 놀라울 정도로 증가하지 않는다면(또는 더 나쁜 경우에는 제한이 없다면) 아마도 괜찮을 것입니다.

관련 정보