본문 바로가기

page

proc/meminfo 분석하기 와 pagecache size limitation(restrict) 하는 방법 1. meminfo 분석하기 전반적인 내용 : https://ssambback.tistory.com/entry/Linux-Memory%EC%9D%98-%EC%83%81%ED%83%9C%EB%A5%BC-%EB%B6%84%EC%84%9D%ED%95%98%EB%9D%BC Linux Memory의 상태를 분석하라 리눅스의 메모리 사용량의 경우 항상 물리적인 메모리 대비 Cache 와 Buffer의 사용량에 대해서 논쟁이도고는 한다. 물론 운영중에 갑자기 물리적인 메모리의 사용량이 늘어서 SWAP을 사용하는 경우라면 달라지겠.. ssambback.tistory.com 정보는 최고사용량과 최저사용량으로 표현되며, 먼저 최고사용량에 대해 살펴보면 다음과 같다. - MemoryTotal : 사용 가능한 최대 메모리(R.. 더보기
virtual address to physical address (64bit linux) linux 64bit 에서 page address 변환에 대해서 한눈에 보기 쉽게 그려보았습니다. 사용할때는 꼭 출처를 명시해 주기 바랍니다. pde64_table = (pde64_t *)__va(BASE_TO_PAGE_ADDR(pdpe64_table->pd_base_addr) + (PDE64_INDEX(fault_addr)*sizeof(pde64_t))); if(!pde64_table->present) { uintptr_t tmp_pte64_table; tmp_pte64_table = (uintptr_t)petmem_smart_alloc_pages(map, (uintptr_t)NULL, (pte64_t *)NULL); memset((void *)__va(tmp_pte64_table), 0, PAGE_S.. 더보기
linux 에서 page cache(페이지 캐쉬)란? disk I/O 의 효율을 위해 main memory 에 잡아놓은 cache buffer 의 명칭 아래와 같이 cache memory 의 상태를 알 수 있다. # free -m total used free shared buffers cachedMem: 6759 3121 3638 0 220 2008-/+ buffers/cache: 892 5867Swap: 4692 0 4692 원문 : http://wnstjqdl.tistory.com/46 시스템이 특별히 메모리 자원의 사용량이 없는데 캐쉬메모리가 많아 할당되어 여유메모리 할당이 적게 나올 경우 메모리를 초기화 하는 방법은 아래와 같다. To free pagecache(페이지캐쉬 초기화)echo 1 > /proc/sys/vm/drop_caches To fr.. 더보기
리눅스커널의메모리관리 원문 : https://www.linux.co.kr/home2/board/subbs/board.php?bo_table=lecture&wr_id=1641 linux virtual memory 에 대한 너무 좋은 강좌 꼭 한번 읽어보시길 Step by Step 커널 프로그래밍 강좌③ 리눅스커널의메모리관리 지난 호에 우리는 커널 모듈 프로그래밍에 관한 기본적인 것들을 살펴보았다. 이번 호 에서는 지난 번 모듈 프로그래밍에 이어 커널에서 가장 흔히 사용하는 함수 중의 하나 인 kmalloc을 통해 커널에서 시스템의 메모리를 어떻게 관리하는지 알아보기로 한다. 글 _ 김민찬 KLDP 멤버, 전문 프로그래머 연재 순서 ① 커널 프로그래밍 환경 구축하기와 특징 ② 모듈 구현하기 ③ 리눅스 커널의 메모리 관리 ④ 커널.. 더보기
linux virtual memory - Zone, Node, Section 의 개념 정의 : kernel 이 비슷한 속성을 가지는 page 를 관리하는 각 영역 사용 이유 1. 특정 메모리 주소에만 DMA 를 사용할 수 있는 HW 가 있다. 2. 가상 주소보다 더 많은 물리 주소를 사용할 수 있는 아키텍처가 있다. 종류 : ZONE_DMA, ZONE_NORMAL, ZONE_HIGHMEM In Linux, the memory available from all banks is classified into "nodes". These nodes indicate how much memory each bank has. This classification is mainly useful for NUMA architectures, but it's also used for.. 더보기
Device Driver - memory mapping 원문 : http://vincenthanna.springnote.com/pages/2267520?print=1 Device Driver - memory mapping 가상 주소와 MMU 간단한 시스템은 물리 주소만으로도 동작할 수 있다. 그러나 다중프로세스를 지원하고 각 프로세스에 대해 메모리 공간을 보호해야 하는 운영체제는 물리 주소만으로 구현하기는 어렵다. MMU는 프로세서에 전달되는 주소를 다른 주소로 변환한다. 그래서 프로세서가 메모리에 접근하는 주소가 메모리에 직접 전달되는 것이 아니라 먼저 MMU에 전달되고, MMU는 변환 테이블을 참고해 이 주소를 실제 물리 주소로 변환해 전달한다. 이때 프로세서가 MMU에 가상 주소를 전달하면, MMU가 이 가상 주소를 해석하여 나온 물리 주소를 실제 메모.. 더보기