met*_*jus 7 linux-kernel docker coreos
我和我的团队最近注意到,在我们的 VM 上启动 Redis 会给出以下警告:“警告您在内核中启用了透明大页面 (THP) 支持。这将导致 Redis 出现延迟和内存使用问题。”。
我调查了这个话题,只是为了发现大多数数据库供应商建议(如果不需要)您禁用 THP。举几个例子:
我还注意到许多发行版默认启用了此功能:
所以问题是:
THP 是一个 linux 特性,它在某些 linux 发行版上默认启用以提高应用程序性能。但有些操作系统数据库供应商并不推荐这样做,因为它会降低他们产品的性能。
来自Red-HAT 文档(为什么启用 THP):
由于 THP 的目标是提高性能,因此其开发人员(来自社区和红帽)已经在广泛的系统、配置、应用程序和工作负载中测试和优化了 THP。这允许 THP 的默认设置提高大多数系统配置的性能。但是,不建议将 THP 用于数据库工作负载。
来自:Oracle Docs(为什么要禁用 THP?)
但不幸的是,透明 HugePages 不能很好地与 Oracle 数据库配合使用,并且与 RAC 安装中的节点重新启动以及单实例和 RAC 安装的性能问题相关联。因此,Oracle 建议在运行 Oracle 数据库的所有服务器上禁用 Transparent HugePages
在我们的集群虚拟机上禁用 THP 可能有哪些缺点/风险?
保持 THP 启用是防止mmap泛洪攻击的一项安全功能。
但是,可以进一步优化应用程序以利用此功能,例如,它们之前已经过优化以避免
mmap对每个 malloc(4k) 进行大量系统调用。到目前为止,优化用户空间并不是强制性的,即使对于处理大量内存的大页面不知道的应用程序,khugepaged 已经可以处理长期页面分配。
| 归档时间: |
|
| 查看次数: |
2127 次 |
| 最近记录: |