![1GB 대용량 테이블 수를 어떻게 확인할 수 있나요(그리고 어떤 문서를 따라야 합니까)?](https://linux55.com/image/175617/1GB%20%EB%8C%80%EC%9A%A9%EB%9F%89%20%ED%85%8C%EC%9D%B4%EB%B8%94%20%EC%88%98%EB%A5%BC%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%ED%99%95%EC%9D%B8%ED%95%A0%20%EC%88%98%20%EC%9E%88%EB%82%98%EC%9A%94(%EA%B7%B8%EB%A6%AC%EA%B3%A0%20%EC%96%B4%EB%96%A4%20%EB%AC%B8%EC%84%9C%EB%A5%BC%20%EB%94%B0%EB%9D%BC%EC%95%BC%20%ED%95%A9%EB%8B%88%EA%B9%8C)%3F.png)
Ubuntu 20.04에서 KVM이 어떤 hugepages를 사용하는지 알아보려고 합니다. 2048 KiB(기본 크기) 페이지 수를 변경하면 이것이 반영되는 것을 볼 수 있습니다./proc/meminfo
:~$ echo 0 |sudo tee /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages
0
:~$ cat /proc/meminfo | grep Huge
AnonHugePages: 0 kB
ShmemHugePages: 0 kB
FileHugePages: 0 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
Hugetlb: 50331648 kB
:~$ echo 512 |sudo tee /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages
512
:~$ cat /proc/meminfo | grep Huge
AnonHugePages: 0 kB
ShmemHugePages: 0 kB
FileHugePages: 0 kB
HugePages_Total: 512
HugePages_Free: 512
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
Hugetlb: 51380224 kB
:~$
그런데 1GB 페이지 수를 변경해 보니 이를 반영하는 내용이 전혀 보이지 않습니다.
:~$ echo 0 | sudo tee /sys/kernel/mm/hugepages/hugepages-1048576kB/nr_hugepages
0
:~$ cat /proc/meminfo | grep Huge
AnonHugePages: 0 kB
ShmemHugePages: 0 kB
FileHugePages: 0 kB
HugePages_Total: 512
HugePages_Free: 512
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
Hugetlb: 51380224 kB
:~$ echo 16 | sudo tee /sys/kernel/mm/hugepages/hugepages-1048576kB/nr_hugepages
16
:~$ cat /proc/meminfo | grep Huge
AnonHugePages: 0 kB
ShmemHugePages: 0 kB
FileHugePages: 0 kB
HugePages_Total: 512
HugePages_Free: 512
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
Hugetlb: 51380224 kB
내가 이해한 바에 따르면 이는 내 시스템이 1GB 대용량 페이지를 지원한다는 의미입니다. 그렇죠?
ls /sys/kernel/mm/hugepages
hugepages-1048576kB hugepages-2048kB
1Gb 페이지가 다른 곳에 나열되어 있습니까? 상태를 확인할 수 있나요?
편집: @Krackout 덕분에 1GB의 거대한 페이지를 볼 수 있지만 어떤 문서를 따라야 하는지 여전히 혼란스럽습니다.
대용량 페이지를 설정하고 모니터링하는 다양한 절차가 혼란스럽습니다. 작동하는 것 같지만 아직 이해하지 못하는 부분이 많습니다.
주요 자원:
- https://help.ubuntu.com/community/KVM%20-%20Using%20Hugepages
- https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/virtualization_tuning_and_optimization_guide/sect-virtualization_tuning_optimization_guide-memory-tuning
- https://mathiashueber.com/configuring-hugepages-use-virtual-machine/
- https://wiki.archlinux.org/index.php/KVM
- https://wiki.debian.org/Hugepages
위의 각 링크는 부분적으로 겹치는 프로세스를 설명합니다. 커널과 배포판에 따라 차이점이 있는 것 같은데, 정확히 무엇인지도 잘 모르겠고, 명확한 설명도 어디에서도 찾을 수 없는 것 같습니다.
내 Ubuntu 20.04 설정에서 나에게 도움이 된 것은 다음을 넣는 것이었습니다 crontab -e
.
@reboot echo 64 | sudo tee /sys/kernel/mm/hugepages/hugepages-1048576kB/nr_hugepages
@reboot mount -t hugetlbfs -o pagesize=1G none /dev/hugepages
이후에 다음 XML을 사용하여 virt-manager에서 KVM 가상 머신을 시작할 수 있습니다.
<memoryBacking>
<hugepages>
<page size='1048576' unit='KiB'/>
</hugepages>
</memoryBacking>
그래서 제가 할 수 있었던 방식은 어떤 가이드가 말한 것과 정확히 일치하지 않았습니다.
답변1
Debian Linux에서는 커널 매개변수를 삽입해야 합니다 hugepagesz=1G
(물론 재부팅도 해야 함). libhugetlbfs-bin
명령을 사용하여 패키지를 설치하고 정보를 볼 수도 있습니다 hugeadm
.Hugepades의 데비안 위키 페이지Debian 기반 Ubuntu에서 작동해야 합니다.
답변2
호스트에서 이것을 실행하면
virsh capabilities
해당 호스트에서 활성화된 대형 페이지가 표시됩니다.# virsh capabilities <topology> <cells num='2'> <cell id='0'> <memory unit='KiB'>16088120</memory> <pages unit='KiB' size='4'>3382030</pages> <pages unit='KiB' size='2048'>1250</pages> <pages unit='KiB' size='1048576'>0</pages> ----to be continued----- <cell id='1'> <memory unit='KiB'>16466052</memory> <pages unit='KiB' size='4'>2427937</pages> <pages unit='KiB' size='2048'>1250</pages> <pages unit='KiB' size='1048576'>4</pages> <distances>
각 노드의 사용량과 현재 상태를 이해하려면 시스템 파일을 확인하세요.
# cat /sys/devices/system/node/node0/hugepages/hugepages-1048576kB/free_hugepages 0 # cat /sys/devices/system/node/node0/hugepages/hugepages-1048576kB/nr_hugepages 0 # cat /sys/devices/system/node/node1/hugepages/hugepages-1048576kB/nr_hugepages 4 # cat /sys/devices/system/node/node1/hugepages/hugepages-1048576kB/free_hugepages 3
(노드 0에는 1G hugepage가 없습니다. 노드 1에는 4개의 1G hugepage가 있으며 그 중 3개는 무료입니다.)