Wondering how to configure HugePages on Amazon EC2? We can help you.
HugePages are memory pages that are larger in size than the default 4 KB page size.
Here, at Bobcares, we assist our customers with several AWS queries as part of our AWS Support Services.
Today, let us see how our Support techs assist with this query.
How to configure HugePages on Amazon EC2?
Basically, enabling HugePages in your Linux instance’s kernel in a large application or database environment helps reduce the stress on the TLB.
Less stress on the TLB increases your server and application or database performance because TLB stores fewer pages that are larger in size.
Please keep below points in mind before enabling HugePages:
- By default, starting your system doesn’t release HugePages.
To enable release after system startup, modify the number of pages available or modify the HugePages pool size.
- If the appropriate space for allocation isn’t available in memory during system startup, then HugePages allocation fails.
The value of hugepagesize * number of HugePages must always be less than the total memory of the instance.
To determine the amount memory that must be available verify the total memory of the instance by running the free -m command.
- Enabling Hugepages in the instance’s kernel requires that the application or database on the instance supports HugePages.
Verify with your vendor or your system administrator that your application or database supports HugePages.
Today, let us go through the steps followed by our Support Techs for configuration:
1.To verify that your kernel doesn’t currently have HugePages enabled, run the cat command:
# sudo cat /proc/sys/vm/nr_hugepages
In the preceding example, the nr_hugepages parameter value is 0, indicating that HugePages isn’t enabled.
2.To enable HugePages, run the following command to set the kernel parameter value to 2048:
# sudo sysctl -w vm.nr_hugepages=2048
vm.nr_hugepages = 2048
3.To verify that the system allocates HugePages after reboot, add the following entry to /etc/sysctl.conf:
# sudo echo "vm.nr_hugepages=2048" >> /etc/sysctl.conf
4.Then, run the cat command to verify the change:
# sudo cat /etc/sysctl.conf
# sysctl settings are defined through files in
# /usr/lib/sysctl.d/, /run/sysctl.d/, and /etc/sysctl.d/.
#
# Vendors settings live in /usr/lib/sysctl.d/.
# To override a whole file, create a new file with the same in
# /etc/sysctl.d/ and put new settings there. To override
# only specific settings, add a file with a lexically later
# name in /etc/sysctl.d/ and put new settings there.
#
# For more information, see sysctl.conf(5) and sysctl.d(5).
vm.zone_reclaim_mode=1
vm.nr_hugepages=2048
5.Next, reboot your instance.
6.After rebooting, run the cat command again to verify the HugePages value and configuration:
# sudo cat /proc/sys/vm/nr_hugepages
2048
7.Check the available HugePages in /proc/meminfo:
# sudo grep Huge /proc/meminfo
HugePages_Total: 2048
HugePages_Free: 2048
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
HugePages is now enabled on your server.
8.Finally, configure HugePages on additional applications as needed.
How to to disable HugePages?
1.Change the nr_hugepages back to 0.
2.Remove the entry in sysctl.conf.
3.Finally, reboot the server to take effect.
[Need help with the process? We’d be happy to assist]
Conclusion
In short, we saw how our Support Techs configure HugePages on Amazon EC2.
0 Comments