Cách diệt dịch vụ treo trên Windows 2008R2


8

Tôi có máy chủ Windows 2008R2 chạy NSClient ++. Vì một số lý do, dịch vụ đã gặp khó khăn và ngừng phản ứng với việc bỏ phiếu của Nagios.

Khi tôi cố gắng khởi động lại dịch vụ, người quản lý dịch vụ mất nhiều thời gian để thử và hủy dịch vụ, sau đó từ bỏ một thông báo "dòng dịch vụ mất quá nhiều thời gian để phản hồi". Nhưng ... nó cũng bắt đầu một phiên bản mới của dịch vụ.

Nếu tôi nhìn vào Trình quản lý tác vụ hoặc tasklistbây giờ tôi có thể thấy hai trường hợp nsclient++.exeđang chạy.

Tôi đã cố giết cả hai thứ này bằng cách sử dụng:

  • nhấp chuột phải và "Kết thúc quá trình" trong trình quản lý tác vụ - giả vờ giết tiến trình và báo cáo không có lỗi (ví dụ: Truy cập bị từ chối) nhưng quá trình vẫn còn đó.

  • taskkill /PID <proc id> /F- báo cáo SUCCESS: The process with PID 6672 has been terminated.nhưng quá trình vẫn đang chạy.

  • đã tải xuống SysIternals PsTools và chạy pskill <PID>- báo cáo Process <PID> killed- tuy nhiên quá trình vẫn còn đó.

  • thực hiện at hh:mm pskill <PID>để có được pskillđiều này như SYSTEMtài khoản ... và bạn đoán nó là quá trình vẫn đang chạy.

Tất cả các mục trên được chạy trong dấu nhắc lệnh của Quản trị viên.

Khác với khởi động lại không thực sự lý tưởng (hộp là một máy chủ sản xuất quan trọng khá nhiệm vụ), tôi có thể thử cái gì khác?

Máy chủ không chịu bất kỳ áp lực tài nguyên nào (bộ nhớ, CPU, đĩa, v.v.) và mọi thứ chạy trên nó đều hoạt động tốt.

Khi xem nhanh tab chủ đề trong SysIternals Process Explorer cho thấy tất cả các nsclient++.exetrường hợp này đều bị kẹt khi tải:

nhập mô tả hình ảnh ở đây

Bên cạnh đó, tôi cũng đã cố gắng giết tất cả các kết nối TCP cho các quá trình zombie (?) Này (với TCPView) với hy vọng tôi có thể bắt đầu một phiên bản mới và nó có thể lấy được cổng 5666. Sau đó, chúng tôi có thể khởi động lại máy chủ khi mọi thứ yên tĩnh hơn, nhưng than ôi không hoạt động.


3
Nếu một tiến trình không giết được với Trình quản lý tác vụ thì nó thực sự bị kẹt trong một thói quen hạt nhân ... Vì vậy, Windows đang gặp vấn đề. Bạn có cài đặt trình điều khiển "thú vị" nào không?
Chris S

Không có gì thực sự kỳ lạ khi chạy trình điều khiển khôn ngoan. Đó là XenServer VM vì vậy có các trình điều khiển Xen thông thường mà chúng ta thường không gặp rắc rối. Chúng tôi cũng chạy R1 CDP Enterprise và dường như hoạt động trong các thông số hoạt động bình thường của chúng tôi. Tôi đã thêm ảnh chụp màn hình hiển thị tab của Thread từ procexp.exe.
Kev

Nếu bạn nhấp vào Stack, ngăn xếp trông như thế nào đối với các chủ đề bị mắc kẹt?
HeatfanJohn

@HeatfanJohn - Tôi cũng nghĩ vậy nhưng gặp lỗi "Lỗi khi truy cập chuỗi" khi tôi làm điều đó.
Kev

Tôi đoán là có liên quan đến nhận xét của @ChrisS về việc bị mắc kẹt trong một thói quen hạt nhân.
HeatfanJohn

Câu trả lời:


3

Mặc dù có vẻ như bạn đã tìm ra điều này rồi, nhưng vấn đề là quá trình này đang chờ Kernel cho một cái gì đó. .

Có thể đáng để thử một số gỡ lỗi kernel ( công cụ này có hoạt động trên 2008 R2 không?) Với hy vọng thu hẹp nguyên nhân hoặc xung đột cụ thể, nhưng các tùy chọn của bạn để xử lý sự cố là sống với nó hoặc khởi động lại máy chủ để loại bỏ nó.

Có một lý do bạn không nghĩ đến việc sống với nó? Nếu đó chỉ là một quá trình zombie và nó không ảnh hưởng gì, tôi nghĩ bạn có thể tắt khởi động lại cho đến khi cửa sổ bảo trì hoặc có nhiều thời gian hơn. Điển hình là cách tiếp cận của tôi, khi quá trình zombie hoặc hung không can thiệp vào bất cứ điều gì - hãy chăm sóc nó trong chu kỳ vá tiếp theo hoặc cửa sổ bảo trì theo lịch trình.


Đáng buồn là quá muộn để kiểm tra các quy trình này trong WinDbg, các cơ sở hạ tầng đã khởi động lại máy chủ. Nhưng tiện dụng để biết cho lần sau.
Kev

Vấn đề khác là chúng ta không thể sống với nó như thế này. Dịch vụ này là NSClient ++ mà chúng tôi sử dụng kết hợp với nagios. Tôi thậm chí không thể có được một dịch vụ mới để chạy và đáp ứng các yêu cầu bỏ phiếu, tôi nghĩ bởi vì các quy trình được khoanh vùng này vẫn đang treo trên cổng 5666 mà nó lắng nghe (chắc chắn có thể thấy một trong số chúng vẫn đang giữ cổng trong TCPView và tôi không thể đóng nó).
Kev

Chà, đó chắc chắn là một lý do rất tốt để không sống với nó.
HoplessN00b

Nếu điều đó xảy ra một lần nữa, đừng quên một đứa trẻ khác của Mark Russinovich - Process Monitor. Chỉ procmon vào quá trình để xem những gì nó đang làm. Công cụ tuyệt vời.
Simon Catlin

@SimonCatlin - aye, tôi cũng đã làm điều đó nhưng không có gì thực sự nhảy ra khỏi tôi.
Kev
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.