クローンの仕事自体は現代のシステムにかなりの負担をかけますか?

クローンの仕事自体は現代のシステムにかなりの負担をかけますか?

非常に単純なスクリプトを実行したいと思います(dir yにxというディレクトリがありますか?そうであれば、それをzディレクトリに移動します。xは一日に一度だけ表示されます)。 15秒ごと(1分を4つに分けます)*15秒)。リソースをあまり使用しないスクリプトを実行するクローンタスクを実行すると、パフォーマンス、信頼性、またはその他の側面に無視できないほど悪影響を及ぼしますか?

答え1

タイトルの質問に答えると「いいえ」です。ほとんどのシステムは、クローンジョブを実行しても大きな負担を受けません。最新のUnixシステムで発生する多くの自動化されたジョブは、cronジョブによって開始されます。

ユーザーが使用できるように、ログの回転やインデックスファイルの再生成などの操作は、cronジョブを介して開始されます。

ご質問がある場合は、以下のディレクトリのいずれかを確認してください/etc/cron*。これらのタスクがシステムでどのように実行されるかを示すいくつかの例が明らかにあります。

答え2

まず、cronの最小解像度は1分です。したがって、15秒ごとに発生しません。 15秒ごとに必要な場合は、戦略を考え直す必要があります。

次に、cronは特定の時間だけジョブを実行します。ジョブがリソースを多用する場合は、cronにも適用されます。そうでなければそうではありません。 cronは、実行するコマンドを渡す方法のため、オーバーヘッドを(ほぼ)追加しません。

最後に、cronで1分ごとにタスクを実行するのはとても愚かです。 Anacron(コンピュータがシャットダウンまたはスリープモードのときにログに再実行されるcronジョブ)は、必要と判断されたすべてのジョブを順番に実行します。

ファイルが表示されるまでに1分ごとにこのタスクを実行すると、より良いサービスを受けることができます。 10分に1回ずつですね。

1日に1回だけ表示されるファイルをキャプチャするために1,440回のタスクを実行する必要はありません。

作業が重要すぎてすぐにファイルを表示できる場合は、別のファイルを使用してください。それ以外の場合は、必要に応じて作業頻度を遅くすることをお勧めします。

つまり、cronを実際に使用したい場合は、コマンドラインで実行するだけで追加のオーバーヘッドは追加されませんが、電子メールの受信トレイがいっぱいになります。

答え3

この状況で使用する正しいツールと呼ばれます。inotify。これはLinuxカーネルの一部であり、その目的はプログラムにファイルシステムの変更を知らせることです。さまざまな方法で構成でき、必要な作業にほぼ確実に適しています。

答え4

頻繁に生成されるプロセスは常にシステムリソースが枯渇する危険がありますが、制限などの予防措置を講じることもできます。

PS このタスクの効率性に焦点を当てている場合は、次のことができます。inotify逆に。

関連情報