How do I view the number of 1GB hugetables (and what documentation should I follow)?
0
votes
2
answers
5155
views
I am trying to figure out hugepages for use by KVM under Ubuntu 20.04.
If I change the number of 2048 KiB (the default size) pages, I see that is reflected in
/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
:~$
However, when I change the number of 1GB pages, I don't see anything to reflect that.
:~$ 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
And as I understand it, this means that 1GB hugepages are supported by my system, right?
ls /sys/kernel/mm/hugepages
hugepages-1048576kB hugepages-2048kB
Are 1Gb pages listed somewhere else? Can I check on their status?
Edit: I can see my 1GB hugepages thanks to @Krackout, but I am still confused about what documentation I should even be following:
I am confused about varying procedures for setting up and monitoring hugepages. I seem to have got them working, but there is still quite a bit that is not clear to me.
**Main resources:**
* 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
Each of the above links describes partially overlapping procedures. It seems that differences based on kernel and distro, but it isn't clear to me what exactly they are and I can't seem to find it explcitly spelled out anywhere.
On my Ubuntu 20.04 setup, what works for me is putting the following in 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
After which I can start a KVM VM in virt-manager containing the following XML:
So the way I was able to do isn't exactly what any of the guides said.
Asked by Stonecraft
(869 rep)
Jun 22, 2020, 03:06 AM
Last activity: Mar 2, 2022, 02:19 PM
Last activity: Mar 2, 2022, 02:19 PM