linux - 如何避免来自 mongodb 的 transparent_hugepage/defr

我从 mongodb 收到以下关于 THP 的警告

2015-03-06T21:01:15.526-0800 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
2015-03-06T21:01:15.526-0800 I CONTROL  [initandlisten] **        We suggest setting it to 'never'

但我确实设法手动关闭了 THP

frederick@UbuntuVirtual:~$ cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never]
frederick@UbuntuVirtual:~$ cat /sys/kernel/mm/transparent_hugepage/defrag
always madvise [never]

我通过将 transparent_hugepage=never 添加到 /etc/default/grub 中的 GRUB_CMDLINE_LINUX_DEFAULT 并添加

来达到目的
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
   echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi

/etc/rc.local

究竟如何才能避免警告?

最佳答案

Official MongoDB documentation为这个问题提供了几种解决方案。你也可以试试this solution ,这对我有用:

注意:如果 MongoDB 版本大于 3.0,请尝试官方文档指令

  1. 打开 /etc/init.d/mongod 文件。
    (如果没有这样的文件,您可以检查 /etc/init.d/mongod/etc/init/mongod.conf 文件 - 信用:以下评论)

  2. chown $DAEMONUSER/var/run/mongodb.pid 之后和 end script 之前添加以下行。

  3. 重启mongod(service mongod restart)。

以下是要添加到 /etc/init.d/mongod 的行:

if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
   echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
   echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi

就是这样!

关于linux - 如何避免来自 mongodb 的 transparent_hugepage/defrag 警告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28911634/

相关文章:

mongodb - 基于文档和基于键/值的数据库之间的区别?

mongodb - 什么是 Mongoose 错误 Cast to ObjectId failed

node.js - 在 Mongoose 中填充嵌套数组

python - 在 PyMongo 中使用 .sort

node.js - 如何使用 Mongoose 删除数据库?

mongodb - 与关系数据库相比,使用像 MongoDB 这样的无模式数据库有什么优势?

javascript - 在 Mongoose 中引用另一个模式

javascript - 如何跨 NodeJs 应用程序和模块正确重用与 Mongodb 的连接

ruby-on-rails - Mongodb:使用前需要了解什么?

ruby-on-rails - 如何实现has_many :through relationship