# cat /proc/meminfo
MemTotal: 1811384 kB -MemTotal : 전체 사용가능한 RAM (실제 물리적 메모리에서 커널 코드와 예약공간 제외)
MemFree: 20916 kB -MemFree : LowFree + HighFree
Buffers: 165244 kB -Buffers :
buffer cache 메모리 크기 (2.6부터는 의미가 없어짐)
Buffer cache는 원래 directory name 과 inode 정보등의 meta data를 cache하기
위한 것이며 I/O 단위는 block size와 같다.Cached: 1086784 kB
-Cached : Pagecache (disk cache) 메모리 크기에서 SwapCached가 빠진 크기.
Pagecache는 file 의 내용을 cache하기 위한 것으로 I/O단위는 page size와 같다.
SWAP공간으로의 page-in/out 또한 Pagecache를 통해 이루어지며
Software MMU라고도 불리운다.
커널 2.6에서 Buffer cache가 Pagecache로 통합이 되었다.
SwapCached: 4 kB -SwapCached: 스왑-out되었다가 다시 스왑-in되었으나, 효율적인 I/O를 위하여
아직 swap공간에 남아 있는 페이지를 지칭함.
si = Disk-->Memory로 들어오는크기 so = Memory에서 Disk로(Swap) 된 크기
Active: 1039112 kB -Active : 최근에 사용된 메모리량. 일반적으로 절대적으로 필요하지 않으면 reclaim되지
않는다.
Inactive: 641064 kB
HighTotal: 1065744 kB -HighTotal : HighMem 영역의 총 메모리량.
HighFree: 9048 kB HighMem영역은 물리적으로 860MB 이상의 가지고 있는 모든 메모리를 지칭한다.
이 HighMem영역은 간접참조를 통하여 메모리의 접근이 이루어지며 Data Cache 등이
이 영역을 사용한다.
LowTotal: 745640 kB -LowTotal : HighMem 영역을 제외한 나머지 메모리 부분
LowFree: 11868 kB -LowFree : LowMem영역의 Free 부분. 이 영역을 커널에서 직접 참조를 통하여 접근이 이
루어지며 커널에서 사용하는 여러가지 자료 구조들이 바로 이 영역을 사용한다.
SwapTotal: 2096472 kB
SwapFree: 2096364 kB
Dirty: 1872 kB
Writeback: 0 kB
AnonPages: 428060 kB
Mapped: 46692 kB
Slab: 68244 kB
PageTables: 7476 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
CommitLimit: 3002164 kB
Committed_AS: 907536 kB -Commited_AS: 직역하면 할당해준(malloc등의 요청에 따라) 주소공간이 된다.
현재의 워크로드(Workload)상에서 어느정도의 RAM 또는 SWAP 이 더 필요
할지를 예측하여 Out of memory가 발생하지 않을 만한 메모리 량이다.
SwapFree량 보다 이 값이 클경우 SWAP공간을 늘리는 것이 권장되나,
Commited_AS의 값은 최악의 경우를 염두에 둔 값이다(99.9%의 확률)
VmallocTotal: 114680 kB
VmallocUsed: 4192 kB
VmallocChunk: 110092 kB
-Inact_dirty: Dirty라고 하면 "그 내용이 메모리상에서 변경되어 disk파일나 swap으로
쓰일(flush write) 필요가 있는 경우"라고 이해하면 된다다.
버퍼상에서 변경이 되었으나 I/O상의 효율을 위하여 바로 버퍼가 flush되
지 않기 때문. Inact_dirty로 지칭된 영역을 reclaim하기 위해서는 먼저
disk flush가 선행되어야 한다.
-Inact_clean: 이 영역은 바로 커널에서 reclaim할 수 있다. 커널은 항상 어느정도 이
러한 공간을 항상 유지하려 한다.
-Inact_target: 이지표를 통하여 커널은 가용할 수 있는 inactive page를 확보하려고
한다. 이 지표를 초과하면 커널은 더이상의 page-out/swap-out 하려 하
지 않게 된다.
출처 : http://oops.org/
또한 아래 자료를 참고 할 것.
Linux Memory Management or 'Why is there no free RAM?'
`what`
리눅스 메모리 이해