Apa yang dilakukan "keterlambatan mulai" dalam jenis startup untuk layanan Windows?


79

Apa perbedaan antara Otomatis dan Otomatis (Mulai Tertunda) untuk pengaturan properti untuk layanan Windows? yaitu apa yang saya dapatkan atau kehilangan dengan menetapkan layanan saya sebagai satu atau yang lain?

Menjalankan layanan pada Windows Server 2008 x64



Terkait dengan Stack Overflow, jawaban terperinci: "Otomatis" vs "Otomatis (Delayed start)"
Bacco

Jawaban:


91

Suatu layanan yang ditandai sebagai Otomatis (Mulai Tertunda) akan mulai segera setelah semua layanan lain yang ditetapkan sebagai Otomatis telah dimulai. Dalam pengalaman saya, ini berarti mereka mulai 1-2 menit setelah komputer boot.

Pengaturan ini paling berguna dalam mengurangi "serbuan gila" untuk sumber daya saat mesin melakukan boot.

Perhatikan bahwa ketika Anda memiliki 20 layanan yang semuanya dimulai pada waktu yang sama, masing-masing layanan akan mulai lebih lambat karena bersaing dengan yang lain untuk mendapatkan irisan sumber daya berharga mesin (CPU / RAM / Disk / Jaringan). Artinya, setiap layanan membutuhkan waktu lebih lama untuk tersedia!

Jika Anda memiliki beberapa layanan yang kritis, maka Anda mungkin ingin mengatur beberapa itu menjadi Otomatis dan mengatur sebanyak mungkin dari yang lain ke Otomatis (Tertunda Mulai) . Ini akan memastikan bahwa layanan kritis mendapatkan sumber daya paling cepat dan menjadi tersedia lebih cepat, sementara layanan non-kritis mulai sedikit kemudian (yang menurut definisi tidak masalah).


39
Memang, setelah menangani layanan Mulai Non-Tertunda itu akan mengantri thread pekerja yang memiliki penundaan default 120 detik, yang dapat ditimpa oleh nilai AutoStartDelay di HKLM\SYSTEM\CurrentControlSet\Control. Ketika utas yang dikerjakan ini berjalan, layanan Delayed Start ditangani dan ketika selesai, SCM memberi sinyal acara \ BaseNamedObjects \ SC_AutoStartComplete ...
Tamara Wijsman

7
Selanjutnya ke @TomWijsman, Anda dapat mengatur penundaan berdasarkan layanan demi layanan dengan menambahkan a DWORDuntuk HKLM\SYSTEM\CurrentControlSet\services\<service name>\AutoStartDelay.
Stajs

8

Dari pemahaman saya, itu hanya penundaan sebelum meluncurkan layanan.

Versi Windows yang lebih baru memperkenalkan ini untuk memastikan bahwa mereka tidak tersandung kaki satu sama lain selama proses boot (memiliki proses trilyun memulai pada saat yang sama tidak kondusif untuk kinerja).

Dokumentasi untuk fitur ini menyatakan bahwa layanan yang ditandai dengan demikian akan dimulai "tak lama setelah boot", mudah-mudahan setelah layanan yang diperlukan pada waktu boot sedikit berkurang.


0

Ini sebuah contoh. Saya memiliki layanan SonarQube yang tergantung pada layanan database MySQL saya. Jadi, saya mengatur layanan MySQL ke otomatis untuk mendapatkan database dan menjalankan ketika mesin boot. Saya memiliki layanan SonarQube diatur ke mulai otomatis (tertunda) untuk memastikan itu dimulai SETELAH layanan database itu tergantung pada dimulai.

Jika Anda memiliki ketergantungan seperti ini, sebaiknya Anda menggunakan awal yang tertunda untuk memastikan layanan yang bergantung memulai dalam urutan yang benar.


8
Jika Anda memiliki ketergantungan seperti ini, cara yang benar untuk mengatasinya adalah dengan mengkonfigurasi layanan secara eksplisit untuk bergantung pada yang lain, daripada menunggu beberapa menit dan berharap itu sudah dimulai.
Massimo

Terima kasih. Mungkin Anda bisa menjelaskan bagaimana cara melakukannya? Dan, tampaknya jika berhasil itu benar. Mungkin yang Anda rekomendasikan adalah "lebih baik", yang tidak akan saya setujui?
Russ Jackson


0

Ini juga digunakan ketika Anda ingin menunda dimulainya suatu layanan untuk memungkinkan layanan lain untuk memulai sepenuhnya, seperti Klien SCCM, yang melakukan awal yang tertunda untuk memungkinkan layanan WMI untuk memulai sepenuhnya karena tergantung pada itu sepenuhnya dan berlari.


Saya akan mencatat bahwa persyaratan seperti itu merupakan tanda kelalaian dari penulis layanan. Cara yang benar untuk memecahkan masalah seperti itu adalah dengan menggunakan ketergantungan layanan eksplisit.
Brian

0

Ini sebagian besar digunakan untuk layanan yang dimulai dengan akun AD. Jika layanan mencoba untuk memulai sebelum server memiliki koneksi jaringan untuk menghubungi DC, itu akan gagal dan kadang-kadang sistem macet dan tidak dapat dijangkau.

Penundaan memastikan layanan akan mulai setelah koneksi jaringan menyala untuk menggunakan akun AD untuk itu.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.