Làm cách nào tôi có thể xác định thủ phạm gây tắt Windows chậm?


30

Máy tính của tôi mất rất nhiều thời gian để tắt máy.

Làm thế nào tôi có thể xác định thủ phạm? Tôi không muốn đợi vài phút để máy tính của tôi tắt ...

Có chương trình nào tôi có thể sử dụng để theo dõi thời gian tắt máy mất bao lâu không?


1
Chúng tôi không biết hệ thống của bạn được thiết lập như thế nào và những gì có thể chạy trong nền
ngẫu nhiên

1
OK ... Tôi thấy một người khác hỏi nó, sau đó xóa nó khi tôi đang soạn một câu trả lời rất dài và đầy đủ ... (cảm thấy tiếc cho bản thân mình)
wizlog

Bạn luôn có thể đề xuất nó cho blog
ngẫu nhiên

2
Nhấn và giữ nút nguồn trong vài giây.
Daniel R Hicks

5
Câu hỏi này là hợp lệ, tôi có thể trả lời khách quan điều này để vấn đề của anh ấy được giải quyết. Không có gì mơ hồ (vấn đề là thời gian tắt máy của anh ta mất nhiều thời gian), mơ hồ (anh ta muốn tăng tốc độ tắt máy), không đầy đủ (chi tiết không cần thiết, tất nhiên mỗi máy tính đều khác nhau nhưng điều đó không tạo ra kỹ thuật để xác định thủ phạm khác nhau), quá rộng (bạn có thể nghĩ vậy, nhưng tôi không thấy bất kỳ câu hỏi nào khác về việc tắt máy vì vậy đây là một câu hỏi thực sự có giá trị ; tôi nghĩ nó sẽ rộng nếu anh ta muốn tăng tốc những thứ khác ) hoặc hùng biện (Nó liên quan đến xperf).
Tamara Wijsman

Câu trả lời:


31

Windows cung cấp Bộ đếm hiệu suất cũng như Theo dõi sự kiện cho phép các ứng dụng phân tích hiệu suất để người ta có thể xác định chính xác nguyên nhân của các vấn đề về hiệu suất, trong số đó có một bộ công cụ nổi bật: Bộ công cụ hiệu suất Windows có sẵn trong SDK Windows .

Trong bộ công cụ này, bạn sẽ tìm thấy xbootmgr.exe, có nghĩa là Phân tích Hiệu suất Chuyển đổi Bật / Tắt của Windows .

Mặc dù tài liệu được liên kết ở trên đi vào tất cả các chi tiết cho mỗi lần chuyển đổi bật / tắt, đây là ý tưởng chung về theo dõi và phân tích quá trình chuyển đổi tắt máy bằng cách sử dụng xbootmgrvà GUI xperf:

  1. Tải xuống Windows SDK, sau đó cài đặt Bộ công cụ hiệu suất Windows bằng cách sử dụng nó.

  2. Mở một dấu nhắc lệnh với tư cách quản trị viên, sau đó chạy:

    cd %ProgramFiles%\Microsoft Windows Performance Toolkit

  3. Nếu bạn muốn giúp đỡ trong tương lai, bạn có thể gõ xbootmgr -helpcũng như xperf /?.

  4. Thực hiện theo dõi khởi động lại như thế này:

    xbootmgr -trace shutdown -traceFlags BASE+DIAG+LATENCY -noPrepReboot

  5. Sau khi khởi động, nó sẽ tạo ra một dấu vết trong vòng hai phút.

  6. Theo dõi đã được lưu vào %ProgramFiles%\Microsoft Windows Performance Toolkit, bạn có thể kéo nó vào xperf.exevà nó sẽ được mở trong GUI.

  7. Bạn sẽ thấy một GUI với các biểu đồ khác nhau, mũi tên ở bên trái cho phép bạn thêm / xóa biểu đồ.

  8. Nhìn vào biểu đồ và xem nếu bạn có thể xác định bất cứ điều gì khác thường, bạn có thể chọn một khoảng và phóng to nó nếu bạn muốn. Nhấp chuột phải và unzoom khi bạn muốn xem toàn bộ.

  9. Đối với mỗi biểu đồ, bạn có thể nhấp chuột phải để nhận các bảng tóm tắt cho khoảng thời gian hiện được chọn .

  10. Trong các bảng này, sắp xếp theo trọng lượng hoặc theo thời gian để tìm ra nó chi tiêu nhiều nhất. Xin lưu ý rằng bạn có thể kéo quanh các cột, vì vậy, ví dụ bảng I / O cho phép bạn kiểm tra quá trình sử dụng cao nhất cũng như đường dẫn sử dụng cao nhất.

    Bộ chia (một cột tiêu đề màu vàng) làm cho nó sao cho các cột bên phải của nó hiển thị tổng số cho các cột bên trái của nó. Vì vậy, nếu bạn có Đường dẫn trước và sau đó là Quá trình, thì bạn có thể mở cây cho tệp để xem quy trình nào đã truy cập vào đó và sau đó bạn nhận được tổng số cho kết hợp quy trình / tệp đó.

  11. Bạn có thể tìm thêm thông tin về cách đồ thị và bảng hoạt động ở đây .

  12. Nếu bạn bằng cách nào đó cần phải đi xuống để xem xét các dấu vết ngăn xếp; thực hiện một dấu vết khởi động khác và nối thêm -stackWalk profiletham số, đặt _NT_SYMBOL_PATH và nhấp chuột phải vào bất kỳ biểu đồ nào và bật "Tải biểu tượng". Điều này sẽ cho phép bạn kiểm tra những chức năng mà nó thực sự đang gọi, nói chung bạn sẽ không cần điều này để tắt máy; nhưng nó có thể cho phép những thứ như phát hiện ra rằng tường lửa của bạn đang can thiệp vào trình gỡ lỗi của bạn với tư cách là một lập trình viên. Khá tiện lợi ...

Chúc may mắn, tôi hy vọng bạn có thể tìm ra thủ phạm. Nếu không thì hãy bỏ dấu vết và chúng tôi sẽ xem xét cho bạn ...

Xin lưu ý rằng các DPC là các cuộc gọi và ngắt thủ tục bị trì hoãn là các ngắt phần mềm , cả hai đều liên quan đến trình điều khiển / phần cứng.


1
Câu trả lời hữu ích tuyệt vời. Bất kỳ hướng dẫn nào về ETW đều rất hữu ích; đó là một lĩnh vực của Windows không có tài liệu và không có hướng dẫn.
Ian Boyd

@Tom Wijsman Liên kết cần được cập nhật
Moab

Giờ đây, nó là một phần của Bộ đánh giá và triển khai Windows, có thể tìm thấy một Liên kết, ví dụ như tại msdn.microsoft.com/en-us/windows/hardware/commIALize/test/ , hoặc đơn giản bằng cách tìm kiếm "Windows ADK". Trong quá trình cài đặt, có thể chỉ cần chọn Bộ công cụ hiệu suất.
Andreas Reiff

Bây giờ nó cũng là một phần ..., bởi vì nó vẫn có sẵn trong SDK.
Tamara Wijsman

22

Tôi tắt máy mất nhiều thời gian để chạy. Điều gì sau đây là ví dụ của tôi với câu trả lời của Tom .

Biểu đồ đầu tiên cho thấy vấn đề, Đĩa I / O :

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

Việc tắt máy của tôi mất hơn một phút và tất cả đều là I / O ổ cứng.

Biểu đồ tiếp theo, Sử dụng đĩa cho thấy một ổ đĩa gần như tối đa với mức sử dụng 100%:

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

Biểu đồ cuối cùng cho thấy việc sử dụng đĩa theo quy trình :

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

Lọc xuống tôi nhận ra tất cả là do WinInit.exe:

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

Bằng cách nhấp chuột phải vào bất kỳ biểu đồ ổ cứng nào và chọn Bảng Tóm tắt , tôi có thể biết chi tiết về các tệp được truy cập theo quy trình nào:

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

56,4 giây tắt máy của tôi đã được sử dụng bằng cách WinInitviết 6,7GB C:\hiberfil.sys.


Nhưng câu hỏi là tại sao Windows ghi vào tệp ngủ đông của tôi khi tắt máy ?

Sau đó, tôi nhớ một tùy chọn tôi đã bật để xóa tập tin phân trang đó khi tắt máy:

  • Bắt đầu -> Chạy -> SecPol.msc
    • Cài đặt bảo mật, Chính sách cục bộ, Tùy chọn bảo mật
    • Tắt máy: Xóa trang bộ nhớ ảo

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

Vì vậy, tôi vô hiệu hóa tùy chọn, và chạy xbootmgrlại. Bây giờ tắt máy của tôi là 22 giây:

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

Bây giờ 9scác 22sshutdown được chi bằng Systemvăn bản cho một số unknowntập tin. Điều đó có thể xứng đáng để điều tra nhiều hơn.

Nhưng bây giờ tôi đã giải quyết được một phút rưỡi tắt máy.


tôi đã đi xa hơn và giải quyết việc tắt máy chậm 22 tuổi. Từ t = 12sđến t = 21shiển thị 100% sử dụng đĩa , nhưng không có I / O đĩa . Đó là một trở ngại.

Cho đến khi tắt máy, tôi nghe thấy âm thanh quen thuộc của một trong những ổ đĩa của mình. Việc tắt máy đã bị đình trệ trong 9 giây vì Windows đang cố truy cập vào một đĩa đã đi ngủ. Chín giây sau, ổ đĩa phản hồi và một lát sau máy tắt.

Trớ trêu rằng Windows đánh thức một đĩa để nói với nó rằng đã đến giờ đi ngủ.

Điều đó sẽ làm cho tắt máy thực tế của tôi 13,5 giây. Đó có thể là giá trị điều tra nhiều hơn. Nhưng bây giờ tôi đã giải quyết được việc tắt máy 22 giây.


1
+1 Rất vui vì bạn đã giải quyết nó trong trường hợp của bạn và bài đăng hay!
Tamara Wijsman

1
Những câu trả lời xứng đáng với một bài viết blog bạn không nghĩ? ;)
Ivo Flipse
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.