私は非対話型タスク実行を使用しておりbatch
、8つのコアをすべて使用するように負荷制限要素を増やしたいと思います。私はUbuntu 16.04 LTSを使用しています。
私が理解したのは、作業を完了するbatch
ために使用されます。atd
負荷率がしきい値と呼ばれるしきい値を下回ると、ジョブが開始されます。負荷制限係数。 optionsをman
使用してatd
この要素を変更できるとします-l
。
私の質問:このオプションをどのように使用しますかatd -l XX
?たとえば、atd -l 7.2
beforeと入力するとbatch
何も変更されないようです。
これまで私が見つけたもの:
- この質問にはマルチスレッドでbashスクリプトを実行する方法、ある貢献者は、「サービス開始スクリプト」でこれを行うことを提案しました
atd
。私はそれを言及しているようですが、/etc/init.d/atd
何を変更するのかわかりません。次のポイントを参照してください。 - このようなページを見つけました。http://searchitchannel.techtarget.com/feature/Understanding-run-level-scripts-in-Fedora-11-and-RHEL、彼らは次のように提案します。 「スクリプトの次の行(開始部分)の変更
/etc/init.d/atd
:パラメータを使用して新しい最小システム負荷値を指定して、daemon /usr/sbin/atd
この行に置き換えます。」しかし、そのような行はありません。-l
daemon /usr/sbin/atd -l 1.6
/etc/init.d/atd
ここで紹介すればなりそうですが/etc/init.d/atd
、どこか分かりません。私はそのようなファイルを変更したことがありません。
batch
それでは、コマンドで使用される負荷制限要素をどのように変更しますか?
答え1
解決策が見つかりました。
- ファイルを生成します。
/etc/init/atd.override
- 行を追加
exec atd -l 7.2
- それから
sudo service atd restart
これは「Upstart initデーモン」の仕組みに関連しています。そこの説明:http://linux.die.net/man/5/init
ファイルが/etc/init/atd.override
すでに存在し、で始まる行が含まれている場合は、その行をexec
編集します。
答え2
/lib/systemd/system/atd.service
Ubuntu 16.04/systemdで編集されました。
-l «load avg»
次に追加ExecStart
:
$ cat /lib/systemd/system/atd.service
[Unit]
Description=Deferred execution scheduler
Documentation=man:atd(8)
[Service]
ExecStart=/usr/sbin/atd -f -l 7.2
IgnoreSIGPIPE=false
[Install]
WantedBy=multi-user.targe
実行すると、メッセージまたはsystemctl status atd
(service atd status
)が表示されます。
警告:ディスクのatd.serviceが変更されました。デバイスをリロードするには、「systemctl daemon-reload」を実行してください。
このコマンドを実行すると警告は表示されませんが、実際に変更を適用するにはsystemctl restart atd
(service atd restart)
。
答え3
これは以下に基づいています。ウェスリーBの回答。使用する場合に適用されますsystemctl
。サービス構成を直接更新する代わりに、書く定義できます。オペレーティングシステムはいつでもサービス構成を置き換えることができるので、これを行うのが最善です。この回答はUbuntu 21.10でテストされました。
- 実行し
sudo systemctl edit atd
て挿入します。
[Service]
ExecStart=
ExecStart=/usr/sbin/atd -f -l 3.0 -b 5
ExecStart=
上記の古い値を無効にするには、値のない行が必要です。次の行では、必要に応じて-l
sum値を設定します。-b
男性ページ。
これで上記の行が作成されます。/etc/systemd/system/atd.service.d/override.conf
このファイルを追加したときに追加されていない場合は、それを実行する必要がsystemctl edit
あります。sudo systemctl daemon-reload
ランニング
sudo systemctl restart atd
。確認ステータス:
systemctl status atd
ps aux | grep [a]td
これには、カスタムパラメータとともにサービスとプロセスのステータスを表示する必要があります。
答え4
私の近くにはUbuntu 16.04 LTSはありませんが、Debianベースのシステムでは /etc/init.d/atd
通常、次のように表示されます。
case "$1" in
start)
log_daemon_msg "Starting deferred execution scheduler" "atd"
start_daemon -p $PIDFILE $DAEMON -l 7
log_end_msg $?
-l 7
セクションを追加した場所を確認してください。その後、再起動して承認されたことを/etc/init.d/atd restart
確認ps auxwww|grep atd
する必要があります。
時には、/etc/default/atd
より簡単なアプローチを選択することに注意してください(そして、次のアップグレード時に変更が自動的に消去されないので、より良い)。