AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 896097
Accepted
Arth
Arth
Asked: 2018-02-08 05:52:42 +0800 CST2018-02-08 05:52:42 +0800 CST 2018-02-08 05:52:42 +0800 CST

配置透明大页面;[总是]、[madvise] 或 [从不]

  • 772

我们有一堆通用的 Centos 7 LAMP 堆栈服务器,它们使用底层 MariaDB 数据库运行 apache。

来自RHEL 6 的 RedHat Performance Tuning 文档:

Trasparent Hugepages (THP) 隐藏了系统管理员和开发人员使用大页面的大部分复杂性。由于 THP 的目标是提高性能,其开发人员(来自社区和红帽)已经在广泛的系统、配置、应用程序和工作负载中测试和优化了 THP。这允许 THP 的默认设置来提高大多数系统配置的性能。但是,不建议将 THP 用于数据库工作负载。

这听起来很棒,直到数据库部分。事实上,某些 MariaDB 选项(例如 TokuDB 引擎)实际上需要禁用 THP。

我找到的许多禁用 THP 的指南都指示将默认配置从 更改transparent_hugepages= always为never.

但是,来自RHEL 7 的 RedHat Performance Tuning 文档:

为防止应用程序分配不必要的内存资源,您可以在系统范围内禁用大页面,并仅在 MADV_HUGEPAGE madvise 区域内启用它们

如果我没看错,这transparent_hugepages= madvise似乎是一个更好的选择,允许受益于 THP 的进程使用它们,而那些不使用的进程则不使用它们。

我确实找到了一篇建议这种方法的文章。

为什么这不是默认选项?

有没有使用比使用transparent_hugepages= never更明智的情况madvise?

redhat
  • 1 1 个回答
  • 6991 Views

1 个回答

  • Voted
  1. Best Answer
    Andrew Domaszek
    2018-02-08T08:43:26+08:002018-02-08T08:43:26+08:00

    这是选择加入(madvise)和选择退出(总是)之间的区别。对 THP 敏感的应用程序即使在transparent_hugepages=always. 例如,使用 jemalloc 的应用程序对它特别敏感(redis、go rt、rust rt),并且 jemalloc 在编译时提供选项作为分配器配置的一部分以使用 MADV_NOHUGEPAGE。从内核 3.15(RHEL7 附带 3.10)开始,他们可以使用prctl(PR_SET_THP_DISABLE).

    默认值always通常应该没问题,因为数据局部性对于进行大分配的应用程序来说是一个非常常见的属性。数据库是一个显着的例外,它们会在大量大型分配中访问小块(并且它们可以禁用 THP)。

    透明大页的内核文档表明,这transparent_hugepage=never更像是一种调试选项,而不是推荐的解决方案。transparent_hugepage=madvise仅在软件有错误时才可取;IE。当开发人员错误地使用 MADV_HUGEPAGE 时。

    • 9

相关问题

  • 如何设置 Redhat 对 ActiveDirectory 的用户进行身份验证

  • 如何从 RHEL 5 迁移到 CentOS 5?

  • 我应该将 Rails 应用程序部署到哪个目录?

  • 如何移动 MySQL 的数据目录?

  • RHEL 5.3 上可用的 yum 存储库

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve