Những gì chậm trễ bắt đầu, làm gì trong loại khởi động cho một dịch vụ Windows?


78

Sự khác biệt giữa Tự động và Tự động (Bắt đầu trễ) đối với cài đặt thuộc tính cho dịch vụ Windows là gì? tức là tôi được hay mất gì bằng cách đặt dịch vụ của mình là cái này hay cái kia?

Chạy dịch vụ trên Windows Server 2008 x64



Liên quan trên Stack Overflow, câu trả lời chi tiết: “Tự động” vs “Automatic (Delayed Start)”
Bacco

Câu trả lời:


91

Một dịch vụ được đánh dấu là Tự động (Bắt đầu trễ) sẽ bắt đầu ngay sau khi tất cả các dịch vụ khác được chỉ định là Tự động đã được bắt đầu. Theo kinh nghiệm của tôi, điều này có nghĩa là chúng được khởi động 1-2 phút sau khi máy tính khởi động.

Cài đặt này hữu ích nhất trong việc giảm bớt "cơn điên" đối với tài nguyên khi máy khởi động.

Lưu ý rằng khi bạn có 20 dịch vụ được khởi động cùng một lúc, mỗi dịch vụ sẽ khởi động chậm hơn khi nó cạnh tranh với các dịch vụ khác cho các lát tài nguyên quý giá của máy (CPU / RAM / Đĩa / Mạng). Đó là, mỗi dịch vụ mất nhiều thời gian hơn để trở nên có sẵn!

Nếu bạn có một vài dịch vụ quan trọng, thì bạn có thể muốn đặt một vài dịch vụ đó thành Tự động và đặt càng nhiều dịch vụ khác càng tốt thành Tự động (Bắt đầu trễ) . Điều này sẽ đảm bảo rằng các dịch vụ quan trọng nhận được nhiều tài nguyên sớm nhất và có sẵn sớm hơn, trong khi các dịch vụ không quan trọng bắt đầu muộn hơn một chút (theo định nghĩa là ổn).


39
Thật vậy, sau khi xử lý các dịch vụ Bắt đầu không bị trì hoãn, nó sẽ xếp hàng một luồng công nhân có độ trễ mặc định là 120 giây, có thể bị ghi đè bởi giá trị AutoStartDelay HKLM\SYSTEM\CurrentControlSet\Control. Khi luồng hoạt động này chạy các dịch vụ Bắt đầu trễ được xử lý và khi chúng được thực hiện, SCM báo hiệu sự kiện \ BaseNamedObjects \ SC_AutoStartComplete ...
Tamara Wijsman

7
Hơn nữa với @TomWijsman, rõ ràng bạn có thể đặt độ trễ trên cơ sở dịch vụ theo dịch vụ bằng cách thêm một DWORDcho HKLM\SYSTEM\CurrentControlSet\services\<service name>\AutoStartDelay.
Stajs

8

Theo hiểu biết của tôi, nó chỉ đơn giản là một sự chậm trễ trước khi ra mắt dịch vụ.

Các phiên bản sau này của Windows đã giới thiệu điều này để đảm bảo rằng chúng không vấp phải chân nhau trong quá trình khởi động (có một quá trình đáng kinh ngạc bắt đầu cùng một lúc không có lợi cho hiệu suất).

Tài liệu cho tính năng này nói rằng các dịch vụ được đánh dấu do đó sẽ được bắt đầu "ngay sau khi khởi động", hy vọng một khi các dịch vụ yêu cầu thời gian khởi động đã ổn định một chút.


0

Đây là một ví dụ. Tôi có một dịch vụ SonarQube phụ thuộc vào dịch vụ cơ sở dữ liệu MySQL của tôi. Vì vậy, tôi đặt dịch vụ MySQL thành tự động để khởi động cơ sở dữ liệu khi máy khởi động. Tôi có dịch vụ SonarQube được đặt thành khởi động tự động (bị trì hoãn) để đảm bảo nó khởi động SAU dịch vụ cơ sở dữ liệu mà nó phụ thuộc khi được khởi động.

Nếu bạn có một sự phụ thuộc như thế này, có thể hữu ích khi sử dụng bắt đầu bị trì hoãn để đảm bảo các dịch vụ phụ thuộc bắt đầu theo đúng thứ tự.


8
Nếu bạn có một phụ thuộc như thế này, cách xử lý chính xác là cấu hình rõ ràng một dịch vụ để phụ thuộc vào dịch vụ khác, thay vì chờ vài phút và hy vọng nó đã bắt đầu.
Massimo

Cảm ơn. Có lẽ bạn có thể giải thích làm thế nào để làm điều đó? Và, dường như nếu nó hoạt động thì đúng. Có lẽ những gì bạn đề nghị là "tốt hơn", điều mà tôi sẽ không đồng ý?
Nga Jackson


0

Điều này cũng được sử dụng khi bạn muốn trì hoãn bắt đầu dịch vụ để cho phép các dịch vụ khác bắt đầu hoàn toàn, chẳng hạn như Máy khách SCCM, khởi động chậm để cho phép dịch vụ WMI khởi động hoàn toàn vì nó phụ thuộc hoàn toàn vào dịch vụ và chạy.


Tôi sẽ lưu ý rằng một yêu cầu như vậy là một dấu hiệu của sự sơ suất từ ​​phía tác giả dịch vụ. Cách chính xác để giải quyết vấn đề như vậy là sử dụng một phụ thuộc dịch vụ rõ ràng.
Brian

0

Điều này chủ yếu được sử dụng cho các dịch vụ bắt đầu với tài khoản AD. Nếu dịch vụ đang cố khởi động trước khi máy chủ có kết nối mạng để liên lạc với DC, nó sẽ bị lỗi và đôi khi hệ thống bị kẹt và không thể truy cập được.

Sự chậm trễ đảm bảo dịch vụ sẽ bắt đầu khi kết nối mạng được sử dụng để sử dụng tài khoản AD cho nó.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.