본문 바로가기
LINUX

smem 에서 나오는 uss, pss, rss 의미

by Rainbound-IT 2022. 12. 29.
반응형

 

 

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=fptldl&logNo=150141444880
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=fptldl&logNo=150141444880

 

  • Vss = virtual set size
  • Rss = resident set size
  • Pss = proportional set size
  • Uss = unique set size

 

VSS(ps에서 VSZ로 보고됨)는 프로세스의 액세스 가능한 전체 주소 공간입니다. 이 크기에는 할당되었지만 기록되지 않은 malloc과 같이 RAM에 상주하지 않을 수 있는 메모리도 포함됩니다. VSS는 프로세스의 실제 메모리 사용량을 결정하는 데 거의 사용되지 않습니다.

RSS는 프로세스를 위해 실제로 RAM에 보관된 총 메모리입니다. RSS는 공유 라이브러리를 사용하는 프로세스 수에 관계없이 메모리에 한 번만 로드되는 경우에도 프로세스가 사용하는 모든 공유 라이브러리의 총 수를 보고하기 때문에 오해의 소지가 있습니다. RSS는 단일 프로세스의 메모리 사용량을 정확하게 나타내지 않습니다.

PSS는 공유 라이브러리의 비례 크기를 보고한다는 점에서 RSS와 다릅니다. 즉, 세 프로세스가 모두 30페이지가 있는 공유 라이브러리를 사용하는 경우 해당 라이브러리는 세 프로세스 각각에 대해 보고되는 PSS에 10페이지만 제공합니다. PSS는 시스템의 모든 프로세스에 대한 PSS를 합하면 시스템의 총 메모리 사용량을 잘 나타내기 때문에 매우 유용한 숫자입니다. 프로세스가 종료되면 해당 PSS에 기여한 공유 라이브러리는 여전히 해당 라이브러리를 사용하는 나머지 프로세스의 PSS 총계에 비례하여 분배됩니다. 이런 식으로 PSS는 약간 오해의 소지가 있습니다. 왜냐하면 프로세스가 종료될 때 PSS는 전체 시스템에 반환된 메모리를 정확하게 나타내지 않기 때문입니다.

USS는 프로세스의 총 개인 메모리, 즉 해당 프로세스에 완전히 고유한 메모리입니다. USS는 특정 프로세스를 실행하는 실제 증분 비용을 나타내기 때문에 매우 유용한 숫자입니다. 프로세스가 종료되면 USS는 실제로 시스템에 반환되는 총 메모리입니다. USS는 처음에 프로세스에서 메모리 누수가 의심될 때 관찰할 수 있는 가장 좋은 숫자입니다.

 

 


RSS, USS 및 PSS

RSS(Resident Set Size)는 스왑 공간을 제외하고 프로세스가 사용 중인 공유 라이브러리에 필요한 RAM을 포함하여 프로세스에 할당된 RAM의 양입니다.

 

RSS는 거의 항상 RAM 사용량을 과도하게 보고합니다. 둘 이상의 프로세스가 하나 이상의 공유 라이브러리를 사용하는 경우 RSS는 각 프로세스의 RAM 사용량에 각 라이브러리의 RAM 사용량을 추가합니다. 부정확성뿐만 아니라 여기에는 어떤 아이러니가 있습니다. 공유 라이브러리는 각 프로세스가 라이브러리의 자체 개인 인스턴스를 로드할 필요가 없음을 의미합니다. 라이브러리가 이미 메모리에 있는 경우 해당 라이브러리를 공유하고 RAM 오버헤드를 줄입니다.

 

비례 세트 크기는 이를 공유하는 프로세스 간에 공유 메모리 양을 나누어 이 문제를 해결하려고 합니다. 일부 메모리를 공유하는 4개의 프로세스가 있는 경우 PSS는 각 프로세스에서 공유 RAM의 25%를 사용한다고 보고합니다. 이것은 근사치이지만 RSS가 그리는 그림보다 진행 중인 상황과 더 유사합니다.

 

고유한 세트 크기는 프로세스에서 직접 사용하든 프로세스에서만 사용하는 라이브러리에서 사용하든 관계없이 프로세스에서 독점적으로 사용하는 RAM의 양입니다. 다시 말하지만 스왑 공간을 무시합니다. 진정한 물리적 RAM에만 관심이 있습니다.

USS와 PSS는  의 저자인 Matt Mackall이 제안한 smem 용어이자 개념입니다 .

 


  • 스왑  – 해당 프로세스에서 사용하는 스왑 공간입니다.
  • USS  – 해당 프로세스에 고유한 비공유 메모리의 양 – 고유한 메모리로 생각하십시오. 공유 메모리를 포함하지 않으므로 프로세스가 사용하는 메모리 양을 적게 보고하지만 이 열은 공유 메모리를 무시하려는 경우에 유용합니다. 이 열은 이 프로세스가 종료된 경우 즉시 비워지는 RAM의 양을 나타냅니다.
  • PSS  – 가장 가치 있는 칼럼입니다. 고유 메모리(USS)와 총 공유 메모리를 해당 메모리를 공유하는 다른 프로세스의 수로 나눈 공유 메모리 비율을 합산합니다. 따라서 공유 메모리가 진정으로 공유된 것으로 표시되어 프로세스당 실제 물리적 메모리가 얼마나 사용되고 있는지 정확한 표현을 제공합니다. 물리적 메모리라고 생각하십시오.
  • RSS  – 상주 세트 크기. 각 프로세스에서 사용하는 공유 메모리와 비공유 메모리의 양입니다. 프로세스가 메모리를 공유하는 경우 동일한 공유 메모리가 두 번 이상 계산되어 동일한 메모리를 공유하는 서로 다른 프로세스에 다시 나타나기 때문에 실제로 사용된 메모리 양이 초과 보고됩니다. 따라서 특히 메모리가 많은 프로세스에 포크가 많은 경우 신뢰할 수 없는 수치입니다.

 

 

 

smem 사용법

 

https://www.howtogeek.com/773161/easily-understand-your-linux-ram-usage-with-smem/

 

Easily Understand Your Linux RAM Usage With Smem

Linux memory usage can be difficult to interpret and hard to understand. With smem it’s easy to find out what memory a process is using, and which processes are using the most.

www.howtogeek.com

 

 

 

https://elinux.org/Android_Memory_Usage

 

Android Memory Usage - eLinux.org

The memory of an Android system is managed by several different allocators, in several different pools. System Memory You can examine the system's view of the memory on the machine, by examining /proc/meminfo. If you use 'ddms', you can see a summary of th

elinux.org

 

 

https://stackoverflow.com/questions/22372960/is-this-explanation-about-vss-rss-pss-uss-accurate

 

Is this explanation about VSS/RSS/PSS/USS accurate?

I read an explanation about VSS/RSS/PSS/USS: The aim of this post is to provide information that will assist in interpreting memory reports from various tools so the true memory usage for Linux

stackoverflow.com

 

반응형

'LINUX' 카테고리의 다른 글

vmstat 사용법  (0) 2023.02.02
[Linux] Buddy system  (0) 2023.02.01
[ubuntu] docker permission 에러  (0) 2022.11.16
[UBUNTU]nginx 설치(tar, 소스코드, make) 및 실행  (0) 2022.11.09
jq 관련 했던거  (0) 2022.10.14

댓글