# 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`
리눅스 메모리 이해