Saya punya laptop dengan sistem Win 7 32-bit yang ditenagai oleh Pentium dual-core (ini laptop 2010). Terkadang berfungsi dengan baik, tetapi biasanya idle pada beban CPU 100%. CPU dikonsumsi oleh dua proses svchost.exe (masing-masing 50%). Sejauh yang saya mengerti, ini adalah host layanan. Apakah ada cara untuk mengetahui layanan mana yang menjadi pelakunya?
Catatan: ini terjadi bahkan dalam mode aman.
Jawaban:
Sebagai contoh host svchost.exe beberapa layanan sistem, berikut adalah cara memisahkan layanan, masing-masing dengan instans miliknya sendiri svchost.exe, untuk mengetahui layanan mana yang mengkonsumsi CPU.
Prosedurnya adalah sebagai berikut:
Gunakan Task Manager untuk menunjukkan semua proses yang diurutkan berdasarkan CPU menurun dan tandai PID dari proses yang menggunakan CPU
Di Command Prompt (cmd) masukkan perintah
Tasklist /svc /fi "IMAGENAME eq svchost.exe"
Contoh svchost.exe yang bermasalah sekarang dapat ditemukan oleh PID mereka dan di sebelah kanan Anda akan menemukan daftar layanan sistem yang mereka host
Untuk setiap nama dalam daftar, masukkan perintah berikut dalam Command Prompt (cmd) yang dijalankan sebagai administrator:
sc config <name> type= own
(Catat ruang antara '=' dan 'milik')
Mulai ulang
Layanan sistem yang Anda pisahkan sekarang masing-masing akan berjalan dalam instance sendiri svchost.exe dan dapat dilihat di Task Manager di tab Processes. Anda dapat mengklik kanan pada instance dan memilih "Pergi ke Layanan" untuk langsung ke layanan, atau menggunakan lagi perintah daftar tugas.
Untuk informasi lebih lanjut, lihat artikel Microsoft
Memulai dengan Pemecahan Masalah SVCHOST.EXE .
sumber
Explorer proses membuatnya mudah. Saya telah mengkonfirmasi ini bekerja dengan Process Explorer v16.20 pada 64-bit Windows 7 Professional dan 64-bit Windows 10 Pro.
svchost.exe
proses dengan nilai tinggi (atau bahkan hanya terukur / tidak kosong) diCPU
kolom. Penyortiran berdasarkan kolomProcess
atauCPU
dapat membantu dengan ini.svchost.exe
proses dan pilihProperties...
.Threads
tab. Semua utas dalam proses ini akan ditampilkan.CPU
kolom. Mengurutkan berdasarkanCPU
kolom dapat membantu dengan ini.Service
kolom akan menampilkan nama layanan yang thread yang sedang berjalan.Jika nama layanan tidak Anda kenal ...
Services
tab. Semua layanan yang berjalan dalam proses ini akan ditampilkan.Service
kolom padaServices
tab dengan nilaiService
kolom padaThreads
tab yang Anda temukan di langkah 6.Display Name
kolom akan menampilkan nama ramah layanan. Deskripsi layanan yang dipilih akan muncul di bawah daftar layanan.sumber
Anda dapat menggunakan Pengelola Tugas . Ada cara lain (baris perintah, atau bahkan menulis beberapa program menggunakan WinAPI ), tetapi saya tidak akan membahasnya di sini. Sebelum melangkah lebih jauh, pengguna Anda harus memiliki hak administratif.
Pada tab Proses :
Kembali ke tab Processes , klik pada header kolom CPU sehingga proses akan dipesan oleh konsumsi CPU mereka (perhatikan bahwa proses mungkin ditampilkan dalam urutan naik / turun - setiap klik pada CPU mengalihkan pesanan), klik sampai 2 proses muncul di bagian atas tabel. Sekarang Anda dapat melihat baris perintah mereka (saya tidak tahu tetapi saya merasa bahwa salah satunya adalah
netsvcs
(Layanan Jaringan)) dan juga PID mereka.Selanjutnya, Anda harus mencocokkan 2 proses dengan layanan. Untuk itu Anda bisa:
EDIT0 : Jawaban yang diperbarui untuk memberikan pendekatan yang lebih sederhana (dan lebih masuk akal), daripada menggaruk sisi kepala kanan saya menggunakan gaya tangan kiri saya , yang awalnya saya posting.
sumber