프로그래밍/리눅스 프로그래밍

리눅스 프로세스별 메모리 사용량 확인법

jinkwon.kim 2017. 1. 24. 00:50
728x90
반응형

리눅스 프로세스별 메모리 사용량 확인법

간단 

root@localhost] # ps -o pid,pcpu,pmem,rss,vsz,cmd -p `pidof nginx`
  PID %CPU %MEM   RSS       VSZ   CMD
1370       0.0        0.0  2304  141128   nginx: master process /usr/sbin/nginx -g daemon on; master_process on;

pid %CPU %MEM rss (kb) vsz (kb) cmd
process id 시스템 전체 cpu사용량 시스템 전체 메모리 사용량 물리 메모리 가상 메모리 실행 명령어

 

프로세스 상세

리눅스 환경에서 프로세스별 메모리 사용량을 간단하게  확인할 수 있는 명령어입니다.

 

ps -eo user,pid,ppid,rss,size,vsize,pmem,pcpu,time,cmd –sort -rss

 

저렇게하면 rss (물리메모리사용량) 기준으로 정렬한 프로세스 리스트가 나옵니다.

 

좀 더 상세한 내역을 확인하려면 해당 PID 숫자를 확인한 후

 

cat /proc/PID값/status

항목  설명 
 Name  프로세스가 실행된 명령어 이름 
 state   프로세스의 현재 상태 
 Tgid  쓰레드 그룹 ID 또는 PID
 Pid  프로세스 ID
 PPid   부모 프로세스 ID
 TracerPid  프로세스 추적을 위한 Pid 
 FDsize   현재 할당된 파일 descriptor 슬록 갯수

 

 

 메모리 관련 항목 단위 설명 
 VmPeak KB  최대할당 가상 메모리 크기 
 VmSize KB  가상 메모리의 크기 
 VmLck KB  lock 된 메모리크기(swap 될수 없는 메모리)
 VmHWM KB  swap 되지 않고 설정된 가장 큰 물리 메모리 사이즈
 VmRSS KB  물리 메모리 사이즈
 VmData KB  Heap 영역 사이즈
 VmStk KB  stack 영어 사이즈
 VmExe KB  실행코으 영역 사이즈
 VmLib KB  공유라이브러리 영역 사이즈
 VmPTE KB  Page table 사이즈
 VmSwap KB  swap된 가상 메모리 
 shared memory 사용량은 포함되어있지 않음
 Threads KB  프로세스에 포함된 쓰레드  갯수

 

시스템 메모리 상세

항목 단위 내용
MemTotal        KB 전체 메모리 크기
MemFree         KB 사용되지 않고 있는 메모리 크기
Buffers         KB buffer_heads에 사용되는 메모리 크기 (ext* 파일시스템이라면 Buffers는 메모리에 저장되어 있는 메타데이터의 크기)
Cached          KB 파일 데이터 캐시에 사용되는 메모리 크기
SwapCached      KB 실제 메모리 상에 존재하는 swap 크기
Active          KB active 메모리 크기
Inactive        KB  inactive 메모리 크기 (메모리 반환시 우선적으로 반환될 대상)
Active(anon)    KB active 메모리 중 anonymous pages 크기
Inactive(anon)  KB inactive 메모리 중 anonymous pages 크기
Active(file)  KB active 메모리 중 mmaped 할당된 크기
Inactive(file)  KB  inactive 메모리 중 mmaped 할당된 크기
Unevictable    KB swap out 할 수 없게 고정된 크기. 커널에서 고정시킨 page와 유저공간에서 Mlocked 된 page의 합
Mlocked    KB 유저공간에서 Mlocked로 고정된 page 크기
SwapTotal    KB  전체 swap 크기
SwapFree      KB swap 공간 중 사용가능한 공간 크기
Dirty KB  페이지캐시 데이터 중 디스크에 쓰여지기 위해 대기 중인 크기
Writeback   KB  페이지캐시 데이터 중 현재 디스크에 쓰여지고 있지만 완전히 쓰여지지 않은 크기
AnonPages       KB anonymous page의 전체 크기
Mapped     KB mmaped로 할당된 페이지 크기. ex) 라이브러리 파일
Shmem   KB shared memory 크기
Slab   KB 커널에 의해 할당된 크기
SReclaimable    KB  커널에 의해 할당된 것 중 반환가능 한 크기
SUnreclaim      KB 커널에 의해 할당된 것 중 반환불가능한 크기
KernelStack     KB 커널 stack에 할당된 크기
PageTables  KB 시스템의 모든 페이지를 기록하기 위한 메모리 크기
NFS_Unstable    KB NFS 페이지 중 서버에 전송되었으나 storage에 커밋되지 않은 크기
Bounce        KB 블록 디바이스의 Bounce buffer 크기
WritebackTmp   KB FUSE에서 사용되는 writeback 크기
CommitLimit   KB 현재 시스템에 할당할 수 있는 메모리 사이즈
Committed_AS    KB 현재 시스템에 할당되어 있는 메모리 사이즈
VmallocTotal    KB vmalloc으로 할당할 수 있는 전체 사이즈
VmallocUsed     KB vmalloc으로 할당된 사이즈
VmallocChunk    KB vmalloc으로 할당할 수 있는 가장 큰 연속된 블록의 크기
HardwareCorrupted KB  
AnonHugePages   KB  유저 공간 페이지 테이블에 anonymous huge page로 할당된 크기
HugePages_Total KB hugepages 관련 정보들
HugePages_Free  KB  
HugePages_Rsvd  KB  
HugePages_Surp  KB  
Hugepagesize    KB  
DirectMap4k     KB  
DirectMap2M     KB  

 

정리 잘되어 있음 

https://bloodguy.tistory.com/entry/Linux-%EC%8B%9C%EC%8A%A4%ED%85%9C%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4-%EB%A9%94%EB%AA%A8%EB%A6%AC-%EC%82%AC%EC%9A%A9%EB%9F%89-%ED%99%95%EC%9D%B8-check-systemprocess-memory-usage

 

 

 

참조 사이트 : http://man7.org/linux/man-pages/man5/proc.5.html

 

 

 

728x90
반응형