• 在庆祝海南建省办经济特区30周年大会上的讲话 2019-10-07
  • 俄罗斯世界杯F组:球迷风采 2019-09-24
  • 彭于晏廖凡曝姜文“精神洁癖” 2019-09-24
  • 苏州大学研究生支教团网上众筹资助留守儿童 2019-09-23
  • 湖北政务微信排行榜第187期出炉 交警类公号表现亮眼 2019-09-19
  • 【奋斗吧2018】风电检修工——荒原上的“听风者” 2019-08-31
  • 母亲节又送康乃馨?送这样的健康佳品才走心 2019-08-30
  • [酷]此文已经把马克思理论、边际理论、人类需求层次理论、生物学理论、心理学理论、社会管理学理论等理论在哲学层面完美融合了! 2019-08-26
  • 兰芝雪纱修颜气垫隔离霜 2019-07-27
  • “鹊桥”中继星顺利进入使命轨道运行 2019-07-27
  • 超越舆情管理的360度信息决策 2019-07-22
  • 视频陶然居变形记:从路边小饭馆到全国餐饮十强 2019-07-21
  • 防震减灾事业发展的重要理论成果 2019-07-20
  • 珠宝配美人!李冰冰大片衣着性感秀身段 2019-07-20
  • 机器人也能拥有“情商”?这个可以有 2019-07-19
  • 香港赛马会一码会员料:Linux关于透明大页的使用与禁用介绍

     更新时间:2019年03月16日 10:58:40   作者:CODETC   我要评论
    今天小编就为大家分享一篇关于Linux关于透明大页的使用与禁用介绍,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

    香港赛马会网站惠泽社绝杀八码 www.mwcrz.tw 引言

    随着计算需求规模的不断增大,应用程序对内存的需求也越来越大。为了实现虚拟内存管理机制,操作系统对内存实行分页管理。自内存“分页机制”提出之始,内存页面的默认大小便被设置为 4096 字节(4KB),虽然原则上内存页面大小是可配置的,但绝大多数的操作系统实现中仍然采用默认的 4KB 页面。 4KB 大小的页面在“分页机制”提出的时候是合理的,因为当时的内存大小不过几十兆字节,然而当物理内存容量增长到几 G 甚至几十 G 的时候,操作系统仍然以 4KB 大小为页面的基本单位,是否依然合理呢?

    在 Linux 操作系统上运行内存需求量较大的应用程序时,由于其采用的默认页面大小为 4KB,因而将会产生较多 TLB Miss 和缺页中断,从而大大影响应用程序的性能。当操作系统以 2MB 甚至更大作为分页的单位时,将会大大减少 TLB Miss 和缺页中断的数量,显著提高应用程序的性能。这也正是 Linux 内核引入大页面支持的直接原因。好处是很明显的,假设应用程序需要 2MB 的内存,如果操作系统以 4KB 作为分页的单位,则需要 512 个页面,进而在 TLB 中需要 512 个表项,同时也需要 512 个页表项,操作系统需要经历至少 512 次 TLB Miss 和 512 次缺页中断才能将 2MB 应用程序空间全部映射到物理内存;然而,当操作系统采用 2MB 作为分页的基本单位时,只需要一次 TLB Miss 和一次缺页中断,就可以为 2MB 的应用程序空间建立虚实映射,并在运行过程中无需再经历 TLB Miss 和缺页中断(假设未发生 TLB 项替换和 Swap)。

    为了能以最小的代价实现大页面支持,Linux 操作系统采用了基于 hugetlbfs 特殊文件系统 2M 字节大页面支持。这种采用特殊文件系统形式支持大页面的方式,使得应用程序可以根据需要灵活地选择虚存页面大小,而不会被强制使用 2MB 大页面。

    Redis在Linux中启动时通?;岜ā?code>WARNING you have Transparent Huge Pages (THP) support enabled in your kernel”的警告信息,意思是:你使用的是透明大页,可能导致redis延迟和内存使用问题。

    关于透明大页,我们看看官方的介绍

    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系统

    [[email protected] ~]# more /etc/issue
     
    Red Hat Enterprise Linux Server release 6.6 (Santiago)
     
    Kernel \r on an \m
     
    [[email protected] ~]# cat /sys/kernel/mm/redhat_transparent_hugepage/enabled
     
    [always] madvise never

    2:命令cat /sys/kernel/mm/transparent_hugepage/enabled 该命令适用于其它Linux系统

    [[email protected] ~]# cat /sys/kernel/mm/transparent_hugepage/enabled
     
    always madvise [never]
     
    [[email protected] ~]# 

    使用命令查看时,如果输出结果为[always]表示透明大页启用了。[never]表示透明大页禁用、[madvise]表示

    3:如何HugePages_Total返回0,也意味着透明大页禁用了

    [[email protected] ~]# grep -i HugePages_Total /proc/meminfo 
     
    HugePages_Total: 0

    4:cat /proc/sys/vm/nr_hugepages返回0也意味着透明大页禁用了。

    [[email protected] ~]# cat /proc/sys/vm/nr_hugepages 
    
    0
    

    禁用、启用透明大页功能

    方法1:设置/etc/grub.conf文件,在系统启动是禁用。

    [[email protected] ~]# 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/sda
    default=0
    timeout=5
    splashimage=(hd0,0)/grub/splash.xpm.gz
    hiddenmenu
    title Red Hat Enterprise Linux 6 (2.6.32-504.el6.x86_64)
        root (hd0,0)
        kernel /vmlinuz-2.6.32-504.el6.x86_64 ro root=/dev/mapper/VolGroup--LogVol0-LogVol01 rd_NO_LUKS LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto rd_LVM_LV=VolGroup-LogVol0/LogVol01 rd_LVM_LV=VolGroup-LogVol0/LogVol00 KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
        initrd /initramfs-2.6.32-504.el6.x86_64.img
    transparent_hugepage=never

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

    [[email protected] ~]# 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/enabled
    fi

    使用上面的配置后必须重启操作系统才能生效,你也可以运行下面命令不用重启操作系统。

    [[email protected] ~]# echo never > /sys/kernel/mm/redhat_transparent_hugepage/enabled
    [[email protected] ~]# cat /sys/kernel/mm/redhat_transparent_hugepage/enabled
    always madvise [never]
    [[email protected] ~]# 

    小知识点:

    1:从RedHat 6, OEL 6, SLES 11 and UEK2 kernels 开始,系统缺省会启用 Transparent HugePages :用来提高内存管理的性能透明大页(Transparent HugePages )和之前版本中的大页功能上类似。主要的区别是:Transparent HugePages 可以实时配置,不需要重启才能生效配置;

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

    3: ORACLE官方不建议我们使用RedHat 6, OEL 6, SLES 11 and UEK2 kernels 时的开启透明大页(Transparent HugePages ), 因为透明大页(Transparent HugePages ) 存在一些问题:

    • 在RAC环境下 透明大页(Transparent HugePages )会导致异常节点重启,和性能问题
    • 在单机环境中,透明大页(Transparent HugePages ) 也会导致一些异常的性能问题

    总结

    以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接

    相关文章

    • 在CoreOS上搭建一个WordPress程序操作实例

      在CoreOS上搭建一个WordPress程序操作实例

      你可能听过服务器操作系统CoreOS的名字,那你试过在上面建立个小程序么?今天,我们就来手把手地教你建立一个简单的WordPress程序
      2014-03-03
    • Linux下浅谈crond与crontab的命令用法

      Linux下浅谈crond与crontab的命令用法

      本篇文章主要介绍了Linux下浅谈crond与crontab的用法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
      2017-06-06
    • linux对文件解压或打包压缩的方法

      linux对文件解压或打包压缩的方法

      这篇文章主要介绍了linux对文件解压或打包压缩的方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下
      2016-12-12
    • linux中ssh免密通信的实现

      linux中ssh免密通信的实现

      这篇文章主要介绍了linux中ssh免密通信的实现,详细的介绍了什么是ssh及其ssh免密通信,非常具有实用价值,需要的朋友可以参考下
      2018-11-11
    • centos iso镜像文件安装教程

      centos iso镜像文件安装教程

      这篇文章主要为大家详细介绍了centos iso镜像文件安装教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
      2017-06-06
    • linux sort多字段排序实例解析

      linux sort多字段排序实例解析

      这篇文章主要介绍了linux sort多字段排序实例解析,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
      2018-02-02
    • Linux中改变文件权限的chmod命令详析

      Linux中改变文件权限的chmod命令详析

      在 Linux 命令中,chmod用于修改文件或者目录的权限。下面这篇文章主要给大家介绍了关于Linux中改变文件权限的chmod命令的相关资料,文中通过示例代码介绍的非常详细,需要的朋友们下面来一学习学习吧
      2018-06-06
    • 利用iptables来配置linux禁止所有端口登陆和开放指定端口的方法

      利用iptables来配置linux禁止所有端口登陆和开放指定端口的方法

      下面小编就为大家带来一篇利用iptables来配置linux禁止所有端口登陆和开放指定端口的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
      2017-01-01
    • Centos 7下利用crontab定时执行任务详解

      Centos 7下利用crontab定时执行任务详解

      这篇文章主要给大家介绍了关于Centos 7下利用crontab定时执行任务的相关资料,文中对crontab进行了详细的介绍,并给出了一些实例代码供大家参考学习,需要的朋友们下面跟着小编一起来学习学习吧。
      2017-06-06
    • LINUX Centos7搭建vsftpd服务

      LINUX Centos7搭建vsftpd服务

      本文给大家详细讲述了在LINUX中Centos7搭建vsftpd服务的详细操作方法,需要的朋友参考下。
      2018-02-02

    最新评论

  • 在庆祝海南建省办经济特区30周年大会上的讲话 2019-10-07
  • 俄罗斯世界杯F组:球迷风采 2019-09-24
  • 彭于晏廖凡曝姜文“精神洁癖” 2019-09-24
  • 苏州大学研究生支教团网上众筹资助留守儿童 2019-09-23
  • 湖北政务微信排行榜第187期出炉 交警类公号表现亮眼 2019-09-19
  • 【奋斗吧2018】风电检修工——荒原上的“听风者” 2019-08-31
  • 母亲节又送康乃馨?送这样的健康佳品才走心 2019-08-30
  • [酷]此文已经把马克思理论、边际理论、人类需求层次理论、生物学理论、心理学理论、社会管理学理论等理论在哲学层面完美融合了! 2019-08-26
  • 兰芝雪纱修颜气垫隔离霜 2019-07-27
  • “鹊桥”中继星顺利进入使命轨道运行 2019-07-27
  • 超越舆情管理的360度信息决策 2019-07-22
  • 视频陶然居变形记:从路边小饭馆到全国餐饮十强 2019-07-21
  • 防震减灾事业发展的重要理论成果 2019-07-20
  • 珠宝配美人!李冰冰大片衣着性感秀身段 2019-07-20
  • 机器人也能拥有“情商”?这个可以有 2019-07-19
  • 500万彩票网完整比分 二个骰子单双怎么玩 如何选择大小单双 我玩龙虎输了100万 频菓报2019年全年图片 11选5时时彩稳赚 北单上下单双中奖计算 球探体育比分手机版 吉林快三单双大小全天计划 mg4355电子游戏线路检测