¿Cuál es la causa del alto uso de CPU del 'sistema y memoria comprimida' en Windows 10?

39

Hay una observación para Windows 10 en mi computadora portátil con 24G de memoria disponible y 2.5G usados. No hay "presión de memoria". Otras preguntas han analizado el consumo de memoria (que no es el problema aquí). En todas las preguntas relacionadas aquí y en otros lugares, no he podido encontrar una explicación adecuada al problema de esta utilización de la CPU en el último mes o dos después de una de las actualizaciones de Windows 10.

Puedo aceptar que hay valor en este servicio o proceso, pero ejecutar continuamente y usar recursos de CPU adicionales y, como consecuencia, usar la energía de la batería de manera menos eficiente, ese es el problema que estoy tratando de resolver.

En algún artículo en este sitio, se sugirió que apague SuperFetch y establezca una entrada de registro para PrefetchParameters en 0. Hice ambas cosas y realicé un reinicio.

Reinicio la máquina, apago el protector de pantalla e inicio el administrador de tareas. Después de unos minutos, el servicio etiquetado como 'Sistema y memoria comprimida' comienza a tomar el 5% de mi CPU, de manera consistente. Mi utilización de CPU base es quizás del 1%, lo que mantiene bajo el ventilador. Pero cuando el servicio de 'sistema y memoria comprimida' se ejecuta al 5%, los ventiladores aumentan. Y solo sigue corriendo.

Tonto. ¿Por qué ese servicio debe ejecutarse de manera consistente sin presión de memoria? ¿Algún mecanismo adicional que pueda probar para desactivarlo o determinar qué está haciendo realmente? ¿Hay entradas de archivo de registros en alguna parte? ¿O una herramienta de diagnóstico en profundidad?

cómo-deshabilitar-Windows-10-compresión de memoria - no hay respuestas reales aquí

Windows-10-sistema-proceso-toma-cantidades-masivas-de-ram

17993-windows-10-memoria-compresión

desktop-build-10525-and-windows-10-memory

www.techish.net/system-and-compressed-memory/

windows-10-build-1511-overheating-cpu-fan-always

Windows Performance Recorder : ahora necesita un enlace para obtener información sobre cómo interpretar la información

mantenimiento de matorrales

Raymond Burkholder
fuente
1
Sí, nunca he entendido por qué Windows usa el archivo de paginación cuando hay mucha memoria, deshabilitar el archivo de paginación puede resolver su problema, me gustaría saberlo.
Moab
@Moab: La percepción de que Windows "usa el archivo de paginación cuando hay mucha memoria" proviene de una etiqueta equivocada en el administrador de tareas de Windows XP: etiquetaron los gráficos "uso de PF" cuando debería haber sido "comprometer carga". Si utiliza PerfMon para examinar el uso real del archivo de paginación, generalmente lo encontrará mucho más pequeño de lo esperado.
Jamie Hanrahan
2
capturar un rastro del uso de la CPU. Instale el WPT desde Win10 SDK: dev.windows.com/en-us/downloads/windows-10-sdk, ejecute WPRUI.exe, seleccione CPU, Disco, VirtualAlloc, ResidentSet y capture 1-2 minutos del uso del SISTEMA y guarde en un archivo ETL. Comprime la carpeta ETL + NGENPDB en un archivo 7z / RAR, sube el archivo comprimido a OneDrive, crea un enlace para compartir y publica el enlace para compartir aquí
magicandre1981
@ magicandre1981: gracias por ofrecer una posible metodología. El archivo se puede encontrar en oneunified.net/files/rpb.20160102.WPR.7z . Si ve algo, ¿podría publicar su metodología? Estoy seguro de que muchas otras publicaciones podrían hacer uso de la técnica. ... de nuevo gracias.
Raymond Burkholder el

Respuestas:

26

El análisis del archivo ETL con WPA muestra que el uso de la CPU no proviene de la compresión de la memoria del sistema. Proviene de ntoskrnl.exe!MiScrubMemoryWorker:

Line #, DPC/ISR, Process, Stack Tag, Stack, Count, TimeStamp (s), % Weight
8, , , ,    |    |    |- ntoskrnl.exe!MiScrubMemoryWorker, 79667, , 12,45
9, , , ,    |    |    |    ntoskrnl.exe!MiScrubNode, 79667, , 12,45
10, , , ,   |    |    |    ntoskrnl.exe!MiScrubNodeLargePages, 79667, , 12,45
11, , , ,   |    |    |    ntoskrnl.exe!MiScrubNodeLargePageList, 79667, , 12,45
12, , , ,   |    |    |    |- ntoskrnl.exe!MiScrubPage, 79663, , 12,45
13, , , ,   |    |    |    |    |- ntoskrnl.exe!RtlScrubMemory, 79653, , 12,45
14, , , ,   |    |    |    |    |    |- ntoskrnl.exe!RtlpGenericRandomPatternWorker, 38549, , 6,02

Esta es una función para probar errores en la memoria al llenar / leer algunos patrones ( ntoskrnl.exe!RtlpGenericRandomPatternWorker).

Esto es así por diseño y ocurre cuando la tarea de mantenimiento inactivo se inicia cuando su dispositivo está inactivo.

magicandre1981
fuente
Gracias por eso. Eso arroja algo de luz sobre la actividad. Ahora que menciona la palabra inactivo, se pueden hacer dos comentarios. 1) El archivo ETI que evaluó se realizó mientras estaba activo en la consola, y la CPU era de alrededor del 10% al 15% para 'sistema y memoria comprimida', y finalmente terminó. Así que pude capturar algún tipo de actividad. Y lo ha evaluado como mantenimiento inactivo. 2) en el siguiente comentario ....
Raymond Burkholder
10
Para el cierre, en Win 10, fui a: Inicio-> Panel de control-> Herramientas administrativas-> Programador de tareas Biblioteca del Programador de tareas-> Microsoft-> ​​Windows-> MemoryDiagnostic Hay dos líneas de pedido. La ejecución de la tarea puede depender de eventos de registro. No estoy seguro de si solo tienen que existir, o si se activan al ingresar al registro. Deshabilité RunFullMemoryDiagnosticEntry. Ya no veo la utilización del 5% al ​​12% después de unos minutos de retraso. En las propiedades de la tarea, en la pestaña de configuración, es posible ajustar cosas para que no se ejecuten con mucha frecuencia. .... probando para otro momento.
Raymond Burkholder
2
Es bueno saber que resuelve su problema.
magicandre1981
1
Para agregar al comentario, tenía 2 tareas definidas: RunFullMemoryDiagnostic y ProcessMemoryDiagnosticEvents, la más importante es la segunda. Tenía 4 activadores habilitados: "Registro: Sistema, Fuente: Ventana emergente de la aplicación", "Registro: Aplicación, Fuente: Error de la aplicación" y dos restantes. Desactivar los 2 desencadenantes resolvió mi problema, el problema era que algunas aplicaciones que estoy desarrollando escriben errores en el registro de eventos y eso causa verificaciones de memoria. Los dos disparadores restantes están completamente relacionados con el sistema, por lo que es mejor no deshabilitarlos
zihotki el
3
ok, un troll lo rechazó. Sí, xperf / WPR / WPA es de nivel 500 cosas experto por lo que no para usted sin educación idiota trol facepalm
magicandre1981
9

Primero, re. Uso de la CPU: el proceso "Sistema y memoria comprimida" (no es un servicio) realiza muchas funciones. El hecho de que lo vea usando el tiempo de CPU no significa que esté haciendo trabajo al comprimir el contenido de la memoria. Para averiguarlo, utilice el Explorador de procesos para encontrar los nombres de las funciones del subproceso en el proceso que utiliza el tiempo de CPU. Tendrá que configurar símbolos en Process Explorer para hacer esto, como se describe en esta respuesta .

La memoria que se está comprimiendo es la memoria que estaba

  • parte del conjunto de trabajo privado de un proceso (es decir, compartido con cualquier otro proceso); y
  • modificado mientras estaba en ese proceso; y
  • posteriormente se perdió del proceso debido al reemplazo de la página y se colocó en la lista de páginas modificadas. (Este algoritmo no se ha cambiado sustancialmente para Windows 10. No recibirá más reemplazo de página de lo que solía hacerlo).

Ahora ... si no tiene un archivo de página, solo permanecerá en la lista de páginas modificadas (hasta que finalice el proceso). (Tenga en cuenta: deshabilitar su archivo de paginación no cambiará el comportamiento descrito hasta ahora).

Si tiene un archivo de paginación (que, por supuesto, es muy recomendable), el comportamiento difiere entre Windows 10 y versiones anteriores.

  • Antes de Windows 10, pronto se habría escrito en el archivo de página y las páginas físicas se moverían a la lista de páginas en espera. Esto se realiza mediante un hilo de "escritor de página modificado" en el proceso del sistema.

  • Con Windows 10, primero se comprime (ocupa aproximadamente la mitad de espacio que antes) y se guarda en el espacio de direcciones del modo de usuario del proceso del Sistema (ahora llamado "Sistema y memoria comprimida"). Si es necesario para liberar memoria, puede escribirse en el archivo de paginación y liberarse para otro uso. (Tenga en cuenta que los beneficios de la compresión de espacio también se aplican al espacio de archivos de página y al tiempo de E / S).

Entonces, realmente, esto es algo bueno. Sin embargo, mucha memoria adicional que veas utilizada por el proceso del sistema, bueno, antes de Windows 10, aproximadamente el doble habría estado en la lista de páginas modificadas o en la lista de espera. Ciertamente, no ocupará más espacio del que solía.

Puede (según mis pruebas recientes) desactivar este mecanismo al deshacerse de su archivo de página, pero esto no afectará el comportamiento de reemplazo de la página; las páginas privadas modificadas eliminadas de los procesos simplemente no serán elegibles para ser liberadas para otro uso, y en lugar de estar en el proceso del Sistema, la memoria (aproximadamente el doble) se quedará en el MPL.

Jamie Hanrahan
fuente
En el explorador de procesos, sin símbolos de depuración cargados, obtengo algo: ntoskrnl.exe! CcCopyWriteWontFlush + 0xb50 ¿Saldrán más detalles si agrego símbolos? Hay 12 instancias, una de las cuales reclama 12.5% ​​de CPU. Pertenece al proceso del sistema.
Raymond Burkholder el
@RaymondBurkholder Puede obtener más información mirando la pila de hilos.
Daniel B
@DanielB: sí, eso fue de la pestaña Hilos en la ventana emergente al mirar las propiedades del proceso del Sistema en PID 4 en el Explorador de procesos. Aclaración: el botón de pila no muestra nada, pero el botón Módulo indica que es del archivo ntkmlmp.exe con fecha 22/11/2015. Creo que es la fecha aproximada en que comenzó esta CPU extra.
Raymond Burkholder el
Esa es solo la fecha en que una actualización de Windows afectó este archivo por última vez. Es un componente del sistema, después de todo.
Daniel B
@RaymondBurkholder La pantalla "StartAddress" sin símbolos configurados simplemente no es útil. Cuando vea un nombre de símbolo (como "CcCopyWriteWontFlush") más un desplazamiento ("+ 0xb50"), el nombre del símbolo es casi seguro incorrecto. Lo que desea es, por ejemplo, ntoskrnl.exe! ExpWorkerThread, sin desplazamiento. Oh ... verá desplazamientos para módulos para los que MS no proporciona símbolos, casi siempre son controladores de terceros. Se muestran como moduleName + offset, como nvhda64v.sys + 0x30ac. No podemos obtener símbolos para esos, pero el nombre del módulo solo suele ser útil en casos de depuración.
Jamie Hanrahan
3

Puede ser el software "Killer Network Manager". Si lo desinstala, el problema desaparece, pero también lo hace la red, ya que también desinstala los controladores del adaptador de red. La buena noticia es que hay una solución.

Primero, vaya a http://www.killernetworking.com/support/driver-downloads/item/killer-suite y descargue la nueva versión, pero no la instale todavía. Simplemente guárdelo y sepa dónde se encuentra el archivo.

Luego, desinstale la versión actual a través del panel de control. Tendrás que reiniciar la computadora. Una vez que la computadora esté respaldada, ejecute el nuevo instalador de software. La nueva versión que se lanzó en enero de 2016 no parece tener el mismo problema.

Creo que la versión anterior del software tiene una pérdida de memoria que causa este problema.

Solo para su información, el software "Killer Network Manager" es parte de Qualcomms Aethos Killer Wireless-AC / Wireless-N y tarjetas de red cableadas E2200 / E2400. Sin el software, no tienes internet.

McPlot
fuente
Sin el conductor no tienes internet. Usted puede obtener el controlador sin todo el impertinencias inútil y programas de relleno que el fabricante considera que usted necesita. La parte inferior de la página que ha vinculado le ofrece un enlace de descarga solo para el controlador de killernetworking.com/support/driver-downloads/standard-drivers
Mokubai
2

Tuve un problema similar después de actualizar recientemente a Windows 10. Mi mouse de repente comenzó a detenerse, es decir, se sacudió mientras lo movía por la pantalla, lo que dificultaba mucho su uso.

Verifiqué el uso de la CPU en el Administrador de tareas y noté que el problema ocurrió cuando el proceso "Sistema y memoria comprimida" comenzó a consumir del 5 al 15% de la CPU. Ejecuté Process Explorer y verifiqué los hilos y, al igual que Raymond, noté que el principal culpable era CcWriteCopyWontFlush con un desplazamiento de 0xb50. Un poco de Google me llevó a esta página. Intenté instalar los símbolos de Windows como algunos sugirieron aquí, pero nunca me ayudó a resolver el desplazamiento.

El problema también fue esporádico. Trabajaría durante unas horas y luego comenzaría a aparecer durante unos minutos, de vez en cuando, volviéndome loco. El reinicio lo curaría por un tiempo y luego volvería.

A partir de las respuestas aquí, decidí buscar los controladores en mi PC, así que comencé con Device Manager y ahí es donde obtuve mi respuesta. Cuando ocurría el problema, mi ventana del Administrador de dispositivos se quedaba en blanco constantemente y se actualizaba, como cada segundo o dos. Era esencialmente ilegible. Más Google sugirió un dispositivo USB externo que se conecta y reconecta. Lo até a mi teléfono Samsung, que cargo desde mi PC todos los días a través de un cable conectado a un puerto USB. También uso la PC y MyPhoneExplorer para sincronizar mi teléfono con Outlook, por lo que tengo un par de unidades asignadas a la RAM interna y externa de mi teléfono, usando los controladores de Samsung para la PC. Pude ver que estas unidades aparecen y desaparecen con frecuencia en el Administrador de dispositivos.

Mi teléfono es un Galaxy S2 y tiene aproximadamente 4 años y he tenido problemas de conexión en el puerto microUSB durante más de un año. Eso puede explicar la naturaleza esporádica del problema, o pueden ser los malos controladores de PC de Samsung para mi teléfono. Si fuera solo el cable, no sé por qué reiniciar cura el problema por un tiempo, por lo que sigue siendo un misterio, pero al menos conozco la fuente y puedo solucionarlo.

Desconectar mi teléfono es la forma más fácil de resolver el problema, y ​​estoy a punto de abandonarlo de todos modos ya que es muy antiguo. Así que me pregunto si Raymond también tenía un controlador de dispositivo Samsung con un software similar ejecutándose en su PC. Raymond, si todavía te estás registrando, avísame.

Como mencioné, el cable ha estado mal por un tiempo, desde mucho antes de la actualización de Windows 7 a Windows 10, y el software de Samsung siempre ha sido horrible, pero en Windows 7 la fragilidad no afectó mi otra operación de la PC. En Windows 10, hizo que el mouse fuera tan irregular que casi se volvió inutilizable. Me costó mucho tratar de aterrizar en un objetivo, y creo que el teclado también se estaba viendo afectado al no poder presionar las teclas. Es extraño cómo se interrelacionan estos factores y no sé qué sugerirle a Microsoft sobre la mejora de Windows 10, pero ahora siento que Windows 10 es un poco "delicado". Usar con precaución.

MartinF
fuente