리눅스2024. 9. 4. 20:54

smem을 이용해서 리눅스에서 어떤 프로세스가 메모리를 얼마나 사용하고 있는지, 스왑은 얼마나 사용하고 있는지 파악할 수 있다. 데비안/우분투 계열 배포판 기준으로 아래와 같이 설치부터 해 주자.

# S/W 저장소 정보 갱신
sudo apt-get update

# smem 설치
sudo apt-get install smem

터미널창에서 실행하면 프로세스 목록을 볼 수 있다.

smem | more

각 항목을 보자면 이렇다.

PID: 프로세스 ID
User: 사용자
Command: 실행 명령(프로그램 이름)
Swap: 스왑 사용량
RSS, PSS, USS: 메모리 사용량

메모리(ram) 사용량을 표시하는 항목이 3가지나 있는데, 대략 아래와 같다.

RSS(resident set size): 특정 프로세스에 할당된 메모리다. 공용으로 사용되는 라이브러리가 점유한 것도 포함된다. 스왑은 제외.

PSS(proportional set size): 공용으로 사용되는 라이브러리가 점유한 메모리를 사용 프로세스 개수로 나눈 비율을 반영한 할당 메모리다. 예를 들어 어떤 라이브러리가 점유한 메모리를 2개의 프로세스가 사용중이라면 각 프로세스에 50%씩 사용량을 반영하여 계산된다. 당연히 RSS값 이하가 된다. 스왑은 제외.

USS(unique set size): 특정 프로세스가 전용으로 사용중인 메모리다. 스왑은 제외.

smem에 -s 옵션을 사용하면 특정 항목을 기준으로 정렬(sort)할 수 있다. 예를 들어 스왑 사용량을 기준으로 정렬하려면 아래와 같이 하면 되겠다.

smem -s swap

RSS 기준으로 정렬하려면 아래와 같이 하면 된다.

smem -s rss

어떤 프로세스가 얼마나 메모리와 스왑을 사용중인지 일목요연하게 파악할 수 있어서 편리하다.

 

 

728x90
Posted by 반달가면