Sau Windows 10 Fall Creators Update, một phiên bản svchost.exe liên tục sử dụng thời gian CPU


10

Kể từ khi cài đặt Windows 10 Fall Creators Update, tôi có một svchost.exequá trình liên tục sử dụng khoảng 14% thời gian CPU:

đồ thị sử dụng CPU

Trường svchost.exehợp này chịu trách nhiệm lưu trữ ba dịch vụ:

Công cụ lọc cơ sở, CoreMessaging, Tường lửa bảo vệ Windows

Thời gian CPU được sử dụng bởi một luồng bên trong quy trình mà Process Hacker không thể gán cho bất kỳ dịch vụ nào trong ba dịch vụ sau:

ảnh chụp màn hình từ Process Hacker

Cho rằng ba dịch vụ này được coi là dịch vụ hệ thống quan trọng, thật khó để làm bất cứ điều gì về chúng. Các dịch vụ này không thể bị dừng hoặc vô hiệu hóa services.mscvà chấm dứt quá trình kích hoạt bugcheck ( CRITICAL_PROCESS_DIED). Vô hiệu hóa Tường lửa bảo vệ Windows thông qua giao diện người dùng cài đặt không làm giảm việc sử dụng CPU.

Tôi hết ý tưởng rồi. Điều gì có thể gây ra điều này? Làm thế nào tôi có thể gỡ lỗi này hơn nữa? Có một cách giải quyết để ngăn chặn các dịch vụ này?


Cập nhật: Sau một số gỡ lỗi với @HelpingHand , chúng tôi đã tách biệt điều này với dịch vụ Tường lửa của Windows Defender. Process Monitor cho thấy rằng nó liên tục truy cập vào sổ đăng ký:

ảnh chụp màn hình từ Process Monitor

Xuất khẩu CSV của bản chụp Trình theo dõi tiến trình, được lọc theo quy trình đó, có sẵn tại đây .

Tôi vẫn đang tìm cách để ngăn chặn hành vi đó.


Cập nhật 2: Phân tích với Trình phân tích hiệu suất Windows cho thấy phần lớn thời gian CPU được sử dụng bởi mã từ rpcrt4.dll:

ảnh chụp màn hình từ Windows Performance Analyzer


1
Nếu bạn chạy 2 lệnh sau trong dấu nhắc quản trị viên và khởi động lại; nếu có, quá trình svchost nào gây ra CPU cao thì: Sc config BFE type= ownsau đóSc config MpsSvc type= own
HelpingHand

1
Như bạn đã có Process Hacker, nếu bạn tìm thấy quy trình svchost đang lưu trữ BFE chẳng hạn. Nếu bạn nhấp đúp chuột vào tên dịch vụ trong tab dịch vụ, sau đó xem tab bảo mật, tôi sẽ nghĩ Quản trị viên sẽ sửa đổi quyền cấu hình. Các công việc trên cho tôi.
HelpingHand

1
Có lẽ bây giờ bạn có thể chạy Process Monitor với nó được lọc theo bộ lọc đó. Xem những gì hiện lên.
HelpingHand

1
Nó làm trên máy tính của tôi là tốt. TBH, tôi nghĩ rằng cách tốt nhất của bạn là cài đặt các công cụ Windows Performance Toolkit - docs.microsoft.com/en-us/windows-hardware/test/wpt . Về cơ bản, bạn sẽ sử dụng Windows Performance Recorder để chụp tệp theo dõi và Windows Performance Analyzer để phân tích. channel9.msdn.com/Shows/Defrag-Tools có một số chương trình hay về những điều này.
HelpingHand

1
không sắp xếp theo mô-đun. loại bỏ cột này. cũng theo dõi các sự kiện RPC. tải xuống tệp này , chạy WPRUI.exe, nhấp vào thêm hồ sơ, chọn WPRP đã tải xuống, chọn Cấu hình sử dụng CPU và hồ sơ sử dụng mạng trong các phép đo Tùy chỉnh. nhấp vào bắt đầu và nắm bắt việc sử dụng trong 30 giây. Bây giờ hãy xem PID nào có mức sử dụng cpu cao và trong bộ lọc biểu đồ / bảng sự kiện chung cho exe với mức độ sử dụng cao và các sự kiện RPC và xem hành động rpc nào được thực hiện
magicandre1981

Câu trả lời:


11

Hóa ra, điều này có liên quan đến Chia sẻ kết nối Internet (ICS).

Sau đây, tôi muốn mô tả làm thế nào tôi đi đến kết luận này với hy vọng nó sẽ giúp những người khác gặp vấn đề tương tự.


Bước đầu tiên là xác định dịch vụ gây rắc rối. Trong khi Trình quản lý tác vụ riêng của Windows cũng đã học cách thực hiện điều này gần đây, tôi đã sử dụng Trình xử lý quy trình cũng có thể chỉnh sửa cấu hình của dịch vụ.

Bấm đúp vào svchost.exetrường hợp vi phạm và chọn tab Dịch vụ cho biết dịch vụ nào đang chạy bên trong quy trình đó:

Thuộc tính svchost.exe (1688)

svchost.execó thể lưu trữ nhiều dịch vụ Windows cùng một lúc, khiến cho việc xác định dịch vụ nào gây rắc rối trở nên khó khăn. Mặc dù các phiên bản gần đây của Windows 10 thường cách ly các dịch vụ khi có đủ RAM , một số dịch vụ vẫn chia sẻ một quy trình.

Đây là một trường hợp như vậy và cách dễ nhất để xác định dịch vụ nào gây ra sự cố là tách chúng ra.

Quá trình Hacker có thể làm điều này. Trong tab Dịch vụ của cửa sổ chính , chúng tôi có thể định cấu hình liệu dịch vụ có thể chia sẻ quy trình hay không:

Thuộc tính MpsSvc

Ít nhất hai trong số ba dịch vụ nghi ngờ cần được cấu hình là Quy trình riêng để đảm bảo chúng được phân tách trong tương lai.

Rõ ràng, Windows Defender không thích người dùng can thiệp vào cấu hình dịch vụ của nó, vì vậy để thay đổi thành công cài đặt này, tôi cần phải

  • cấp cho nhóm Quản trị viên Toàn quyền truy cập vào dịch vụ đó,
  • vô hiệu hóa dịch vụ,
  • khởi động lại để dịch vụ bị dừng (không thể dừng riêng),
  • thay đổi loại dịch vụ thành Quy trình riêng và bật lại dịch vụ (đặt thành Tự động bắt đầu ) và
  • khởi động lại lần cuối để áp dụng những thay đổi này.

Sau đó, việc vi phạm svchost.exechỉ lưu trữ một dịch vụ duy nhất, vì vậy chúng tôi có nghi ngờ:

Tường lửa bảo vệ Windows (MpsSvc)

Để phân tích những gì bên trong dịch vụ tường lửa, chúng tôi sẽ sử dụng công cụ Windows Performance Recorder và Windows Performance Analyzer, một phần của Windows ADK .

Chúng tôi sẽ bắt đầu bằng cách ghi lại một số dữ liệu. Trong khi nghi phạm svchost.exeđang rúc vào nền, hãy tải xuống tệp này , thêm nó dưới dạng hồ sơ, thiết lập Windows Performance Recorder như thế này và bắt đầu ghi âm:

Windows Performance Recorder: kiểm tra phân loại cấp đầu tiên và hồ sơ sử dụng CPU

Để bản ghi chạy trong 30 giây hoặc lâu hơn, sau đó lưu bản ghi. Sau khi lưu, bấm Mở trong WPA để mở ngay lập tức để phân tích.

Đây là nơi mọi thứ bắt đầu trở nên khó khăn. Trong trường hợp của tôi, tôi cần một gợi ý từ @ magicandre1981 để tìm đúng nơi, trong Hoạt động hệ thốngSự kiện chung . Ở đó, số lượng các sự kiện RPC trông cao đáng ngờ:

46.918 sự kiện Microsoft-Windows-RPC

Khoan xuống, Firewall của Windows Defender svchost.exeđược hiển thị rất nhiều vào các máy chủ bên win:Startwin:Stopcác sự kiện:

RpcServerCall

Bước tiếp theo là tìm ra ai đã gửi các cuộc gọi RPC này. Bằng cách nhìn vào phía khách hàng, một svchost.exetrường hợp khác có vẻ đáng ngờ:

RpcClientCall

Thật vậy, Process Hacker không thể phát hiện ra một dịch vụ chạy bên trong tiến trình đó, điều này cũng liên tục gây ra tải CPU:

Tên nhóm dịch vụ: Netsvcs

Trong trường hợp này, Trình quản lý tác vụ của Windows đã thành công trong việc xác định dịch vụ:

Chia sẻ kết nối Internet (ICS)

Thật vậy, dịch vụ đã bị kẹt trong trạng thái Bắt đầu . Tôi đã tắt nó vì tôi không cần nó và tải CPU đã trở lại bình thường sau lần khởi động lại tiếp theo.


Tôi muốn bày tỏ lòng biết ơn của tôi đối với @HelpingHand và @ magicandre1981 có sự giúp đỡ trong các bình luận đã giúp điều này trở nên khả thi.


Như sau đó đã được phát hiện trong bài đăng TenForums , việc đặt lại Windows Defender Firewall khắc phục vấn đề này.


@HelpingHand: điều gì xảy ra nếu một người vô hiệu hóa các Internet Connection Sharing (ICS)dịch vụ? WiFi Hotspot sẽ không còn là một lựa chọn?
llinfeng

Điều này dễ hơn một chút trong Process Explorer. Nếu bạn nhấp chuột phải vào "svchost.exe" đang sử dụng số lượng bộ xử lý không đổi (trường hợp của tôi là 5% không đổi) và nhấp vào tab "Dịch vụ", bạn sẽ thấy (các) dịch vụ nào đang chạy trong Svchost này. Tôi chỉ có một trong trường hợp này, ICS. Tương tự như vậy, việc chia sẻ kết nối Internet của tôi bị kẹt trong trạng thái bắt đầu. Đi tới "Tường lửa & Bảo vệ mạng" Tôi có thể nhấp vào "Khôi phục tường lửa về mặc định" - điều này đã khắc phục ngay sự cố của tôi.
Howard Lince III

@Howard: Hãy coi mình là người may mắn - một biến chứng của thị trưởng đối với tôi là ba dịch vụ chia sẻ trường hợp có vấn đề svchost.exe, khiến việc xác định dịch vụ gây ra điều này trở nên khó khăn. Tôi không chắc tại sao họ không chia sẻ quy trình lưu trữ trong ví dụ của bạn.
fefrei

2

Đơn giản hơn, tôi đã thành công bằng cách đặt lại cài đặt Tường lửa Windows của họ (đặc biệt nếu có sự tăng đột biến liên quan đến tải CPU) bằng cách sử dụng hướng dẫn sau: -

Đặt lại Tường lửa Windows Defender về cài đặt mặc định đã giải quyết được sự cố.

Để thực hiện việc này, hãy mở Cài đặt -> Cập nhật và bảo mật -> Windows Defender -> Mở Trung tâm bảo mật Windows Defender -> Tường lửa và bảo vệ mạng -> Khôi phục cài đặt mặc định của tường lửa

Hy vọng điều này sẽ giúp và làm việc cho người khác ... Có vẻ như là một vấn đề khá phổ biến.


1
Thật vậy, điều này cũng làm việc cho tôi, như tôi đã đề cập ở dưới cùng của câu trả lời của tôi. Cảm ơn đã phản ánh các bước ở đây!
fefrei

0

Trong trường hợp của tôi, sau khi thử các bản sửa lỗi không thành công khác nhau (bao gồm một số đề xuất ở trên, ví dụ như đặt lại Tường lửa Windows), tôi đã vô hiệu hóa "Dịch vụ chính sách chẩn đoán" và cuối cùng CPU cũng bị ngừng hoạt động. Đây có thể không phải là giải pháp lý tưởng, nhưng dường như nó không phải là một dịch vụ quan trọng. Đây là cách vô hiệu hóa nó:

  1. Mở "Cấu hình hệ thống" ('msconfig.exe') với tư cách quản trị viên
  2. Tab Chung: chọn "Khởi động chọn lọc"
  3. Tab dịch vụ: bỏ chọn "Dịch vụ chính sách chẩn đoán"
  4. Khởi động lại Windows

Cảm ơn kênh YouTube của Ranga Rajesh Kumar đã chỉ cho tôi hướng tới giải pháp này.

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.