Setelah Windows 10 Fall Creators Update, instance svchost.exe selalu menggunakan waktu CPU

10

Sejak menginstal Pembaruan Windows 10 Fall Creators, saya memiliki svchost.exeproses yang terus-menerus menggunakan sekitar 14% dari waktu CPU:

grafik pemanfaatan CPU

Mesin svchost.exevirtual ini bertanggung jawab untuk meng-hosting tiga layanan:

Mesin Penyaring Basis, CoreMessaging, Firewall Windows Defender

Waktu CPU digunakan oleh utas di dalam proses itu yang tidak dapat dikaitkan oleh Peretas Proses dengan salah satu dari tiga layanan ini:

tangkapan layar dari Process Hacker

Mengingat ketiga layanan ini dianggap sebagai layanan sistem kritis, sulit untuk melakukan apa pun tentang mereka. Layanan ini tidak dapat dihentikan atau dinonaktifkan oleh services.msc, dan menghentikan proses memicu bugcheck ( CRITICAL_PROCESS_DIED). Menonaktifkan Windows Defender Firewall melalui pengaturan UI tidak mengurangi penggunaan CPU.

Saya kehabisan ide. Apa yang menyebabkan ini? Bagaimana saya bisa men-debug ini lebih lanjut? Apakah ada solusi untuk menghentikan layanan ini?


Pembaruan: Setelah beberapa debug dengan @HelpingHand , kami telah mengisolasi ini ke layanan Windows Defender Firewall. Monitor Proses memperlihatkan bahwa ia secara konstan mengakses registri:

tangkapan layar dari Process Monitor

Ekspor CSV dari tangkapan Monitor Proses, yang difilter ke proses itu, tersedia di sini .

Saya masih mencari cara untuk menghentikan perilaku itu.


Pembaruan 2: Analisis dengan Windows Performance Analyzer menunjukkan bahwa sebagian besar waktu CPU dikonsumsi oleh kode dari rpcrt4.dll:

tangkapan layar dari Windows Performance Analyzer

fefrei
sumber
1
Jika Anda menjalankan 2 perintah berikut dalam prompt admin dan mulai kembali; jika ada, yang proses svchost menyebabkan CPU tinggi kemudian: Sc config BFE type= ownkemudianSc config MpsSvc type= own
HelpingHand
1
Karena Anda sudah memiliki Proses Peretas, jika Anda menemukan proses svchost yang menjadi tuan rumah BFE misalnya. Jika Anda mengklik dua kali pada nama layanan di tab layanan, kemudian melihat tab keamanan, saya akan berpikir Administrator akan mengubah hak konfigurasi. Di atas bekerja untuk saya.
HelpingHand
1
Mungkin Anda sekarang dapat menjalankan Process Monitor dengan itu difilter ke PID itu. Lihat apa yang muncul.
HelpingHand
1
Itu di komputer saya juga. TBH, saya pikir taruhan terbaik Anda adalah menginstal alat Windows Performance Toolkit - docs.microsoft.com/en-us/windows-hardware/test/wpt . Pada dasarnya Anda akan menggunakan Windows Performance Recorder untuk menangkap file jejak dan Windows Performance Analyzer untuk menganalisisnya. channel9.msdn.com/Shows/Defrag-Tools memiliki beberapa pertunjukan bagus tentang ini.
HelpingHand
1
jangan urutkan berdasarkan modul. hapus kolom ini. juga melacak acara RPC. unduh file ini , jalankan WPRUI.exe, klik tambahkan profil, pilih WPRP yang diunduh, pilih Profil Penggunaan CPU dan profil Penggunaan Jaringan di bawah Pengukuran khusus. klik mulai dan tangkap penggunaan selama 30-an. sekarang lihat PID mana yang memiliki penggunaan cpu tinggi dan dalam grafik generik / filter tabel untuk exe dengan penggunaan tinggi dan peristiwa RPC dan lihat mana tindakan rpc dilakukan
magicandre1981

Jawaban:

11

Ternyata, ini terkait dengan Internet Connection Sharing (ICS).

Berikut ini, saya ingin menggambarkan bagaimana saya sampai pada kesimpulan ini dengan harapan itu membantu orang lain dengan masalah yang sama.


Langkah pertama adalah mengidentifikasi layanan yang menyebabkan masalah. Sementara Task Manager Windows sendiri juga telah belajar untuk melakukan ini baru-baru ini, saya menggunakan Process Hacker yang juga dapat mengedit konfigurasi layanan.

Mengklik dua kali svchost.exeinstance yang menyinggung dan memilih tab Layanan menunjukkan layanan mana yang berjalan di dalam proses itu:

Properti svchost.exe (1688)

svchost.exedapat meng-host banyak layanan Windows secara bersamaan, sehingga sulit untuk mengidentifikasi layanan mana yang menyebabkan masalah. Sementara versi terbaru dari Windows 10 biasanya mengisolasi layanan ketika RAM yang cukup tersedia , beberapa layanan masih berbagi proses.

Ini adalah kasus yang demikian, dan cara termudah untuk mengidentifikasi layanan mana yang menyebabkan masalah adalah dengan memisahkannya.

Peretas Proses dapat melakukan ini. Di tab Layanan windows utamanya , kami dapat mengonfigurasi apakah suatu layanan dapat berbagi proses:

Properti MpsSvc

Setidaknya dua dari tiga layanan yang dicurigai perlu dikonfigurasi sebagai Proses Sendiri untuk memastikan mereka terpisah di masa depan.

Rupanya, Windows Defender tidak suka pengguna ikut campur dengan konfigurasi layanannya, jadi untuk berhasil mengubah pengaturan ini, saya perlu

  • beri grup Administrators Akses Penuh pada layanan itu,
  • nonaktifkan layanan,
  • reboot agar layanan dihentikan (tidak dapat dihentikan secara terpisah),
  • ubah jenis layanan menjadi Proses Sendiri dan aktifkan kembali layanan (setel ke Mulai Otomatis ) dan
  • reboot untuk terakhir kalinya untuk menerapkan perubahan ini.

Setelah itu, pelaku svchost.exehanya meng-host layanan tunggal, jadi kami memiliki tersangka:

Windows Defender Firewall (MpsSvc)

Untuk menganalisis apa yang terjadi di dalam layanan firewall, kami akan menggunakan alat Windows Performance Recorder dan Windows Performance Analyzer, bagian dari Windows ADK .

Kami akan mulai dengan merekam beberapa data. Sementara tersangka svchost.exemembuang di latar belakang, unduh file ini , tambahkan sebagai profil, atur Windows Performance Recorder seperti ini dan mulai rekaman:

Windows Performance Recorder: periksa triage tingkat pertama dan Profil Penggunaan CPU

Biarkan rekaman berjalan sekitar 30 detik, kemudian simpan rekaman. Setelah menyimpan, klik Buka di WPA untuk segera membukanya untuk analisis.

Di sinilah segalanya mulai menjadi rumit. Dalam kasus saya, saya memerlukan petunjuk dari @ magicandre1981 untuk mencari di tempat yang tepat, di bawah System ActivityGeneric Events . Di sana, jumlah acara RPC tampak sangat mencurigakan:

46.918 Acara Microsoft-Windows-RPC

Mengebor ke bawah, Firewall Pembela Windows svchost.exebanyak muncul di sisi Serverwin:Start dan win:Stopacara:

RpcServerCall

Langkah selanjutnya adalah mencari tahu siapa yang mengirim panggilan RPC ini. Dengan melihat di sisi klien, svchost.execontoh lain tampak mencurigakan:

RpcClientCall

Memang, Process Hacker tidak dapat mendeteksi layanan yang berjalan di dalam proses itu, yang juga secara konsisten menyebabkan beban CPU:

Nama grup layanan: netsvcs

Dalam kasus ini, Task Manager Windows berhasil mengidentifikasi layanan:

Berbagi Sambungan Internet (ICS)

Memang, layanan macet di negara Memulai . Saya telah menonaktifkannya karena saya tidak membutuhkannya, dan beban CPU telah kembali normal setelah reboot berikutnya.


Saya ingin mengucapkan terima kasih kepada @HelpingHand dan @ magicandre1981 yang membantu dalam komentar membuat ini mungkin.


Seperti yang kemudian ditemukan di posting TenForums , mengatur ulang Windows Defender Firewall memperbaiki masalah ini.

fefrei
sumber
@HelpingHand: apa yang terjadi jika seseorang menonaktifkan Internet Connection Sharing (ICS)layanan? Apakah WiFi Hotspot tidak lagi menjadi pilihan?
llinfeng
Ini sedikit lebih mudah dalam Process Explorer. Jika Anda mengklik kanan "svchost.exe" yang menggunakan jumlah prosesor konstan (kasus saya adalah 5% konstan) dan klik tab "Layanan" Anda akan melihat layanan apa yang berjalan di bawah svchost ini. Saya hanya punya satu dalam kasus ini, ICS. Demikian pula berbagi koneksi Internet saya macet dalam keadaan awal. Pergi ke "Firewall & Network Protection" Saya bisa mengklik "Kembalikan firewall ke default" - ini langsung memperbaiki masalah saya.
Howard Lince III
@ Howard: Anggap diri Anda beruntung - satu komplikasi walikota bagi saya adalah tiga layanan yang berbagi contoh masalah svchost.exe, membuatnya sulit untuk mengidentifikasi layanan yang menyebabkan ini. Saya tidak yakin mengapa mereka tidak berbagi proses host dalam contoh Anda.
fefrei
2

Ini lebih sederhana, saya telah sukses dengan mengatur ulang pengaturan Windows Firewall mereka (terutama jika ada lonjakan terkait dalam beban CPU) menggunakan instruksi ini: -

Mengatur ulang Windows Defender Firewall ke pengaturan standar menyelesaikan masalah.

Untuk melakukan ini buka Pengaturan -> Perbarui dan Keamanan -> Windows Defender -> Buka Windows Defender Security Center -> Firewall dan Perlindungan Jaringan -> Kembalikan pengaturan default Firewall

Semoga ini bisa membantu dan bekerja untuk orang lain ... Sepertinya masalah yang cukup luas.

Mohamad Osama
sumber
1
Memang, ini juga berhasil bagi saya, seperti yang saya sebutkan di bagian paling bawah dari jawaban saya. Terima kasih telah mencerminkan langkah-langkahnya di sini!
fefrei
0

Dalam kasus saya, setelah mencoba berbagai perbaikan yang tidak berhasil (termasuk beberapa saran di atas, misalnya mengatur ulang Windows Firewall), saya menonaktifkan "Layanan Kebijakan Diagnostik", dan CPU hogging akhirnya berhenti. Ini mungkin bukan solusi yang ideal, tetapi sepertinya ini bukan layanan yang kritis. Berikut cara menonaktifkannya:

  1. Buka "Konfigurasi Sistem" ('msconfig.exe') sebagai admin
  2. Tab Umum: pilih "Startup selektif"
  3. Tab Layanan: hapus centang "Layanan Kebijakan Diagnostik"
  4. Mulai ulang Windows

Terima kasih kepada saluran YouTube Ranga Rajesh Kumar karena mengarahkan saya ke solusi ini.

Philly Dee
sumber