Task Manager menunjukkan penggunaan memori svchost.exe secara keseluruhan. Apakah ada cara untuk melihat penggunaan memori layanan individual?
Catatan ini mirip dengan pelaporan kinerja Finegrained di svchost.exe
Task Manager menunjukkan penggunaan memori svchost.exe secara keseluruhan. Apakah ada cara untuk melihat penggunaan memori layanan individual?
Catatan ini mirip dengan pelaporan kinerja Finegrained di svchost.exe
Jawaban:
Ada cara mudah untuk mendapatkan informasi yang Anda minta (tetapi itu memang membutuhkan sedikit perubahan pada sistem Anda):
Bagi setiap layanan untuk dijalankan dalam proses SVCHOST.EXE-nya sendiri dan layanan yang menggunakan siklus CPU akan mudah terlihat di Task Manager atau Process Explorer (diperlukan ruang setelah "="):
SC Config Servicename Type= own
Lakukan ini di jendela baris perintah atau letakkan di skrip BAT. Hak administratif diperlukan dan restart komputer diperlukan sebelum mulai berlaku.
Keadaan asli dapat dipulihkan dengan:
SC Config Servicename Type= share
Contoh: untuk membuat Instrumentasi Manajemen Windows dijalankan di SVCHOST.EXE yang terpisah:
SC Config winmgmt Type= own
Teknik ini tidak memiliki efek buruk, kecuali mungkin sedikit meningkatkan konsumsi memori. Dan selain mengamati penggunaan CPU untuk setiap layanan juga memudahkan untuk mengamati kesalahan halaman delta, disk I / O read rate dan disk I / O write rate untuk setiap layanan. Untuk Process Explorer, menu Lihat / Pilih Kolom: tab Process Memory / Page Fault Delta, tab Performance Process / IO Delta Write Bytes, tab Performance Process / IO Delta Read Bytes, masing-masing.
Pada kebanyakan sistem hanya ada satu proses SVCHOST.EXE yang memiliki banyak layanan. Saya telah menggunakan urutan ini (dapat disisipkan langsung ke jendela baris perintah):
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
pada sistem Windows XP. Yang ini saya lihat 6.
type= own
mungkin tidak bekerja dengan benar dan Anda akan ditinggalkan tanpa akses ke file yang dienkripsi dengan itu (yang bisa menjadi bencana jika file OS dienkripsi!)
Anda dapat menggunakan tasklist
perintah bawaan dan memfilter menurut nama layanan ( /fi
sakelar), misalnya:
tasklist /fi "services eq TermService"
Keluaran:
Nama Gambar Sesi Nama PID Sesi # Penggunaan Mem ========================= ======== ================ = = ========== ============ svchost.exe 2940 Konsol 0 7.096 K
Jika Anda tidak tahu nama, Anda bisa mencantumkannya dengan menjalankan pernyataan ini:
tasklist /svc /fi "imagename eq svchost.exe"
Ini mencantumkan semua layanan yang di-hosting oleh svchost.exe, misalnya:
Layanan PID Nama Gambar ========================= ======== ================= =========================== svchost.exe 632 DcomLaunch svchost.exe 684 RpcSs svchost.exe 748 Dhcp, Dnscache svchost.exe 788 LmHosts, W32Time svchost.exe 804 AeLookupSvc, AudioSrv, Browser, CryptSvc, dmserver, EventSystem, helpvc, lanmanserver, lanmanworkstation, Messenger, Netman, Nla, RasMan, Jadwal, seclogon, SENS, ShellHWDetection, TrkWks, winmgmt, wuauserv, WZCSVC svchost.exe 1140 ERSvc svchost.exe 1712 RemoteRegistry svchost.exe 196 W3SVC svchost.exe 2940 TermService svchost.exe 2420 TapiSrv
Layanan tidak dihosting oleh svchost.exe
. Jadi, jika Anda tidak dapat menemukan layanan pemfilteran dengan nama file yang mengeksekusi, jalankan saja tasklist /svc
. Ini akan menampilkan semua layanan.
Process explorer memang akan menunjukkan penggunaan memori individual dalam svchost. Pastikan Anda memiliki versi terbaru dari sini http://technet.microsoft.com/en-us/sysinternals/bb896653
Pastikan untuk menjalankan Process Explorer sebagai administrator, klik pada svchost yang ingin Anda periksa, klik View DLLs
tombol (atau CTRL+D). Klik kanan header di jendela DLL Select Columns...
,, lalu centang WS Total Bytes
, dan tekan OK
.
Sekarang Anda dapat melihat dan mengurutkan penggunaan memori layanan individual (diterapkan oleh dll) di dalam svchost.
Sementara Process Monitor adalah utilitas tujuan umum (yang akan melakukan segalanya kecuali mencuci piring untuk Anda), untuk pertanyaan khusus ini Anda ingin menggunakan VMMap (utilitas SysInternals lain)
http://technet.microsoft.com/en-us/sysinternals/dd535533.aspx
VMMap adalah utilitas analisis memori virtual dan fisik proses. Ini menunjukkan kerusakan dari jenis memori virtual yang dilakukan suatu proses serta jumlah memori fisik (set kerja) yang ditetapkan oleh sistem operasi untuk jenis-jenis tersebut. Selain representasi grafis dari penggunaan memori, VMMap juga menunjukkan informasi ringkasan dan detail peta proses memori. Kemampuan penyaringan dan penyegaran yang kuat memungkinkan Anda mengidentifikasi sumber penggunaan memori proses dan biaya memori dari fitur aplikasi.
Selain tampilan fleksibel untuk menganalisis proses langsung, VMMap mendukung ekspor data dalam berbagai bentuk, termasuk format asli yang menyimpan semua informasi sehingga Anda dapat memuat kembali. Ini juga mencakup opsi baris perintah yang memungkinkan skenario skrip.
Ini masuk ke wilayah stackoverflow, tetapi jika Anda bisa memperoleh statistik memori per-thread, Anda mungkin dapat secara kasar menghubungkannya dengan dll layanan individual dengan mencocokkannya dengan dll yang tercantum dalam tumpukan thread. Terlalu banyak untuk otak sysadmin kecilku.
Saya menyampaikan jawaban Peter Mortensen di sini. Sebelum memodifikasi jenis layanan, silakan periksa jenis yang ada dengan perintah seperti:
sc query wuauserv
Yang akan menampilkan sebagai berikut:
TYPE : 20 WIN32_SHARE_PROCESS
STATE : 1 STOPPED
WIN32_EXIT_CODE : 0 (0x0)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x0
Jenis apa pun selain "10 WIN32_OWN_PROCESS", "20 WIN32_SHARE_PROCESS" tidak boleh dimodifikasi.
Memisahkan layanan adalah jawaban yang benar, tetapi perintah sc config tidak berfungsi untuk saya (2008 R2).
Anda dapat melakukannya melalui registri, yang berarti mengatur parameter "Jenis" ke 0x00000010 (16 Desember):
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\<ServiceName>\Type
Berhati-hatilah meskipun layanan mana yang Anda pilih untuk diubah, ada jenis khusus selain "milik" dan "bagi" yang tidak boleh diubah, seperti:
Setelah itu, cukup restart layanan dan Anda akan melihat di ProcessExplorer bahwa sekarang memiliki proses svchost.exe sendiri.