Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux Can';t写入/sys/kernel/以禁用OVH CentOS 7上MongoDB的透明巨型页面(THP)_Linux_Mongodb_Centos7_Ovh_Huge Pages - Fatal编程技术网

Linux Can';t写入/sys/kernel/以禁用OVH CentOS 7上MongoDB的透明巨型页面(THP)

Linux Can';t写入/sys/kernel/以禁用OVH CentOS 7上MongoDB的透明巨型页面(THP),linux,mongodb,centos7,ovh,huge-pages,Linux,Mongodb,Centos7,Ovh,Huge Pages,我的问题 在OVH CentOS 7安装中,我在删除MongoDB关于透明巨型页面(THP)的警告时遇到问题,问题似乎是无法以root用户身份写入/sys/kernel/mm root@myhost [~]# echo never > /sys/kernel/mm/transparent_hugepage/enabled -bash: /sys/kernel/mm/transparent_hugepage/enabled: No such file or directory root@m

我的问题

在OVH CentOS 7安装中,我在删除MongoDB关于透明巨型页面(THP)的警告时遇到问题,问题似乎是无法以root用户身份写入
/sys/kernel/mm

root@myhost [~]# echo never > /sys/kernel/mm/transparent_hugepage/enabled
-bash: /sys/kernel/mm/transparent_hugepage/enabled: No such file or directory

root@myhost [~]# mkdir -p /sys/kernel/mm/transparent_hugepage
mkdir: cannot create directory ‘/sys/kernel/mm/transparent_hugepage’: Operation not permitted
首先,我意识到OVH内核是定制的,我知道你们中的许多人会说使用一个全新的非定制内核,但现在这不是一个选项。我需要为当前的操作系统解决这个问题

MongoDB警告:

2016-03-09T00:31:45.889-0500 W CONTROL  [initandlisten] Failed to probe "/sys/kernel/mm/transparent_hugepage": Permission denied
2016-03-09T00:31:45.889-0500 W CONTROL  [initandlisten] Failed to probe "/sys/kernel/mm/transparent_hugepage": Permission denied
MongoDB正在尝试读取透明的_hugepage文件(如下),但这些文件不存在:

/sys/kernel/mm/transparent_hugepage/enabled
/sys/kernel/mm/transparent_hugepage/defrag
无法创建文件

我看到的所有解决方案都涉及到创建文件并用
never
填充它们,包括。在所有解决方案中,这是关键部分:

echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
但是,这些文件不存在,我无法在
/sys/kernel/mm
下创建任何根目录

root@myhost [~]# echo never > /sys/kernel/mm/transparent_hugepage/enabled
-bash: /sys/kernel/mm/transparent_hugepage/enabled: No such file or directory

root@myhost [~]# mkdir -p /sys/kernel/mm/transparent_hugepage
mkdir: cannot create directory ‘/sys/kernel/mm/transparent_hugepage’: Operation not permitted
目录
/sys/kernel/mm
的所有者和组是
root
,我已临时将权限从700更改为777,但仍然无法将目录创建为root

优化的配置文件也没有帮助

为了彻底了解,我还创建了自定义优化配置文件(根据上面MongoDB链接中的说明)并将其激活,但它会生成错误
WARNING Tuned.plugins.plugin\u vm:当前硬件不支持“transparent\u hugepages”选项。

优化配置文件(/etc/Tuned/no-thp/Tuned.conf):

优化日志中的错误:

WARNING  tuned.plugins.plugin_vm: Option 'transparent_hugepages' is not supported on current hardware.
MongoDB本身的一些解决方案?


似乎最好的解决方案是以某种方式显式地配置MongoDB,使其不使用THP,这样它就不必检查丢失的文件,但我从未见过这样的情况。如果有办法,即使需要定制MongoDB(并在每次更新后重复),我也愿意这样做。

现在我已经在OVH上安装了CentOS 7。他们使用
/boot/bzImage-3.14.32-xxxx-grs-ipv6-64
,实现
grsecurity
(),阻止访问某些文件夹

MongoDB关于巨大页面的警告的非常简单的解决方案可以通过替换内核来解决。CentOS7的程序如下:

  • 将所需内核从OVH ftp:下载到
    /boot
    文件夹中
  • 编辑
    /etc/grub2.cfg

    #linux/boot/bzImage-3.14.32-xxxx-grs-ipv6-64 root=/dev/md1 ro-net.ifnames=0

    linux/boot/bzImage-4.8.17-xxxx-std-ipv6-64 root=/dev/md1 ro-net.ifnames=0

  • 这里,我将
    bzImage-3.14.32-xxxx-grs-ipv6-64
    默认值替换为
    bzImage-4.8.17-xxxx-std-ipv6-64
    ,而不使用
    grs

    现在,重新启动并检查新内核是否正常:

    root@ns506846 ~]# uname -r
    4.8.17-xxxx-std-ipv6-64
    

    我正在运行Ubuntu 16.04,也在OVH上。这些目录和文件存在,我可以看到它们,但是,我没有权限(作为root用户)将新值回显到它们中。这可能是某种特定于OVH的配置,以防止我们的虚拟机干扰在同一硬件上运行的其他虚拟机。我运行的是专用服务器,因此没有虚拟机或其他用户。我看不出他们有什么理由在专用安装中锁定任何东西。同意,我也看不出有什么理由。使用分发内核而不是自定义OVH内核是解决此问题的唯一方法。更换OVH内核后,这个问题和其他一些问题消失了。