8.2.3.2. 정적 대규모 페이지 구성
경우에 따라 대규모 페이지를 더 많이 제어하는 것이 좋습니다. 게스트의 정적 대규모 페이지를 사용하려면 virsh edit 를 사용하여 게스트 XML 구성에 다음을 추가합니다.
<memoryBacking> <hugepages/> </memoryBacking>
이는 기본 페이지 크기를 사용하는 대신 대규모 페이지를 사용하여 게스트에 메모리를 할당하도록 호스트에 지시합니다.
다음 명령을 실행하여 현재 대규모 페이지 값을 확인합니다.
cat /proc/sys/vm/nr_hugepages
절차 8.1. 대규모 페이지 설정
다음 예제 절차에서는 대규모 페이지를 설정하는 명령을 보여줍니다.
- 현재 대규모 페이지 값을 확인합니다.
# cat /proc/meminfo | grep Huge AnonHugePages: 2048 kB HugePages_Total: 0 HugePages_Free: 0 HugePages_Rsvd: 0 HugePages_Surp: 0 Hugepagesize: 2048 kB
- 대규모 페이지는 2MB 단위로 설정됩니다. 대규모 페이지 수를 25000으로 설정하려면 다음 명령을 사용합니다.
echo 25000 > /proc/sys/vm/nr_hugepages
참고설정을 영구적으로 설정하려면 게스트 시스템의/etc/sysctl.conf
파일에 다음 행을 추가합니다. X는 의도한 대규모 페이지 수입니다.# echo 'vm.nr_hugepages = X' >> /etc/sysctl.conf # sysctl -p
그런 다음 게스트의/etc/grub2.cfg
파일의/kernel
행 끝에 추가하여transparent_hugepage=never
를 커널 부팅 매개변수에 추가합니다. - 대규모 페이지를 마운트합니다.
# mount -t hugetlbfs hugetlbfs /dev/hugepages
- 가상 머신의 XML 구성의 memoryBacking 섹션에 다음 행을 추가합니다.
<hugepages> <page size='1' unit='GiB'/> </hugepages>
- libvirtd 를 다시 시작합니다.
#
systemctl restart libvirtd - VM을 시작합니다.
#
virsh start virtual_machine - VM이 이미 실행 중인 경우 다시 시작합니다.
#
virsh reset virtual_machine
/proc/meminfo
의 변경 사항을 확인합니다.# cat /proc/meminfo | grep Huge AnonHugePages: 0 kB HugePages_Total: 25000 HugePages_Free: 23425 HugePages_Rsvd: 0 HugePages_Surp: 0 Hugepagesize: 2048 kB
대규모 페이지는 호스트뿐만 아니라 게스트도 활용할 수 있지만 총 대규모 페이지 값은 호스트에서 사용 가능한 것보다 작아야 합니다.