Görev Yöneticisi svchost.exe genel bellek kullanımını gösterir. Bireysel servislerin hafıza kullanımını görmenin bir yolu var mı?
Bunun svchost.exe'deki Finegrained performans raporlamasına benzer olduğunu unutmayın.
Görev Yöneticisi svchost.exe genel bellek kullanımını gösterir. Bireysel servislerin hafıza kullanımını görmenin bir yolu var mı?
Bunun svchost.exe'deki Finegrained performans raporlamasına benzer olduğunu unutmayın.
Yanıtlar:
İstediğiniz bilgileri almanın kolay bir yolu var (ancak sisteminizde küçük bir değişiklik yapılması gerekiyor):
Her bir hizmeti kendi SVCHOST.EXE işleminde çalışacak şekilde bölme ve CPU döngülerini tüketen hizmet Görev Yöneticisi'nde veya İşlem Gezgini'nde kolayca görülebilir ("=" sonrası boşluk gerekir):
SC Config Servicename Type= own
Bunu bir komut satırı penceresinde yapın veya bir BAT komut dosyasına koyun. 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ın ayrı bir SVCHOST.EXE içinde çalışmasını sağlamak için:
SC Config winmgmt Type= own
Bu tekniğin, belki de bellek tüketimini biraz arttırması dışında, hiçbir kötü etkisi yoktur. Ayrıca her servis için CPU kullanımının gözlenmesi dışında, sayfa arızalarında delta, disk G / Ç okuma oranı ve her servis için disk G / Ç yazma oranının izlenmesini de kolaylaştırır. İşlem Gezgini için, Menü Sütunları Görüntüle / Seç: sekmesi Bellek İşlem / Sayfa Hatası Delta, sekme İşlem Performansı / IO Delta Yazma Baytları, sekme İşlem Performansı / IO Delta Okuma Baytları sekmesi.
Çoğu sistemde, birçok hizmeti olan yalnızca bir SVCHOST.EXE işlemi vardır. Bu sırayı kullandım (doğrudan komut satırı penceresine yapıştırılabilir):
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.
svchost.exe
Windows XP sistemlerinde 3 veya 4 örnek görüyorum . Bu kez ben 6. bakınız
type= own
doğru çalışmayabilir ve şifrelenmiş dosyalara erişiminiz kalmayacak ( işletim sistemi dosyaları şifreli ise felaket olabilir!)
Yerleşik tasklist
komutu ve filtreyi servis adına ( /fi
anahtar) göre kullanabilirsiniz, ö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 isim bilmiyorsanız, bu ifadeyi çalıştırarak bunları listeleyebilirsiniz:
tasklist /svc /fi "imagename eq svchost.exe"
Örneğin svchost.exe tarafından barındırılan tüm hizmetleri listeler:
Resim Adı PID Servisleri =============================================================================== =========================== 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, Program, seklogon, SENS, ShellHWDetection, TrkWks, winmgmt, WuaCerv, WZCSVC svchost.exe 1140 ERSvc svchost.exe 1712 RemoteRegistry svchost.exe 196 W3SVC svchost.exe 2940 TermService svchost.exe 2420 TapiSrv
Hizmetler mutlaka tarafından barındırılmaz svchost.exe
. Bu nedenle, yürüten dosya adına göre filtreleme yapan bir servis bulamazsanız, çalıştırın tasklist /svc
. Tüm hizmetleri gösterecektir.
Süreç kaşif gerçekten sen svchost içindeki tek tek bellek kullanımı buradan son sürümüne sahip olun gösterecektir http://technet.microsoft.com/en-us/sysinternals/bb896653
İşlem Gezgini'ni yönetici olarak çalıştırdığınızdan emin olun, incelemek istediğiniz svchost View DLLs
tuşunu tıklayın, (veya CTRL+D) düğmesini tıklayın . DLL penceresindeki başlıkları sağ tıklayın Select Columns...
, ardından kontrol edin WS Total Bytes
ve vurun OK
.
Artık svchost içindeki bireysel servislerin (dlls tarafından uygulanan) bellek kullanımını görüntüleyebilir ve sıralayabilirsiniz.
Proses Monitor genel amaçlı bir yardımcı program olsa da (sizin için bulaşıkları yıkamak yerine her şeyi yapacak), 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 analiz aracıdır. Bir işlemin taahhüt edilen sanal bellek türlerinin 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 grafiksel gösterimlerinin yanı sıra, VMMap ayrıca özet bilgileri ve detaylı bir işlem belleği haritası da gösterir. Güçlü filtreleme ve yenileme yetenekleri, işlem belleği kullanımı kaynaklarını ve uygulama özelliklerinin bellek maliyetini belirlemenizi sağlar.
Canlı işlemleri analiz etmek için esnek görünümlerin yanı sıra VMMap, tüm bilgileri geri yükleyebilmeniz için koruyan yerel bir biçim de dahil olmak üzere birden çok biçimde verilerin dışa aktarılmasını destekler. Ayrıca komut dosyası senaryoları sağlayan komut satırı seçeneklerini de içerir.
Bu, yığın akışı akış alanına giriyor, ancak iş parçacığı başına düşen bellek istatistiklerini elde edebiliyorsanız, bunları iş parçacığı yığınında listelenen parçalarla eşleştirerek tek tek hizmet borçlarıyla kabaca ilişkilendirebilirsiniz. Yine de minik sysadmin beynim için çok fazla.
Peter Mortensen'in cevabını burada genişletiyorum. Hizmet türlerini değiştirmeden önce, lütfen aşağıdaki komutu kullanarak mevcut türü kontrol edin:
sc query wuauserv
Aşağıdakilerden hangisini çıkaran:
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ışındaki herhangi bir tür değiştirilmemelidir.
Servisleri ayırmak doğru cevap, ancak sc config komutu benim için işe yaramadı (2008 R2).
Ancak, kayıt defteri aracılığıyla bunu yapabilirsiniz; bu, "Type" parametresini 0x00000010 (16) olarak ayarlamak anlamına gelir:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\<ServiceName>\Type
Hangi hizmeti değiştirmeyi seçtiğinize dikkat edin, "sahip olma" ve "paylaşma" dışında, değiştirilmemesi gereken özel türler vardır:
Ondan sonra, sadece hizmeti yeniden başlatın ve ProcessExplorer'da kendi svchost.exe işlemine sahip olduğunu görmelisiniz.