Görev Yöneticisi svchost.exe dosyasının genel bellek kullanımını gösterir. Bireysel hizmetlerin bellek kullanımını görmenin bir yolu var mı?
Bunun svchost.exe'deki iyi performans raporuna benzer olduğuna dikkat edin
İstediğiniz bilgileri almanın kolay bir yolu vardır (ancak sisteminizde küçük bir değişiklik gerektirir):
Her hizmeti kendi SVCHOST.EXE işleminde çalışacak şekilde bölün, CPU döngülerini tüketen hizmet Görev Yöneticisi'nde veya İşlem Gezgini'nde kolayca görünür ("=" karakterinden sonraki boşluk gereklidir):
SC Config Servicename Type= own
Bunu bir komut satırı penceresinde yapın veya bir BAT komut dosyasına yerleştirin. Yönetici ayrıcalıkları gerekir ve yürürlüğe girmeden önce bilgisayarın yeniden başlatılması gerekir.
Orijinal durum şu şekilde geri yüklenebilir:
SC Config Servicename Type= share
Örnek: Windows Yönetim Araçları'nı ayrı bir SVCHOST.EXE içinde çalıştırmak için:
SC Config winmgmt Type= own
Bu tekniğin, belki de bellek tüketimini biraz arttırması dışında, hiçbir olumsuz etkisi yoktur. Ayrıca, her hizmet için CPU kullanımını gözlemlemenin yanı sıra, her bir hizmet için sayfa hataları delta, disk G/Ç okuma hızı ve disk G/Ç yazma hızını gözlemlemeyi de kolaylaştırır. İşlem Gezgini için, Sütunları Görüntüle/Seç menüsü: sekmesi İşlem Belleği/Sayfa Hatası Delta, sekmesi İşlem Performansı/IO Delta Yazma Baytları, sekmesi İşlem Performansı/IO Delta Okuma Baytları.
Çoğu sistemde çok sayıda hizmeti olan tek bir SVCHOST.EXE işlemi vardır. Ben (doğrudan bir komut satırı penceresine yapıştırılabilir) bu dizi kullandık:
rem 1. "Automatic Updates"
SC Config wuauserv Type= own
rem 2. "COM+ Event System"
SC Config EventSystem Type= own
rem 3. "Computer Browser"
SC Config Browser Type= own
rem 4. "Cryptographic Services"
SC Config CryptSvc Type= own
rem 5. "Distributed Link Tracking"
SC Config TrkWks Type= own
rem 6. "Help and Support"
SC Config helpsvc Type= own
rem 7. "Logical Disk Manager"
SC Config dmserver Type= own
rem 8. "Network Connections"
SC Config Netman Type= own
rem 9. "Network Location Awareness"
SC Config NLA Type= own
rem 10. "Remote Access Connection Manager"
SC Config RasMan Type= own
rem 11. "Secondary Logon"
SC Config seclogon Type= own
rem 12. "Server"
SC Config lanmanserver Type= own
rem 13. "Shell Hardware Detection"
SC Config ShellHWDetection Type= own
rem 14. "System Event Notification"
SC Config SENS Type= own
rem 15. "System Restore Service"
SC Config srservice Type= own
rem 16. "Task Scheduler"
SC Config Schedule Type= own
rem 17. "Telephony"
SC Config TapiSrv Type= own
rem 18. "Terminal Services"
SC Config TermService Type= own
rem 19. "Themes"
SC Config Themes Type= own
rem 20. "Windows Audio"
SC Config AudioSrv Type= own
rem 21. "Windows Firewall/Internet Connection Sharing (ICS)"
SC Config SharedAccess Type= own
rem 22. "Windows Management Instrumentation"
SC Config winmgmt Type= own
rem 23. "Wireless Configuration"
SC Config WZCSVC Type= own
rem 24. "Workstation"
SC Config lanmanworkstation Type= own
rem End.
Yerleşik tasklist
komutunu kullanabilir ve hizmet adına göre filtreleyebilirsiniz (/fi
anahtarı), örneğin:
tasklist /fi "services eq TermService"
Çıktı:
Resim Adı PID Oturum Adı Oturum # Mem Kullanımı ========================= ====== == =========================== ============ svchost.exe 2940 Konsol 0 7.096 K
Bir ad bilmiyorsanız, bu ifadeyi çalıştırarak listeleyebilirsiniz:
tasklist /svc /fi "imagename eq svchost.exe"
Svchost.exe tarafından barındırılan tüm hizmetleri listeler, örneğin:
Görüntü Adı PID Hizmetleri ========================= ======== === ========================================= svchost.exe 632 DcomLaunch Svchost.exe 684 RpcSs Svchost.exe 748 Dhcp, Dnscache Svchost.exe 788 LmHosts, W32Time [.____. Svchost.exe 804 AeLookupSvc, AudioSrv, Tarayıcı, CryptSvc, Dmserver, EventSystem, helpvc, Lanmanserver, lanmanworkstation, Messenger, Netman, Nla, RasMan, Zamanlama, seklogon, [.____. SENS, ShellHWDetection, TrkWks, winmgmt, wuauserv, WZCSVC svchost.exe 1140 ERSvc svchost.exe 1712 Uzak Kayıt [.____. svchost.exe 196 W3SVC [.____. svchost.exe 2940 TermService Svchost.exe 2420 TapiSrv
Hizmetlerin svchost.exe
. Dolayısıyla, yürütme dosyası adına göre filtreleme yapan bir hizmet bulamazsanız, tasklist /svc
. Tüm hizmetleri gösterecektir.
Process Explorer gerçekten de svchost içinde bireysel bellek kullanımını gösterecektir Buradan en son sürüme sahip olduğunuzdan emin olun http://technet.Microsoft.com/en-us/sysinternals/bb89665
İşlem Gezgini'ni yönetici olarak çalıştırdığınızdan emin olun, incelemek istediğiniz svchost'u tıklayın, View DLLs
düğmesi (veya CTRL+D). DLL penceresindeki başlıkları sağ tıklayın, Select Columns...
, sonra kontrol et WS Total Bytes
ve OK
tuşlarına basın.
Şimdi svchost içinde bireysel hizmetlerin (dlls tarafından uygulanan) bellek kullanımını görüntüleyebilir ve sıralayabilirsiniz.
Process Monitor genel amaçlı bir yardımcı program olsa da (sizin için bulaşıkları yıkamak dışında her şeyi yapar), bu özel soru için VMMap (başka bir SysInternals yardımcı programı) kullanmak istiyorsunuz.
http://technet.Microsoft.com/en-us/sysinternals/dd535533.aspx
VMMap bir işlem sanal ve fiziksel bellek analizi yardımcı programıdır. Bir işlemin işlenen sanal bellek türlerinin dökümünün yanı sıra işletim sistemi tarafından bu türlere atanan fiziksel bellek (çalışma kümesi) miktarını gösterir. Bellek kullanımının grafik gösterimlerinin yanı sıra VMMap, özet bilgileri ve ayrıntılı bir işlem belleği haritasını da gösterir. Güçlü filtreleme ve yenileme özellikleri, işlem belleği kullanımının kaynaklarını ve uygulama özelliklerinin bellek maliyetini belirlemenizi sağlar.
VMMap, canlı süreçleri analiz etmek için esnek görünümlerin yanı sıra, tüm bilgileri koruyabilmeniz için tüm bilgileri koruyan yerel bir format da dahil olmak üzere verilerin birden çok biçimde dışa aktarılmasını destekler. Ayrıca komut satırı içerir komut dosyası senaryolarını etkinleştiren seçenekler.
Bu stackoverflow bölgesine giriyor, ancak iş parçacığı bellek istatistiklerini tutabilirsiniz kabaca iş parçacığı yığınında listelenen dll'lere kadar eşleştirerek bireysel hizmet dll'lerle ilişkilendirmek mümkün olabilir. Yine de küçük sysadmin beynim için çok fazla.
Peter Mortensen'in cevabını burada uzatıyorum. Hizmet türünü değiştirmeden önce, lütfen aşağıdaki gibi komutla mevcut türü kontrol edin:
sc query wuauserv
Aşağıdaki çıktılar:
TYPE : 20 WIN32_SHARE_PROCESS
STATE : 1 STOPPED
WIN32_EXIT_CODE : 0 (0x0)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x0
"10 WIN32_OWN_PROCESS", "20 WIN32_SHARE_PROCESS" dışında hiçbir tür değiştirilmemelidir.
Hizmetleri ayırmak doğru yanıttır, ancak sc config komutu benim için çalışmadı (2008 R2).
Ancak kayıt defteri aracılığıyla yapabilirsiniz, bu da "Tür" parametresini 0x00000010 (dec. 16) olarak ayarlamak anlamına gelir:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\<ServiceName>\Type
Hangi hizmeti değiştirmeyi seçtiğinize dikkat edin, "kendin" ve "paylaş" ın yanında değiştirilmemesi gereken özel türler vardır:
Bundan sonra, sadece hizmeti yeniden başlatın ve ProcessExplorer şimdi kendi svchost.exe işlemi olduğunu görmelisiniz.