亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

Linux關于透明大頁機制的介紹

瀏覽:239日期:2023-03-07 14:40:03

透明大頁介紹

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 huge page (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.

查看是否啟用透明大頁

1:命令cat /sys/kernel/mm/redhat_transparent_hugepage/enabled 該命令適用于Red Hat Enterprise Linux系統

[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:命令cat /sys/kernel/mm/transparent_hugepage/enabled 該命令適用于其它Linux系統

[root@getlnx06 ~]# cat /sys/kernel/mm/transparent_hugepage/enabled always madvise [never] [root@getlnx06 ~]# 

使用命令查看時,如果輸出結果為[always]表示透明大頁啟用了。[never]表示透明大頁禁用、[madvise]表示(只在MADV_HUGEPAGE標志的VMA中使用THP

3:如何HugePages_Total返回0,也意味著標準大頁禁用了(注意傳統/標準大頁和透明大頁的區別)

透明大頁(THP)管理和標準/傳統大頁(HP)管理都是操作系統為了減少頁表轉換消耗的資源而發布的新特性,雖然ORACLE建議利用大頁機制來提高數據庫的性能,但是ORACLE卻同時建議關閉透明大頁管理。這二者的區別在于大頁的分配機制,標準大頁管理是預分配的方式,而透明大頁管理則是動態分配的方式。

[root@getlnx06 ~]# grep -i HugePages_Total /proc/meminfo  HugePages_Total: 0

4:cat /proc/sys/vm/nr_hugepages返回0也意味著傳統大頁禁用了(傳統大頁和透明大頁)。

[root@getlnx06 ~]# cat /proc/sys/vm/nr_hugepages  0

禁用、啟用透明大頁功能

方法1:設置/etc/grub.conf文件,在系統啟動是禁用。

[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

方法2:設置/etc/rc.local文件

[root@getlnx06 ~]# vi /etc/rc.local#!/bin/sh## This script will be executed *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. 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

使用上面的配置后必須重啟操作系統才能生效,你也可以運行下面命令不用重啟操作系統。

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 ~]# 

小知識點:

1:從RedHat 6, OEL 6, SLES 11 and UEK2 kernels 開始,系統缺省會啟用 Transparent HugePages :用來提高內存管理的性能透明大頁(Transparent HugePages )和之前版本中的大頁功能上類似。主要的區別是:Transparent HugePages 可以實時配置,不需要重啟才能生效配置;

2:Transparent Huge Pages在32位的RHEL 6中是不支持的。

Transparent Huge Pages are not available on the 32-bit version of RHEL 6.

3: ORACLE官方不建議我們使用RedHat 6, OEL 6, SLES 11 and UEK2 kernels 時的開啟透明大頁(Transparent HugePages ), 因為透明大頁(Transparent HugePages ) 存在一些問題:

  • 1.在RAC環境下 透明大頁(Transparent HugePages )會導致異常節點重啟,和性能問題;
  • 2.在單機環境中,透明大頁(Transparent HugePages ) 也會導致一些異常的性能問題;

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:安裝Vertica Analytic Database時也必須關閉透明大頁功能。

到此這篇關于Linux關于透明大頁機制的文章就介紹到這了。希望對大家的學習有所幫助,也希望大家多多支持。

標簽: Linux Apache
相關文章:
主站蜘蛛池模板: 久草资源免费 | 成人欧美一区二区三区的电影 | 日本一级毛片冲田杏梨 | 国产精品亚洲综合第一区 | 欧美日韩亚洲国内综合网香蕉 | 丰满寡妇一级毛片 | 污的网址 | 伦理片一区| 91视频入口 | 亚洲综合黄色 | 无人区二区三区地址 | 国产视频第二页 | xxxxx色 | 日韩小视频在线播放 | 国内精品自在自线在免费 | 久热在线视频 | 青草娱乐极品免费视频 | 九九精品免视看国产成人 | 国产精品人成人免费国产 | 免费亚洲网站 | 日韩欧美成人免费中文字幕 | av国产精品 | 69成人做爰免费视频 | 手机看片国产免费现在观看 | 1024手机在线观看 | 日韩在线观看一区二区不卡视频 | 欧美一级特黄aa大片视频 | 国产情侣自拍在线 | 91手机在线视频 | 日韩a一级欧美一级 | 在线看片黄色 | 1024在线视频国产在线播放 | 日韩制服在线 | 一级黄色日b片 | 国产在线视频国产永久视频 | 国产精品免费_区二区三区观看 | 国精品一区二区三区 | 国产精品高清视亚洲乱码 | 日韩一区二区三区在线播放 | 黄网站色在线视频免费观看 | 日韩在线不卡一区在线观看 |