numactlを使用してサービスを実行する方法

numactlを使用してサービスを実行する方法

MongoDBを実行するには、次の作業を行う必要があります。

$numactl --interleave=all /usr/bin/mongod --config /etc/mongod.conf &

上記のオプションでmongoデーモンを実行するには、何を変更する必要がありますか?

ベストアンサー1

サービスをどのように管理するかによって異なります。

daemontools Service Managerスイートを使用するだけです。

現在のrunプログラムは本質的に次のように要約される。

#!/空/ノッシュ
chdir/
setuidgid モンゴディビ
モンゴールド

runこれは、一般的なサービスパックに含まれている非常に基本的なMongoDBプログラムです。私のスナックスイート、これはシェルをスクリプトソルバーとして使用しません。rundaemontools が管理するサービスのシェル解析スクリプト。contegixで使用するものまたは川津義樹の一人もっと複雑に見えるかもしれませんが、最終的にはexec setuidgid mongodb mongodコマンドがあります。どこかに、シェル変数拡張の後ろに隠されていても同じです。

daemontools サービスマネージャスイートの場合、runこれらのプログラムは本質的に単純なチェーンローディングコマンドシーケンスです。このnumactlプログラムは、独自のプロセスの設定を変更してから、コマンドラインで指定されたプログラムに接続するチェーンロードコマンドでもあります。次のdaemontoolsツールに最適です。setuidgid

したがって、そこにチェーンを追加するだけnumactlです。

#!/空/ノッシュ
chdir/
numactl --interleave=all--
setuidgid モンゴディビ
モンゴールド
noshスクリプトで、または
実装する\
numactl --interleave=all--\
setuidgid mongodb\
モンゴールド
シェルスクリプトから。 (シェルスクリプトでは、スクリプトが存在するかどうかを自動的に検出することができます。numactl以下の新人からメカニズムを盗むだけです。)

その後、サービスを再起動します(noshのみ)。

システム制御 condrestart mongod.service
または

svc -t /service/mongodb
以前の一般的なdaemontoolsディレクトリを使用している場合/service

systemdを使用すると、それはすべてです。

ユニットファイルにはmongod.serviceセクションがあります

[提供する]
ユーザー=モンゴディビ
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提供ユニットファイルを完全にオーバーライドするか、パッケージ提供ユニットファイルを保持し、たとえば設定の場合にのみオーバーライドを使用します/etc/systemd/service/mongod.service.d/numactl.conf

次に、ファイルからサービスユニットを再ロードします。

systemctlデーモンの再ロード
そしてサービスを再起動してください

systemctl condrestart mongod.service

ヌボ金持ちには残りはありません。

答えはあります。https://askubuntu.com/questions/293468/AskUbuntuのコンテンツは現在ほぼ2年になりました。同時に、numactl能力が配置されました入力するパッケージが提供するupstart作業ファイル

したがって、システムが最新の状態であると仮定すると、すでにこれを行っています。

initctl mongodbの再起動

追加読書

おすすめ記事