Linux에서 대형 페이지 관리 활성화

Linux에서 대형 페이지 관리 활성화

몇 가지 실험을 하고 있어요. 가상 주소 변환을 수행할 때 21비트 페이지 오프셋이 변경되지 않고 유지될 수 있도록 일부 대형 페이지(2MB)를 실험에 사용했습니다. 인터넷에서 거대한 페이지를 활성화하는 방법에 대한 몇 가지 팁을 찾았습니다. 이것은 작동합니다. 그런데 그 원리에 대해서는 잘 모르겠어서 여쭤보고 싶습니다.

It requires Hugepages and assumes they are mounted on `/mnt/hugetlbfs/`. This value can be modified by changing the value of FILE_NAME.
The mount point must be created previously:

    `$ sudo mkdir /mnt/hugetlbfs`.
    
    Once reserved, hugepages can be mounted:
    
    `$ sudo mount -t hugetlbfs none /mnt/hugetlbfs`
    
    Note that this may require to use `sudo` for the examples or to change the permissions of the `/mnt/hugetlbfs/` folder.
    
    To enable a fixed amount of huge pages, after a reboot the number of huge pages must be set:
    
    `$ echo 100 > /proc/sys/vm/nr_hugepages`

처음에 이해한 바는 원래 시스템이 4Kb페이지를 통해 관리되었다는 것이었습니다. 이제 대형 페이지를 활성화했으므로 모든 메모리는 대형 페이지를 통해 관리됩니다. 하지만 몇 가지 설명을 읽고 명령을 비교했습니다. 폴더가 생성된 느낌입니다. 이 폴더에 있는 파일은 대용량 페이지를 사용하여 관리하고, 이 폴더에 없는 파일은 4KB를 사용하여 관리합니다. C 언어에서는 buffer = mmap(NULL, size, PROT_READ|PROT_WRITE, MAP_ANON|MAP_PRIVATE|HUGEPAGES, -1, 0);거대한 페이지를 만드는 데 사용할 수 있습니다 .

내 이해가 맞나요?

관련 정보