我有一台运行 Ubuntu 16.04 LTS 的专用服务器。我的 mongoDB 服务出现问题。当我进入 shell 时,我收到此消息:
WARNING: You are running on a NUMA machine.
We suggest launching mongod like this to avoid performance problems:
numactl --interleave=all mongod [other options]
我该如何解决?我已经尝试过以下解决方案:如何在 NUMA 机器上启动 MongoDB? 和 :http://greproot.com/warning-you-are-running-on-a-numa-machine-we-suggest-launching-mongod-like-this-to-avoid-performance-problems-numactl-interleaveall-mongod-other-options/ 但没什么...抱歉我的英语不好:D
答案1
正如 Jacek 所建议的 - 如果使用专用的 mongodb 服务器,在 BIOS 中禁用 NUMA 是一个不错的选择。对于生产场景,建议使用numactl命令以确保 NUMA 意识的未来性。
要使 mongod 开始使用交错模式,请numactl –interleave=all
在常规mongod
命令前添加:
numactl --interleave=all mongod < mongod options>
如果使用 numaclt 方法,还需要通过添加以下内容将 vm zone reclaim zone_reclaim_mode 禁用为 0:vm.zone_reclaim_mode = 0
到/etc/sysctl.conf
,保存并执行sysctl -p
以将新设置加载到内核中。
答案2
您可以按照您为该过程复制/粘贴的消息中所述禁用 NUMA。您也可以在 grub 中禁用它,为内核设置 numa=off。另一个选项是在 BIOS 中禁用它 - 可能取决于您使用的硬件(例如,对于戴尔,它将“节点交叉”设置为“启用”)如果您有专用的 Mongo 数据库服务器,这将是一个很好的解决方案。
您可以稍后使用“numactl -H”命令进行验证 - 您应该只看到一个节点。
通常,您也可以根据您的具体情况,如果您的 mongo 实例不是太大,请忽略该消息。这可能不是一个真正严重的问题,但 Mongo 在启动时会警告您有关您的设置,这可能会导致问题。是的 - 在生产系统上,如果有大量数据、大量内存分配 - 您可能会遇到性能问题,甚至内存分配失败。