当前位置: 首页 > 面试题库 >

如何避免来自mongodb的transparent_hugepage / defrag警告?

阳勇
2023-03-14
问题内容

我收到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,以GRUB_CMDLINE_LINUX_DEFAULT/etc/default/grub和添加

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

/etc/rc.local

我到底该如何避免该警告?


问题答案:

MongoDB官方文档为该问题提供了几种解决方案。您也可以尝试此解决方案,该解决方案对我有用:

注意: 如果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. 重新启动mongodservice 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

而已!



 类似资料:
  • 我有下面的代码,只是得到了并发修改异常。 异常跟踪信息: 这是JavaAPI方法代码,是抛出异常的最后一行。 这发生在GUI初始化阶段。xmlfileter是一个局部变量。 我在Linux中使用的是javaVersion=1.8.0_20。这是不可复制的,今年在我的开发过程中只发生了三次。 我不知道如何避免这种情况,或者如何正确使用文件选择器及其文件过滤器。有人能帮我吗? 编辑: 它发生在应用程序

  • 问题内容: 我刚刚尝试了一个示例代码表单网络,它显示了如下警告 SimpleConvertImage.java:7:警告:com.sun.org.apache.xerces.internal.impl.dv.util.Base64是内部专有API,可以在以后的发行版com.sun.org.apache.xerces中删除。 internal.impl.dv.util.Base64; ^ Simpl

  • 我正在使用phpMyAdmin进行grendalhosting。不管我做什么,我总是会犯这些错误。我是PHP/MySQL新手。 警告:mysql_connect():用户“root@”10.1的访问被拒绝。在/home/u438954871/public_html/url shortner/connect中输入2.21“(使用密码:否)。php第8行 警告:mysql_select_db():在/

  • 在这两种情况下,当应用程序处于前台时,消息是在扩展FirebaseMessagingService的服务中接收的,在onMessageReceived中,我们可以通过包中的自定义参数过滤请求,但当应用程序处于后台,消息是从控制台发送的时,接收器不会被调用,推送消息会以某种方式添加。 是否可以处理此请求?

  • 问题内容: 我正在尝试通过从客户端向服务器发送密钥和随机数来认证用户。 我的代码未向我显示客户端的响应。执行下面的代码时,我得到了一个空指针异常。 问题答案: 解决大多数问题的固定步骤: 阅读堆栈跟踪以确定哪一行代码引发NPE 在该行代码处设置一个断点 使用调试器,在遇到断点时,确定该行中的对象引用是 弄清楚为什么引用该文件(到目前为止,这是唯一实际的困难部分) 解决根本原因(也可能很困难)

  • 问题内容: 我有两个简单的Java代码。第一个将恒定功率定义为power = a.pow(b); 第二个将恒定功率定义为power = BigInteger.ONE.shiftLeft(b) 在命令行中设置内存标志- Xmx1024m,第一个代码可以正常工作,但是第二个代码却出现错误:java.lang.OutOfMemoryError:Java堆空间 我的问题:我应该在第二个代码中更改什么以避免