Bob*_*Bob 4 linux ubuntu database numa mongodb
我需要做这样的事情来运行 MongoDB
$numactl --interleave=all /usr/bin/mongod --config /etc/mongod.conf &
Run Code Online (Sandbox Code Playgroud)
我应该更改什么才能使用上述选项运行 mongo 守护程序?
这取决于您如何管理您的服务。
您当前的run程序本质上将归结为
#!/bin/nosh 目录 / setuidgid mongodb 蒙哥
这实际上run是我的 nosh 套件的常规服务包中非常基本的 MongoDB程序,它不使用 shell 作为脚本解释器。rundaemontools 管理服务的shell 解释脚本,例如contegix或Yoshiaki Kawazu 使用的服务,可能看起来更复杂,但最终都会在某处有一个exec setuidgid mongodb mongod命令,即使它隐藏在 shell 变量扩展后面。
使用 daemontools-family 服务管理器,run诸如此类的程序本质上是简单的链式加载命令序列。该numactl程序也是一个链式加载命令,它修改自己进程的设置,然后链接到一个在其命令行上命名的程序。它适用于 daemontools 工具,例如setuidgid.
所以你只需添加numactl到那里的链中,这将是
#!/bin/nosh 目录 / numactl --interleave=all -- setuidgid mongodb 蒙哥在 nosh 脚本中或
执行\ numactl --interleave=all -- \ setuidgid mongodb \ 蒙哥在 shell 脚本中。(在 shell 脚本中,您可以让脚本尝试自动检测
numactl.
然后用(nosh only)重启服务
系统控制 condrestart mongod.service或与
svc -t /service/mongodb如果您使用旧的常规 daemontools
/service目录。
在你的mongod.service单元文件中会有一个部分
[服务] 用户=mongodb ExecStart=/usr/local/bin/mongod $OPTIONS 运行
这就是您将在mongodb 随附的 systemd 服务单元中找到的内容,它稍微复杂一点,但并不复杂。
所以你只要按照你的建议做并修改ExecStart设置:
ExecStart=/usr/bin/numactl --interleave=all -- /usr/local/bin/mongod $OPTIONS 运行
要么将其放在替换/etc/systemd/service/mongod.service单元文件中以完全覆盖包提供的单元文件,要么保留包提供的单元文件并仅对 (say) 中的该设置使用覆盖/etc/systemd/service/mongod.service.d/numactl.conf。
然后只需从文件中重新加载服务单元
systemctl 守护进程重新加载并重新启动服务
systemctl condrestart mongod.service
AskUbuntu上https://askubuntu.com/questions/293468/上的答案现在已经快 2 岁了。在此期间,numactl能力已经被放置到包装提供的新贵作业文件。
所以你的系统,假设它是最新的,应该已经这样做了,你甚至不应该需要一个
initctl 重启 mongodb
| 归档时间: |
|
| 查看次数: |
6727 次 |
| 最近记录: |