Huge page

dawn·2022년 3월 10일
0

리눅스 페이지

  • capacity에 page가 나오는데.. 그게 뭔지 해서 페이지를 할당한대

가상메모리

시스템에 물리적으로 존재하는 것보다 더 많은 양의 메모리를 사용하기 위한 기법이다.
가상 메모리(virtual memory)는 메모리를 필요로 하는 서로 경쟁하는 프로세스 사이에 메모리를 공유하도록 하여, 시스템이 실제 가진 것보다 더 많은 메모리를 가진 것처 럼 보이도록 한다.

유닉스 파일 시스템

  • Boot Block

  • Super Block

  • Inode list
    파일 하나당 inode 할당, inode는 파일의 정보인 접근 권한, 소유주, 파일 크기, inode 번호 등을 저장하는 부분이다.

  • Data Block
    실제로 데이터의 내용이 저장되는 디스크 영역

  • Page Cache
    처음 파일의 내용을 읽을때는 disk에서 읽어오고 Page Cache영역에 저장. 이후 재접근이 일어나게 될경우 디스크의 내용을 전달하는 것이 아닌 메모리의 Page Cache 영역에 저장된 내용 전달
    Page Cache 영역은 전

Huge page는 노드 커널이 기본 페이지 크기보다 훨씬 큰 메모리 블록을 할당하는 리눅스 관련 기능이다.

메모리 블록마다 페이지 크기가 정해져있나?

https://access.redhat.com/documentation/ko-kr/red_hat_enterprise_linux/6/html/performance_tuning_guide/s-memory-transhuge
메모리는 페이지 (pages)라는 블록에서 관리됩니다. 한 페이지는 4096 바이트입니다.
대량의 메모리를 관리하기 위해 시스템을 활성화할 수 있는 다음과 같은 두 가지 방법이 있습니다:

  • 하드웨어 메모리 관리 장치에서 페이지 테이블 엔트리 수를 늘림
  • 페이지 크기를 확대함 => 이걸 실현하는 방법이 huge page

https://linux.systemv.pe.kr/tag/hugepage-%EB%9E%80/
MMU : 가상 메모리 주소를 물리적 메모리 주소로 변환
Page Map : 가상 메모리 주소 공간을 특정 크기 단위로 쪼갠 페이지, 실제 물리 메모리 주소를 특정 크기 단위로 쪼갠 페이지를 서로 매핑 시켜 논 것
TLB(Translation Lookaside Buffer) : 매핑 테이블을 계속 풀스캔하면 성능이 안나오기때문에 페이지 테이블 검색 속도를 높이기 위해서 중간에 캐쉬를 놓은 것
Huge Page : Huge Page는 기본 페이지 크기보다 더 크게 설정할 수 있도록 해주는것, 페이지의 개수가 줄어들기 때문에 매핑테이블의 크기가 줄어들고 TLB에서 바로 찾을 수 있는 확률이 늘어나 매핑테이블을 풀스캔할 확률이 줄어든다. => 근데 이거 앱에서는 필요없을 것같은데... 일단 넣어놓을까

profile
안녕하세요

0개의 댓글