In addition to Weibo, there is also WeChat
Please pay attention
WeChat public account
Shulou
2025-03-28 Update From: SLTechnology News&Howtos shulou NAV: SLTechnology News&Howtos > Development >
Share
Shulou(Shulou.com)06/01 Report--
This article will explain in detail the example analysis of the transparent large page mechanism in Linux. The editor thinks it is very practical, so I share it with you for reference. I hope you can get something after reading this article.
Transparent large page introduction
Some official introductions to Transparent Huge Pages:
Transparent Huge Pages (THP) are enabled by default in RHEL 6 for all applications. The kernel attempts to allocate hugepages whenever possible and any Linux process will receive 2MB pages if the mmap region is 2MB naturally aligned. The main kernel address space itself is mapped with hugepages, reducing TLB pressure from kernel code. For general information on Hugepages, see: What are Huge Pages and what are the advantages of using them?
The kernel will always attempt to satisfy a memory allocation using hugepages. If no hugepages are available (due to non availability of physically continuous memory for example) the kernel will fall back to the regular 4KB pages. THP are also swappable (unlike hugetlbfs). This is achieved by breaking the huge page to smaller 4KB pages, which are then swapped out normally.
But to use hugepages effectively, the kernel must find physically continuous areas of memory big enough to satisfy the request, and also properly aligned. For this, a khugepaged kernel thread has been added. This thread will occasionally attempt to substitute smaller pages being used currently with a hugepage allocation, thus maximizing THP usage.
In userland, no modifications to the applications are necessary (hence transparent). But there are ways to optimize its use. For applications that want to use hugepages, use of posix_memalign () can also help ensure that large allocations are aligned to hugepage (2MB) boundaries.
Also, THP is only enabled for anonymous memory regions. There are plans to add support for tmpfs and page cache. THP tunables are found in the / sys tree under / sys/kernel/mm/redhat_transparent_hugepage.
Check if transparent large pages are enabled
1: command cat / sys/kernel/mm/redhat_transparent_hugepage/enabled this command applies to Red Hat Enterprise Linux systems
[root@getlnx06 ~] # more / etc/issue Red Hat Enterprise Linux Server release 6.6 (Santiago) Kernel\ r on an\ m [root@getlnx06 ~] # cat / sys/kernel/mm/redhat_transparent_hugepage/enabled [always] madvise never
2: command cat / sys/kernel/mm/transparent_hugepage/enabled this command applies to other Linux systems
[root@getlnx06 ~] # cat / sys/kernel/mm/transparent_hugepage/enabled always madvise [never] [root@getlnx06 ~] #
When viewing with the command, if the output is [always], the transparent large page is enabled. [never] indicates that transparent large pages are disabled, and [madvise] indicates that THP is only used in VMA of the MADV_HUGEPAGE flag.
3: how HugePages_Total returns 0 also means that standard large pages are disabled (note the difference between traditional / standard large pages and transparent large pages)
Transparent large pages (THP) management and standard / traditional large pages (HP) management are both new features released by the operating system in order to reduce the resources consumed by page table conversion. Although ORACLE recommends the use of large pages to improve database performance, ORACLE also recommends turning off transparent large pages management. The difference between the two lies in the allocation mechanism of large pages, standard large page management is the way of pre-allocation, while transparent large page management is the way of dynamic allocation.
[root@getlnx06 ~] # grep-I HugePages_Total / proc/meminfo HugePages_Total: 0
A 4:cat / proc/sys/vm/nr_hugepages return of 0 also means that traditional large pages (traditional large pages and transparent large pages) are disabled.
[root@getlnx06 ~] # cat / proc/sys/vm/nr_hugepages 0 disables and enables transparent large pages
Method 1: set the / etc/grub.conf file, which is disabled at system startup.
[root@getlnx06] # vi / etc/grub.conf# grub.conf generated by anaconda## Note that you do not have to rerun grub after making changes to this file# NOTICE: You have a / boot partition. This means that# all kernel and initrd paths are relative to / boot/, eg.# root (hd0,0) # kernel / vmlinuz-version ro root=/dev/mapper/VolGroup--LogVol0-LogVol01# initrd / initrd- [generic-] version.img#boot=/dev/sdadefault=0timeout=5
Method 2: set / etc/rc.local file
[root@getlnx06 ~] # vi / ETC _ after* all the other init scripts.# You can put your own initialization stuff in here if you don't# want to do the full Sys V style init stuff rc.localcharts. Touch / var/lock/subsys/local if test-f / sys/kernel/mm/redhat_transparent_hugepage/enabled; then echo never > / sys/kernel/mm/redhat_transparent_hugepage/enabledfi
After using the above configuration, you must restart the operating system to take effect, you can also run the following command without rebooting the operating system.
You must reboot your system for the setting to take effect, or run the following two echo lines to proceed with the install without rebooting:
[root@getlnx06 ~] # echo never > / sys/kernel/mm/redhat_transparent_hugepage/ enabled [root @ getlnx06 ~] # cat / sys/kernel/mm/redhat_transparent_hugepage/enabledalways madvise [never] [root@getlnx06 ~] # small knowledge points:
1: starting with RedHat 6, OEL 6, SLES 11 and UEK2 kernels, Transparent HugePages is enabled by default: transparent large pages (Transparent HugePages) used to improve memory management are similar to large pages in previous versions. The main difference is that Transparent HugePages can be configured in real time and does not require a restart to take effect.
2:Transparent Huge Pages is not supported in 32-bit RHEL 6.
Transparent Huge Pages are not available on the 32-bit version of RHEL 6.
3: ORACLE officials do not recommend that we use open transparent large pages (Transparent HugePages) when using RedHat 6, OEL 6, SLES 11 and UEK2 kernels, because there are some problems with transparent large pages (Transparent HugePages):
1. Transparent large pages (Transparent HugePages) in RAC can cause abnormal node restarts and performance problems.
two。 In a stand-alone environment, transparent large pages (Transparent HugePages) can also cause some abnormal performance problems
Transparent HugePages memory is enabled by default with Red Hat Enterprise Linux 6, SUSE Linux Enterprise Server 11, and Oracle Linux 6 with earlier releases of Oracle Linux Unbreakable Enterprise Kernel 2 (UEK2) kernels. Transparent HugePages memory is disabled in later releases of Oracle Linux UEK2 kernels.Transparent HugePages can cause memory allocation delays during runtime. To avoid performance issues, Oracle recommends that you disable Transparent HugePages on all Oracle Database servers. Oracle recommends that you instead use standard HugePages for enhanced performance.Transparent HugePages memory differs from standard HugePages memory because the kernel khugepaged thread allocates memory dynamically during runtime. Standard HugePages memory is pre-allocated at startup, and does not change during runtime.
Starting with RedHat 6, OEL 6, SLES 11 and UEK2 kernels, Transparent HugePages are implemented and enabled (default) in an attempt to improve the memory management. Transparent HugePages are similar to the HugePages that have been available in previous Linux releases. The main difference is that the Transparent HugePages are set up dynamically at run time by the khugepaged thread in kernel while the regular HugePages had to be preallocated at the boot up time. Because Transparent HugePages are known to cause unexpected node reboots and performance problems with RAC, Oracle strongly advises to disable the use of Transparent HugePages. In addition, Transparent Hugepages may cause problems even in a single-instance database environment with unexpected performance problems or delays. As such, Oracle recommends disabling Transparent HugePages on all Database servers running Oracle.
4: the transparent large page function must also be turned off when installing Vertica Analytic Database.
This is the end of the article on "sample Analysis of transparent large pages in Linux". I hope the above content can be of some help to you, so that you can learn more knowledge. if you think the article is good, please share it for more people to see.
Welcome to subscribe "Shulou Technology Information " to get latest news, interesting things and hot topics in the IT industry, and controls the hottest and latest Internet news, technology news and IT industry trends.
Views: 0
*The comments in the above article only represent the author's personal views and do not represent the views and positions of this website. If you have more insights, please feel free to contribute and share.
Continue with the installation of the previous hadoop.First, install zookooper1. Decompress zookoope
"Every 5-10 years, there's a rare product, a really special, very unusual product that's the most un
© 2024 shulou.com SLNews company. All rights reserved.