zoukankan      html  css  js  c++  java
  • THP Transparent HugePages 相关知识与关闭

    近期遇到个LINUX系统内存比較大。未开 HugePages,业务有变化导致ORACLE连接数剧增至上千个,PageTables达到上百G。导致内存不足系统HANG住的案例。

      因此须要开启 HugePages,操作系统是OEL6以上的。LINUX的下面版本号: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是默认开启的。因此在这些版本号的LINUX系统中,ORACLE强烈建议开启HugePages须要关闭Transparent HugePages。

    在下面版本号的LINUX中Transparent HugePages默认是关闭--从内核移除的。

    Transparent HugePages memory is disabled in later releases of Oracle Linux UEK2 kernels.

    验证方法是:假设下面文件不存在,则是THP已经从内核中移除。

    /sys/kernel/mm/transparent_hugepage or /sys/kernel/mm/redhat_transparent_hugepage 

    參考MOS文档:ALERT: Disable Transparent HugePages on SLES11, RHEL6, OL6 and UEK2 Kernels (文档 ID 1557478.1)

    或者OEL的下面文档:

    https://docs.oracle.com/cd/E11882_01/install.112/e41961/memry.htm#CWLIN385

    C.3 Disabling 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.

    o check if Transparent HugePages memory is enabled, run one of the following commands as the root user:

    Red Hat Enterprise Linux kernels:

    # cat /sys/kernel/mm/redhat_transparent_hugepage/enabled
    

    Other kernels:

    # cat /sys/kernel/mm/transparent_hugepage/enabled
    

    The following is a sample output that shows Transparent HugePages memory being used as the [always] flag is enabled.

    [always] never
    

    Note:

    If Transparent HugePages is removed from the kernel, then the /sys/kernel/mm/transparent_hugepage or /sys/kernel/mm/redhat_transparent_hugepage files do not exist.

    To disable Transparent HugePages, perform the following steps:

    1. Add the following entry to the kernel boot line in the /etc/grub.conf file:

      transparent_hugepage=never
      

      For example:

      title Oracle Linux Server (2.6.32-300.25.1.el6uek.x86_64)
              root (hd0,0)
              kernel /vmlinuz-2.6.32-300.25.1.el6uek.x86_64 ro root=LABEL=/   transparent_hugepage=never
              initrd /initramfs-2.6.32-300.25.1.el6uek.x86_64.img
      
    2. Restart the system to make the changes permanent.



  • 相关阅读:
    11-性能测试的工具:七大测试场景如何选择高质量的测试工具
    /10-性能测试的规划和步骤:为什么性能测试不容易一蹴而就呢
    09-性能测试的种类:如何快准狠地抓住一个测试的本质
    python 基础 4.5 用函数实现九九乘法表
    python 基础 4.4 生成式 生成器 迭代器
    python 基础 4.3 高阶函数下和匿名函数
    python 基础 4.2 高阶函数上
    1 zabbix3.2.4 安装
    python 基础 3.2 文件 for 练习
    python 基础 4.1 函数的参数
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/5211007.html
Copyright © 2011-2022 走看看