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 |
정리 잘되어 있음
참조 사이트 : http://man7.org/linux/man-pages/man5/proc.5.html
728x90
반응형
'프로그래밍 > 리눅스 프로그래밍' 카테고리의 다른 글
[bash] 가장 혼란 스러운 문법정리 (0) | 2018.03.08 |
---|---|
메모리 맵 관련 함수 (0) | 2017.05.04 |
Linux 분할 컴파일시 유의 사항. (2) | 2017.01.11 |
Bash Script 유용한 Tip (0) | 2016.12.27 |
ssh 원격 명령 실행 (0) | 2016.12.27 |