Windowsサービスの起動型で「遅延起動」とは何をするのか?
Windowsサービスのプロパティ設定の自動と自動(遅延開始)の違いは何ですか? つまり、自分のサービスをどちらか一方に設定することで何が得られるのか、それともどちらか一方に設定することで何が失われるのか?
Windows Server 2008 x64でサービスを実行している場合
Windowsサービスのプロパティ設定の自動と自動(遅延開始)の違いは何ですか? つまり、自分のサービスをどちらか一方に設定することで何が得られるのか、それともどちらか一方に設定することで何が失われるのか?
Windows Server 2008 x64でサービスを実行している場合
自動(遅延開始)とマークされたサービスは、自動**と指定された他のすべてのサービスが開始された後、すぐに開始されます。私の経験では、これはコンピュータが起動してから1~2分後に開始されることを意味します。
この設定は、マシンが起動したときのリソースの “猛烈なラッシュ "を軽減するのに最も有効です。
20のサービスが同時に起動されている場合、マシンの貴重なリソース(CPU/RAM/ディスク/ネットワーク)を奪い合うため、それぞれのサービスの起動が遅くなることに注意してください。つまり、各サービスが利用可能になるまでに時間がかかるということです。 _
重要なサービスがいくつかある場合は、そのうちのいくつかのサービスを Automatic に設定し、他のサービスをできるだけ多く Automatic (Delayed Start) に設定するとよいでしょう。これにより、クリティカルなサービスが最も多くのリソースを早期に取得して利用可能になる一方で、非クリティカルなサービスは少し遅れて開始されます(これは定義上は問題ありません)。
ここで一例を紹介します。SonarQube サービスは MySQL データベースサービスに依存しています。そこで、マシンの起動時にデータベースを起動して実行するために、MySQL サービスを自動に設定しました。SonarQube サービスを自動(遅延)起動に設定して、依存するデータベースサービスが起動した後に起動するようにしています。
このような依存関係がある場合、遅延開始を使用して依存サービスが正しい順序で起動するようにすると便利です。