리눅스 시스템에서 메모리 사용량 확인 방법.
시스템 전체 메모리 확인.
간단히 확인하려면 free 명령어를 이용.
[root@localhost]# free -m // 용량을 MB로 출력
total used free shared buffers cached
Mem: 15942 10221 5721 0 534 7769
-/+ buffers/cache: 1917 14025
Swap: 2047 32 2014
/*
전체 메모리 16G(15942)
사용중인 메모리 10G(10221)
사용가능 메모리 5.7G (5721)
버퍼/캐시를 제외하고 실제 사용할 수 있는 메모리양 14G (14025)
*/
자세히 확인하려면 /proc/meminfo 내용을 보면 됨.
[root@localhost]# cat /proc/meminfo
MemTotal: 16325540 kB // 전체 메모리 크기
MemFree: 5912216 kB // 사용되지 않고 있는 메모리 크기
Buffers: 538596 kB // buffer_heads에 사용되는 메모리 크기 (ext* 파일시스템이라면 Buffers는 메모리에 저장되어 있는 메타데이터의 크기)
Cached: 7945564 kB // 파일 데이터 캐시에 사용되는 메모리 크기
SwapCached: 3512 kB // 실제 메모리 상에 존재하는 swap 크기
Active: 4595420 kB // active 메모리 크기
Inactive: 4537624 kB // inactive 메모리 크기 (메모리 반환시 우선적으로 반환될 대상)
Active(anon): 471856 kB // active 메모리 중 anonymous pages 크기
Inactive(anon): 183712 kB // inactive 메모리 중 anonymous pages 크기
Active(file): 4123564 kB // active 메모리 중 mmaped 할당된 크기
Inactive(file): 4353912 kB // inactive 메모리 중 mmaped 할당된 크기
Unevictable: 0 kB // swap out 할 수 없게 고정된 크기. 커널에서 고정시킨 page와 유저공간에서 Mlocked 된 page의 합
Mlocked: 0 kB // 유저공간에서 Mlocked로 고정된 page 크기
SwapTotal: 2096476 kB // 전체 swap 크기
SwapFree: 2063212 kB // swap 공간 중 사용가능한 공간 크기
Dirty: 316 kB // 페이지캐시 데이터 중 디스크에 쓰여지기 위해 대기 중인 크기
Writeback: 0 kB // 페이지캐시 데이터 중 현재 디스크에 쓰여지고 있지만 완전히 쓰여지지 않은 크기
AnonPages: 645448 kB // anonymous page의 전체 크기
Mapped: 87704 kB // mmaped로 할당된 페이지 크기. ex) 라이브러리 파일
Shmem: 6684 kB // shared memory 크기
Slab: 1071668 kB // 커널에 의해 할당된 크기
SReclaimable: 1018168 kB // 커널에 의해 할당된 것 중 반환가능 한 크기
SUnreclaim: 53500 kB // 커널에 의해 할당된 것 중 반환불가능한 크기
KernelStack: 3160 kB // 커널 stack에 할당된 크기
PageTables: 21876 kB // 시스템의 모든 페이지를 기록하기 위한 메모리 크기
NFS_Unstable: 0 kB // NFS 페이지 중 서버에 전송되었으나 storage에 커밋되지 않은 크기
Bounce: 0 kB // 블록 디바이스의 Bounce buffer 크기
WritebackTmp: 0 kB // FUSE에서 사용되는 writeback 크기
CommitLimit: 10259244 kB // 현재 시스템에 할당할 수 있는 메모리 사이즈
Committed_AS: 2779732 kB // 현재 시스템에 할당되어 있는 메모리 사이즈
VmallocTotal: 34359738367 kB // vmalloc으로 할당할 수 있는 전체 사이즈
VmallocUsed: 303652 kB // vmalloc으로 할당된 사이즈
VmallocChunk: 34359376640 kB // vmalloc으로 할당할 수 있는 가장 큰 연속된 블록의 크기
HardwareCorrupted: 0 kB // ???
AnonHugePages: 454656 kB // 유저 공간 페이지 테이블에 anonymous huge page로 할당된 크기
HugePages_Total: 0 // hugepages 관련 정보들
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
DirectMap4k: 7680 kB // direct mapping 사이즈
DirectMap2M: 16760832 kB
프로세스가 사용하는 메모리 확인.
간단히 보려면 ps 명령어 이용.
[root@localhost]# ps -eo pid,rsz,vsz,cmd | grep httpd | grep -v grep
15267 13400 548048 /home/apache/bin/httpd -k start
23524 12808 551840 /home/apache/bin/httpd -k start
23528 13412 552364 /home/apache/bin/httpd -k start
23529 12920 552124 /home/apache/bin/httpd -k start
/*
pid,rsz,vsz,cmd = PID, 물리 메모리 사용량, 가상 메모리 사용량, 실행명령어
* rsz,vsz의 각 사이즈는 kb 단위
ex) 15267 프로세스의 물리 메모리 사용량은 13M(13400 / 1024), 가상 메모리 사용량은 535M(548048 / 1024)
*/
자세히 보려면 /proc/<pid>/status 내용을 확인.
[root@localhost]# cat /proc/15267/status
Name: httpd
State: S (sleeping)
Tgid: 15267
Pid: 15267
PPid: 1540
TracerPid: 0
Uid: 99 99 99 99
Gid: 99 99 99 99
Utrace: 0
FDSize: 64
Groups: 99
VmPeak: 555952 kB // 최대할당 가상 메모리 사이즈
VmSize: 552112 kB // 가상 메모리 사이즈
VmLck: 0 kB // swap out 할 수 없게 고정된 메모리 사이즈
VmHWM: 16480 kB // 최대할당 물리 메모리 사이즈
VmRSS: 13300 kB // 물리 메모리 사이즈
VmData: 83436 kB // heap 영역 사이즈
VmStk: 88 kB // stack 영역 사이즈
VmExe: 416 kB // 실행코드 영역 사이즈
VmLib: 30708 kB // shared library 영역 사이즈
VmPTE: 488 kB // page table 사이즈
VmSwap: 232 kB // swap 사이즈
Threads: 1
SigQ: 0/127392
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: 0000000000000000
SigIgn: 0000000000001000
SigCgt: 000000018c0046eb
CapInh: 0000000000000000
CapPrm: 0000000000000000
CapEff: 0000000000000000
CapBnd: ffffffffffffffff
Cpus_allowed: ff
Cpus_allowed_list: 0-7
Mems_allowed: 00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000001
Mems_allowed_list: 0
voluntary_ctxt_switches: 2079
nonvoluntary_ctxt_switches: 49
'Linux' 카테고리의 다른 글
[Linux] netcat - 네트워크 모니터링, 테스트, 데이터 전송 툴 (0) | 2015.01.14 |
---|---|
vmtouch - 파일 시스템 캐시 진단/관리 (file system cache disgnostics and control, lock memory mapping files) (0) | 2014.12.16 |
라즈베리파이 외장하드 마운트 할 때 읽기전용으로만 될 때 (RaspberryPi external hdd mount read-only) (0) | 2014.09.21 |
[Linux] Disk I/O 병목체크 (0) | 2014.03.14 |
[Linux] 라즈베리파이에 마인크래프트 서버 설치하기 (Raspberry Pi, Minecraft server) (4) | 2013.10.13 |