Tengo 16 GB de RAM del sistema. En el inicio sin aplicaciones abiertas, excepto el administrador de tareas, Windows usa aproximadamente 3 gb de RAM. Miré en la pestaña de procesos, pero nada parece estar fuera de lo común. ¿Cómo puedo averiguar por qué mi Windows está usando tanta RAM?
todos los procesos de todos los usuarios
Leyendo desde el poolmon parece que mi controlador de broadcom inalámbrico está usando aproximadamente 0.4GB de RAM. Incluso si lo elimino, seguiría usando 2.6GB en el inicio, lo que sigue siendo demasiado.
Después de reinstalar el controlador inalámbrico asociado con la pérdida de memoria. Tengo una nueva captura de pantalla y me gustaría confirmar que realmente fue una pérdida de memoria.
Respuestas:
Tiene una pérdida de memoria causada por un controlador. Mire el alto valor de la memoria del núcleo no paginada. En su caso, esto es más de 3.7 GB. Puede usar poolmon para ver qué controlador está causando el alto uso.
Instale el WDK de Windows , ejecute poolmon, ordénelo Pdespués del tipo de grupo para que no paginado esté en la parte superior y Bdespués de bytes para ver la etiqueta que usa más memoria. Ejecute poolmon yendo a la carpeta donde está instalado WDK, vaya a Herramientas (o C: \ Archivos de programa (x86) \ Windows Kits \ 10 \ Tools \ x64) y haga clic en poolmon.exe.
Ahora mire qué pooltag usa más memoria como se muestra aquí:
Ahora abra un indicador de cmd y ejecute el comando findtr. Para hacer esto, abra el indicador de cmd y escriba "cd C: \ Windows \ System32 \ drivers", sin comillas. Luego, escriba "findtr / s __ . ", Donde __ es la etiqueta (nombre más a la izquierda en poolmon). Haga esto para ver qué controlador utiliza esta etiqueta:
Ahora, vaya a la carpeta de controladores (C: \ Windows \ System32 \ drivers) y haga clic con el botón derecho en el controlador en cuestión (intmsd.sys en el ejemplo de la imagen anterior). Haga clic en Propiedades, vaya a la pestaña de detalles para encontrar el Nombre del producto. Busque una actualización para ese producto.
Si la etiqueta de grupo solo muestra controladores de Windows o aparece en pooltag.txt (
"C:\Program Files (x86)\Windows Kits\8.1\Debuggers\x64\triage\pooltag.txt"
)ha usado xperf para rastrear qué causa el uso . Instale el WPT desde el SDK de Windows , abra un cmd.exe como administrador y ejecute esto:
captura 30 -60s del cultivo. Abra el ETL con WPA.exe, agregue los gráficos de Pool al panel de análisis.
Coloque la columna pooltag en primer lugar y agregue la columna de pila. Ahora cargue los símbolos dentro de WPA.exe y expanda la pila de la etiqueta que vio en poolmon.
Ahora encuentre otros controladores de terceros que puede ver en la pila. Aquí la
Thre
etiqueta (Hilo) es utilizada por AVKCl.exe de G-Data. Busque actualizaciones de controladores / programas para solucionarlo.fuente
Bueno, lo primero, antes de entrar en una respuesta más detallada. En su primera captura de pantalla, su grupo no paginado (un tipo de uso de memoria del núcleo) está en 1.3GB. Eso me parece inusualmente alto, especialmente durante solo 30 minutos después del arranque. Supongo que podría ver que NP Pool se eleva tanto después de una gran cantidad de uso o con un programa que goteaba como un tamiz. Por el contrario, mi NP Pool generalmente está entre 100 y 200 megabytes, y mi pool paginado puede ser tan alto como 400 o 500 (y eso es después de que mi sistema se ejecute sin reiniciar durante semanas).
Puede habilitar algunas columnas adicionales en el Administrador de tareas haciendo clic con el botón derecho en los encabezados de las columnas y eligiendo seleccionar columnas. Se debe añadir
Working Set (private)
,Working Set (shared)
,Commit
, yNP Pool
. Analizaría todos los procesos de todos los usuarios y vería si alguno de ellos tiene un NP Pool de más de aproximadamente 256 KB. Si ve alguno, especialmente alguno que sea considerablemente más alto, esa podría ser la fuente del problema, o al menos parte de él.Su conjunto de trabajo total, la cantidad de memoria física utilizada por un proceso, es la combinación de los conjuntos de trabajo privados y compartidos (WS). El privado es generalmente más grande para la mayoría de los procesos, sin embargo, puede haber algunos que usan una mayor cantidad de WS compartido. Los dos normalmente deben sumar el total de WS. Confirmar es la cantidad de su conjunto de trabajo que se ha comprometido con el almacén de respaldo (en la mayoría de los casos, el archivo de página de Windows). Las aplicaciones en segundo plano con frecuencia tendrán un mayor compromiso que WS, lo que indica que gran parte de su grupo paginado se ha intercambiado de la memoria a su archivo de paginación (lo cual es bastante normal para las aplicaciones de escritorio que se han minimizado y no se han utilizado durante un tiempo).
El conjunto no paginado es una memoria que no se puede intercambiar, y nunca se intercambiará, de la memoria física ... que es efectivamente su uso mínimo permanente de memoria física. La memoria de NP Pool a menudo contiene código de programa y secciones críticas que deben estar en la memoria física para comportarse de manera correcta o segura, montones especiales, etc. De 60 procesos, si todos tienen 256KB de memoria de NP Pool, entonces su uso mínimo absoluto de memoria física rondaría los 15.360 KB. En la mayoría de los casos, una o dos aplicaciones pueden tener un conjunto NP de 256 KB, mientras que la mayoría tiene menos, a menudo considerablemente menos (o ninguna). Es muy improbable que el sistema pueda localizar la totalidad de todos los procesos del conjunto de trabajo, por lo que nunca espere que el uso de memoria sea tan bajo.
Finalmente, el punto de tener más memoria es evitar tener que buscar datos desde y hacia un espacio de memoria extendido (intercambio, archivo de página) en un disco físico. La paginación es un proceso que implica mover bloques de memoria física asignada, empujar algunos al disco y llevar otros a la memoria física desde el disco. La paginación es, para que sea simple, altamente indeseable. No es "malo" en sí, pero puede ser un verdadero lastre para el rendimiento cuando ocurre con demasiada frecuencia. El punto final de aumentar la RAM física total en un sistema es permitir que más procesos mantengan más de su confirmación en la memoria física (conjunto de trabajo más grande). El consumo de memoria no es un problema, y cuando más procesos de ejecución usan más memoria, el rendimiento total del sistema y el rendimiento del proceso activo generalmente serán mayores,
Windows administra la memoria por usted, y automáticamente pagina datos dentro y fuera de la memoria hacia y desde el archivo de página (intercambio) por usted. Si ejecuta un proceso que necesita 9GB de memoria y su sistema ya está usando 4GB (de 12GB), entonces el sistema descubrirá automáticamente qué procesos no necesitan acceso inmediato a todo su conjunto de trabajo, y buscará una parte o la totalidad de su grupo paginado para intercambiar a fin de liberar ese 1GB adicional. Si su proceso grande finalmente necesita más memoria, Windows reducirá aún más el conjunto de trabajo de otros procesos hasta que tenga suficiente espacio libre para asignar el bloque recién solicitado. Su gran proceso podría eventualmente consumir toda la memoria disponible, excepto NP Pool y quizás una sobrecarga mínima adicional para ejecutar periódicamente procesos que no permiten que Windows libere más de su conjunto de trabajo (i. mi. tienen fallas de página pendientes que Windows de otro modo cambiaría de la memoria física, pero debido a que se solicitan, no se pueden mover).
Si un proceso necesita más memoria de la que se le permite acceder (los procesos de 32 bits generalmente pueden acceder a 2 Gb, y algunos un poco menos de 4 Gb con técnicas mejoradas, mientras que los procesos de 64 bits generalmente pueden acceder a alrededor de 48 Gb de memoria, cada uno), a veces Windows intentará para virtualizar su memoria con espacio de intercambio. Si una aplicación de 32 bits quiere usar su máximo permitido de 2 Gb de espacio, pero solo 1.2 Gb están disponibles, Windows reservará los 2 Gb completos en el archivo de la página y moverá los propios datos del proceso dentro y fuera del archivo de la página según sea necesario para admite el uso de memoria de la aplicación. El uso total de "memoria" en este caso puede parecer mayor que la memoria física disponible, cuando se utiliza Total Commit. Total Commit generalmente se maximiza en el tamaño total de archivo de página total, que cuando es administrado por el sistema, generalmente es 2-3 veces la cantidad de memoria física. En tu caso,
Un punto final. Dijiste en tu respuesta que tenías 16 Gb de RAM, mientras que el Administrador de tareas solo ve 12 Gb de RAM. Una de las dos cosas aquí. O su sistema realmente solo tiene 12 Gb de RAM o uno de sus dispositivos no se está registrando correctamente. Si un palo de ram (supongo 4x 4Gb sticks), puede ser malo, puede no estar completamente asentado en su placa base, o su placa base puede tener un problema de detección de memoria.
Para verificar si es lo último, primero debe actualizar el BIOS de su placa base a la última versión. Tuve un problema similar ... mis seis palos de ram DDR3 de Tripple-Channel (6x 2Gb) fueron buenos en base a pruebas individuales cada uno ... pero mi placa base decidió al azar no contar uno o dos de ellos de vez en cuando, a menudo me deja con solo 8 Gb de ram. Una actualización del BIOS solucionó el problema y ahora tengo acceso confiable a todos los 12 Gb de mi memoria.
fuente
Está usando mucha RAM porque está diseñado para hacerlo. No hay absolutamente ningún costo asociado con el uso de RAM. De hecho, la RAM utilizada es mejor que la RAM libre porque el sistema operativo no tiene que hacer nada para usarla. El uso de RAM libre requiere que se use, lo que requiere esfuerzo.
Si estás pensando "Quiero mi RAM libre ahora para poder usarla más tarde", olvídalo. RAM no tiene que ser libre ahora para usarlo más tarde. Puede usarlo ahora y usarlo más tarde. No hay compensación aquí, no hay absolutamente ningún inconveniente en usar RAM.
La RAM se usa y se cambia directamente de un uso a otro sin tener que pasar por el esfuerzo de liberarla solo para tener que volver a usarla. Los sistemas operativos modernos dejan RAM libre solo cuando no tienen otra opción.
fuente
“Why is Windows using RAM?”
, la pregunta es“Why do the RAM usage numbers not add up; why is one part reporting a higher usage than another part?”
Esta publicación debe ser un comentario en el mejor de los casos porque no aborda la pregunta real ni intenta responderla; solo interviene con un poco de consejo, y un mal consejo ya que si el OP lo hubiera ignorado como se sugiere, la pérdida de memoria no se descubriría.Una razón no mencionada anteriormente es Hyper-V.
Pude identificarlo con la excelente utilidad RamMap :
La captura de pantalla es de después. Antes de que la memoria "Driver Locked" superara los 6 GB, más del 80% de la RAM en esta máquina en particular. Tuve que ir al Administrador de Hyper-V y desactivar "Memoria dinámica". Curiosamente, incluso después de volver a habilitarlo, la memoria "Driver Locked" se mantuvo baja: solo puedo suponer que las instancias anteriores la aumentaron y que Hyper-V no reduce automáticamente su memoria asignada:
fuente