El Administrador de tareas muestra el uso de memoria general de svchost.exe. ¿Hay alguna manera de ver el uso de memoria de servicios individuales?
Tenga en cuenta que esto es similar a los informes de rendimiento Finegrained en svchost.exe
El Administrador de tareas muestra el uso de memoria general de svchost.exe. ¿Hay alguna manera de ver el uso de memoria de servicios individuales?
Tenga en cuenta que esto es similar a los informes de rendimiento Finegrained en svchost.exe
Respuestas:
Hay una manera fácil de obtener la información que está solicitando (pero requiere un ligero cambio en su sistema):
Divida cada servicio para que se ejecute en su propio proceso SVCHOST.EXE y el servicio que consume los ciclos de la CPU será fácilmente visible en el Administrador de tareas o Explorador de procesos (se requiere el espacio después de "="):
SC Config Servicename Type= own
Haga esto en una ventana de línea de comandos o póngalo en un script BAT. Se requieren privilegios administrativos y se requiere reiniciar la computadora antes de que surta efecto.
El estado original se puede restaurar mediante:
SC Config Servicename Type= share
Ejemplo: para hacer que el Instrumental de administración de Windows se ejecute en un SVCHOST.EXE separado:
SC Config winmgmt Type= own
Esta técnica no tiene efectos nocivos, excepto quizás aumentar ligeramente el consumo de memoria. Y además de observar el uso de la CPU para cada servicio, también facilita observar los delta de fallas de página, la velocidad de lectura de E / S de disco y la velocidad de escritura de E / S de disco para cada servicio. Para Process Explorer, menú Ver / Seleccionar columnas: pestaña Memoria de proceso / Delta de falla de página, pestaña Desempeño de proceso / IO Delta Bytes de escritura, pestaña Desempeño de proceso / IO Delta Leer bytes, respectivamente.
En la mayoría de los sistemas, solo hay un proceso SVCHOST.EXE que tiene muchos servicios. He usado esta secuencia (se puede pegar directamente en una ventana de línea de comando):
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
en sistemas Windows XP. En este veo 6.
type= own
es posible que no funcione correctamente y se quedará sin acceso a los archivos que están cifrados con él (lo que puede ser catastrófico si los archivos del sistema operativo están encriptados!)
Puede usar el tasklist
comando incorporado y filtrar por nombre de servicio ( /fi
conmutador), por ejemplo:
tasklist /fi "services eq TermService"
Salida:
Nombre de imagen Nombre de sesión PID # de sesión Uso de memoria ========================= ======== ================ = ========== ============ svchost.exe 2940 Consola 0 7.096 K
Si no conoce un nombre, puede enumerarlos ejecutando esta declaración:
tasklist /svc /fi "imagename eq svchost.exe"
Enumera todos los servicios alojados por svchost.exe, por ejemplo:
Nombre de imagen Servicios PID ========================= ======== ================= =========================== svchost.exe 632 DcomLaunch svchost.exe 684 RpcSs svchost.exe 748 Dhcp, Dnscache svchost.exe 788 LmHosts, W32Time svchost.exe 804 AeLookupSvc, AudioSrv, Navegador, CryptSvc, dmserver, EventSystem, helpvc, lanmanserver, lanmanworkstation, Messenger, Netman, Nla, RasMan, Schedule, 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
Los servicios no están necesariamente alojados por svchost.exe
. Entonces, si no puede encontrar un servicio de filtrado por el nombre del archivo en ejecución, simplemente ejecute tasklist /svc
. Mostrará todos los servicios.
De hecho, Process Explorer le mostrará el uso de memoria individual dentro de svchost Asegúrese de tener la última versión desde aquí http://technet.microsoft.com/en-us/sysinternals/bb896653
Asegúrese de ejecutar el Explorador de procesos como administrador, haga clic en el svchost que desea inspeccionar, haga clic en el View DLLs
botón (o CTRL+D). Haga clic derecho en los encabezados en la ventana de DLL Select Columns...
, luego verifique WS Total Bytes
y presione OK
.
Ahora puede ver y ordenar el uso de memoria de servicios individuales (implementados por dlls) dentro de svchost.
Mientras que Process Monitor es una utilidad de propósito general (que hará todo menos lavar los platos por usted), para esta pregunta en particular desea usar VMMap (otra utilidad SysInternals)
http://technet.microsoft.com/en-us/sysinternals/dd535533.aspx
VMMap es una utilidad de análisis de memoria virtual y física de proceso. Muestra un desglose de los tipos de memoria virtual comprometidos de un proceso, así como la cantidad de memoria física (conjunto de trabajo) asignada por el sistema operativo a esos tipos. Además de las representaciones gráficas del uso de la memoria, VMMap también muestra información resumida y un mapa detallado de la memoria del proceso. Las potentes capacidades de filtrado y actualización le permiten identificar las fuentes del uso de la memoria del proceso y el costo de la memoria de las características de la aplicación.
Además de vistas flexibles para analizar procesos en vivo, VMMap admite la exportación de datos en múltiples formas, incluido un formato nativo que conserva toda la información para que pueda volver a cargarla. También incluye opciones de línea de comandos que permiten escenarios de secuencias de comandos.
Esto está entrando en el territorio de stackoverflow, pero si puede obtener estadísticas de memoria por subproceso, puede correlacionar aproximadamente eso con los dlls de servicio individuales al hacerlos coincidir con los dlls enumerados en la pila de subprocesos. Sin embargo, es demasiado para mi pequeño cerebro de administrador de sistemas.
Extiendo la respuesta de Peter Mortensen aquí. Antes de modificar el tipo de servicios, verifique el tipo existente mediante un comando como:
sc query wuauserv
Lo que dará como resultado los siguientes:
TYPE : 20 WIN32_SHARE_PROCESS
STATE : 1 STOPPED
WIN32_EXIT_CODE : 0 (0x0)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x0
Cualquier tipo que no sea "10 WIN32_OWN_PROCESS", "20 WIN32_SHARE_PROCESS" no debe modificarse.
Separar los servicios es la respuesta correcta, pero el comando sc config no funcionó para mí (2008 R2).
Sin embargo, puede hacerlo a través del registro, lo que significa establecer el parámetro "Tipo" en 0x00000010 (dec. 16):
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\<ServiceName>\Type
Sin embargo, tenga cuidado con el servicio que elige modificar, hay tipos especiales además de "propio" y "compartir" que no se deben cambiar, como:
Después de eso, simplemente reinicie el servicio y debería ver en ProcessExplorer que ahora tiene su propio proceso svchost.exe.