사용자 도구

사이트 도구


os:system:usage:mem:proc_meminfo

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

다음 판
이전 판
os:system:usage:mem:proc_meminfo [2010/01/09 10:21]
starlits 새로 만듦
os:system:usage:mem:proc_meminfo [2010/01/09 10:27] (현재)
starlits
줄 17: 줄 17:
 ===== Detailed Level Statistics - VM Statistics ===== ===== Detailed Level Statistics - VM Statistics =====
  
 +  - 가상 메모리는 캐시 페이지를 active와 inactive 메모리로 나눈다. \\ 이 개념은 만역 여러분이 메모리가 필요하고 그것을 위해서 대체할 어떤 캐시가 필요하다면 여러분은 inactive를 사용하게 될것이다. \\ inative는 사용하지 않는 것으로 예상되기 때문이다. \\ 가상 메모리는 기본적으로 사용된 것과 변화가 생긴것을 체크한다.
 +  - 메모리를 사용할 때 CPU는 페이지테이블에 비트를 설정한다. \\ 그리고 가상 메모리는 수시로 비트를 체크하여 이동된 페이지를 active로 바꾼다. \\ active된 페이지들 중 가장 오래 사용되지 않은 순서로 사용한다. \\ (대략적으로 - 이것은 현실적으로 조금 더 복잡하다). \\ 가장 오래전에 사용된 것은 inactive로 이동될 수 있다. \\ inactive는 커널(2.4.18 - 24.8.0)위에서 두가지로 나누어 진다. 
 +
 +^ Active | 가장 최근에 사용되었던 메모리로 완전히 불필요하지 않은 경우를 제외하고서는 빈공간으로 반환되지 않음 | 
 +^ Inact_dirty | 여기서 dirty의 의미는 "디스크나 스왑 공간으로 기록될 필요가 있음"을 의미하며, 빈 공간으로 반환되기 위해서는 몇가지 작업이 필요하다. \\ 아직 기록되지 않은 파일이 예가 될 것이다. \\ 너무 일찍 메모리에 기록하여 I/O의 성능을 떨어뜨릴 필요가 없기 때문이다. \\ 예를 들어 log를 기록한다고 할 때 완벽한 로그가 구성될 때까지 디스크에 기록하지 않는 것이 성능에 도움이 된다. | 
 +^ Inact_clean | 쉽게 빈 공간으로 반환될 수 있음을 의미한다. \\ 커널은 항상 일정한 양의 빈 공간을 확보하고 있는데, 이는 움직일 수 있는 여유를 가지기 위함이다. |
 +^ Inact_target | 커널에서 inactive페이지가 충분히 보장되도록 하기 위한 목적으로 사용된다. \\ 이것이 초과되었을때 커널은 페이지를 active에서 inactive로 이동시키기 위한 작업을 더이상 하지 않을 것이다. |  
 +
 +===== Memory Statistics =====
 +
 +^ HighTotal | 상위 영역(high region)에 존재하는 메모리의 전체 양으로, Highmem은 physical RAM에서 대략 860MB 위의 메모리를 의미한다. \\ 커널은 상위 영역의 메모리 메모리에 접근하기 위해 간접적인 트릭(indirect tricks)을 사용한다. \\ 데이터 캐시가 이 메모리 영역에 포함될 수 있다. | 
 +^ LowTotal | 비상위메모리(non-highmem) 영역에 대한 총량  |
 +^ LowFree | 하위메모리 영역(low memory region)의 빈 공간. \\ 커널이 직접적으로 접근할 수 있는 메모리 영역으로, 모든 커널 데이터구조(datastructures)가 이 메모리 영역에 저장된다. | 
 +^ SwapTotal | 물리적인 스왑 메모리(physical swap memory)의 총량 |
 +^ SwapFree | 스왑 공간의 빈 영역의 총량 |
 +^ Committed_AS | 99.99%의 보장(이러한 부하에서는 OOM[Out of Memory]를 결코 발생시키지 않음)을 위해 필요로 하는 RAM의 추측값. \\ 일반적인 상황에서는 커널이 메모리를 지나치게 낭비하는 경우이다. \\ 즉, 1GB malloc를 사용한다고 할 때 실제적으로는 아무런 일도 발생하지 않는다. \\ 단지 메모리를 실제로 사용하기 시작할 때 malloc에 의해 필요로 하는 메모리가 요구된다. \\ 즉 저당을 잡히고 은행이 망하지 않기만을 바라는 상황이 된다. \\ 또 다른 경우에는 mmap 파일을 이용해서 두 프로세스 간에 공유할 경우가 포함된다. \\ Committed_AS는 최악의 상황에서 필요로 하는 RAM/swap의 추측값이다. |  
os/system/usage/mem/proc_meminfo.1263000068.txt.gz · 마지막으로 수정됨: 2010/01/09 10:21 저자 starlits