it-swarm.asia

Bireysel Windows hizmetlerinin bellek kullanımını nasıl bulabilirim?

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

43
Aidan Ryan

İ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.
51
Peter Mortensen

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.

19
splattne

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.

9
Chris T.

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.

7
Sean Earp

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.

3
user2278

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.

2
sken130

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:

  • çekirdek
  • filesys
  • rec
  • adapte olmak

Bundan sonra, sadece hizmeti yeniden başlatın ve ProcessExplorer şimdi kendi svchost.exe işlemi olduğunu görmelisiniz.

1
Michael Böckling