Svchost.exe ile anormal CPU kullanımı nasıl teşhis edilir? [çiftleme]


19

Çift çekirdekli Pentium ile güçlendirilmiş Win 7 32 bit sistemine sahip bir dizüstü bilgisayarım var (2010 dizüstü bilgisayar). Bazen iyi çalışır, ancak genellikle% 100 CPU yükünde rölantide çalışır. CPU iki svchost.exe işlemi tarafından kullanılır (her biri% 50). Bildiğim kadarıyla, bu bir hizmet ev sahibi. Suçlu olan hangi hizmeti bulmanın bir yolu var mı?

Dikkat: Bu güvenli modda bile olur.


1
Sen svchost iki örneği altında çalışan hizmetler bakmak için süreç kaşif (kullanabilirsiniz technet.microsoft.com/en-us/sysinternals/processexplorer.aspx )
Yorik

@Yorik: Bunu düşündüm, ancak ProcessExplorer hiçbir işe yaramadı.
Menekşe Zürafa

5
Windows 7'de, şu anda svchost CPU sorunlarının>% 90'ının Windows Update hizmetiyle ilişkili olduğunu söyleyebilirim. Bir sistemi güncellemede gerçekten sorun yaşıyorsanız (eski bir işlemciyle yeni bir kurulumda zor olabilir), ağ bağlantısı olmadan KB3050265, KB3138612 ve KB3145739'u yüklemeyi deneyin. Ardından yeniden başlatın ve güncellemeleri arayın.
17'de

@ontrack: İlginç. Aslında, bu makinede güncellemeleri kontrol etmenin devre dışı olduğunu düşünüyorum, muhtemelen 2010 veya 2012'den beri güncellenmedi. Ve güncellemeleri yüklemek için hiçbir isteğim yok, sadece CPU sorununu düzeltmem gerekiyor. Haklıysanız, Windows Update hizmetinin devre dışı bırakılması yardımcı olur mu?
Violet Zürafa

bu birçok kez sorulmuştur. bkz. dup. Muhtemelen WU tarama sorununu görüyorsunuz.
Cevabımdaki adımlardan çöz

Yanıtlar:


28

Svchost.exe'nin bir örneği birden çok sistem hizmetini barındırdığı için, hangi hizmetin CPU kullandığını bulmak için hizmetlerin her birini kendi svchost.exe örneğine nasıl ayıracağımız aşağıda açıklanmıştır.

Prosedür aşağıdaki gibidir:

  1. CPU azalan şekilde sıralanan tüm işlemleri göstermek ve CPU kullanan işlemlerin PID'sini işaretlemek için Görev Yöneticisi'ni kullanın

  2. Komut İstemi'ne (cmd) komutu girin
    Tasklist /svc /fi "IMAGENAME eq svchost.exe"
    resim açıklamasını buraya girin

  3. Sorunlu svchost.exe örnekleri şimdi kendi PID tarafından bulunabilir ve sağda barındırdıkları sistem hizmetlerinin bir listesini bulacaksınız

  4. Listedeki adların her biri için Yönetici olarak çalıştır komut istemine (cmd) aşağıdaki komutu girin:
    sc config <name> type= own
    ('=' ve 'own' arasındaki boşluğu not edin)

  5. Yeniden Başlatma

Ayırdığınız sistem hizmetlerinin her biri kendi svchost.exe örneğinde çalışacak ve İşlemler sekmesindeki Görev Yöneticisi'nde görülebilir. Bir örneğe sağ tıklayıp doğrudan hizmete gitmek için "Hizmetlere Git" i seçebilir veya görev listesi komutunu tekrar kullanabilirsiniz.

Daha fazla bilgi için
SVCHOST.EXE Sorunlarını Giderme başlıklı Microsoft makalesine bakın .


7

Process Explorer bunu kolaylaştırır. Bunun 64 bit Windows 7 Professional ve 64 bit Windows 10 Pro'da Process Explorer v16.20 ile çalıştığını onayladım.

  1. İşlem Gezgini'ni yükseltti.
  2. Sütunda svchost.exeyüksek (veya yalnızca ölçülebilir / boş olmayan) değere sahip bir işlem bulun CPU. ProcessVeya CPUsütuna göre sıralama bu konuda yardımcı olabilir.
  3. svchost.exeİşlemi sağ tıklayın ve öğesini seçin Properties....
  4. İşlem özellikleri penceresinde Threadssekmeyi seçin . Bu işlemdeki tüm evreler görüntülenecektir.
  5. CPUSütunda yüksek (veya yine ölçülebilir / boş olmayan) değere sahip bir iş parçacığı bulun . CPUSütuna göre sıralama bu konuda yardımcı olabilir.Process Explorer işlem Konuları sekmesi
  6. ServiceSütun o iplik çalıştığı hizmetin adını gösterecektir.

Hizmet adı size aşina değilse ...

  1. İşlem özellikleri penceresinde Servicessekmeyi seçin . Bu işlemde çalışan tüm hizmetler görüntülenecektir.
  2. Sekmedeki Servicesütunu, 6. adımda bulduğunuz sekmedeki sütunun Servicesdeğeriyle Serviceeşleştirin Threads.Process Explorer işlem Hizmetleri sekmesi
  3. Display NameSütun hizmetin samimi adını görüntüler. Seçilen hizmetin açıklaması, hizmet listesinin altında görünecektir.

Ah, Process Explorer'ın gelişmiş işlevlerini bilmiyordum. Teşekkürler.
Violet Zürafa

3

Görev Yöneticisi'ni kullanabilirsiniz . Başka yollar da var (komut satırı, hatta WinAPI kullanarak bir program yaz ), ama burada tartışmayacağım. Daha ileri gitmeden önce, kullanıcının yönetici ayrıcalıklarına sahip olması gerekir.

Açık Süreçler sekmesi:

  • Kontrol tüm kullanıcıların işlemlerini göster .
  • "Tablo başlığı" ( Görüntü adı , PID , Kullanıcı Adı , CPU , ... gibi sütun adlarını içeren) işlemleri sağ tıklayın ve Sütun Seç ... 'i seçin .
    • İletişim kutusunda çıkar-yukarı, aşağı kaydırın ve emin kontrol yapmak Komut satırı ve PID (işlem tanımlayıcı) basın ardından OK .
  • İşlemler sekmesine geri dönün , işlemlerin CPU tüketimine göre sıralanabilmesi için CPU sütun başlığına tıklayın (işlemlerin artan / azalan sırada görüntülenebileceğini unutmayın - CPU'nun her tıklanması siparişleri değiştirir), 2 işleme kadar tıklayın tablonun üstünde görünür. Artık komut satırlarını görebiliyorsunuz (bilmiyorum ama bunlardan birinin netsvcs(Şebeke Hizmetleri) olduğunu ve PID'lerini olduğunu hissediyorum .

  • Ardından, 2 işlemi hizmetlerle eşleştirmeniz gerekir. Bunun için aşağıdakilerden birini yapabilirsiniz:

    • Sağ üzerlerinde tıklayın ve ardından servise git (ler) ... . Bu işlem, o işlemde çalışan tüm hizmetleri seçerek Hizmetler sekmesine gider (bu seçenek için önceki adımlardan hiçbirine ihtiyacınız yoktur :)).
    • Hizmetler içinde ek bileşeni mmc . Bir hizmette çift clikcing yaparken (yalnızca çalışanları kontrol etmek mantıklıdır), Yürütülebilir dosya yolu altında , eşleşmeyi yapmanız gereken komut satırlarını görebilirsiniz.
  • On W10 size ihtiyacınız kesin bilgi görüntüleyebilir Kaynak Monitör (siz onu başlayabilirsiniz Görev Yöneticisi , Performans sekmesi). Burada CPU sekmesine gidersiniz ve hizmetler ve CPU tüketimi listelenir.

EDIT0 : Başlangıçta gönderdiğim sol stilimi kullanarak sağ başımı çizmek yerine, daha basit (ve daha mantıklı) bir yaklaşım sağlamak için cevap güncellendi .


Komut satırını görebildiğini hiç fark etmedim, temiz! Harrymc'nin cevabı kadar basit değil, ama bilmek güzel.
Menekşe Zürafa

Görev Yöneticisi bunu kendi başına yapabilir. Hizmetler sekmesine geçerken bir svchost işlemi seçilirse, bu işlemde çalışan hizmetler burada seçilir.
Simon Richter

1
Gerçekten mi? On W10 (zaten seçili bazı hizmet varken en azından) bu olmaz. Tek yol süreci rclick ', ve sonra Git servis (ler) (kaçırdığım seçenek - büyük olasılıkla W7 de var) seçin. Maalesef kontrol edemiyorum.
CristiFati

1
@CristiFati bu seçenek Windows Vista'dan beri var (kaynak: technet.microsoft.com/en-us/library/ff642468.aspx ), muhtemelen PID eşleşmesi yerine cevabınıza eklemelisiniz
Vasily Alexeev
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.