¿Cómo hago que Windows 7 sea menos agresivo en la memoria caché?

16

Recientemente noté que Windows 7 en mi máquina se ha estado quejando de quedarse sin memoria y que debería cerrar algunos programas. Por lo general, señalaría un programa que tengo en ejecución que tiene una pérdida de memoria y ha crecido bastante. Sin embargo, por lo general, estos programas comienzan con 20 MB de uso de RAM y solo después de ejecutar el programa entre 12 y 24 horas aumentan, como máximo, a 200 MB de uso de RAM. Nunca tengo más de tres de estos programas ejecutándose al mismo tiempo, por lo que he visto un máximo de 600 MB de uso de RAM de mis programas en ejecución.

Estoy ejecutando Windows 7 x64 en una máquina con 4 GB de RAM. Al principio, realmente olvidé esto y simplemente reiniciaba los programas cuando Windows se quejaba, pero ahora que lo recordaba, el hecho de que Windows se quejara de que yo usara 600 MB de RAM (menos de 2 GB incluso si incluye la memoria utilizada por el sistema operativo) parecía extraño. . Entonces abrí la ventana de proceso del sistema para ver mi uso total de memoria de mis procesos y procesos del sistema que estaban en la lista. Se sumó a poco más de 700 MB, por lo que todavía estaba confundido. Luego fui al Monitor de recursos y abrí la pestaña Memoria. Ahí creo que encontré mi respuesta. Notó que en realidad solo estaba usando el 33% de mi RAM. Sin embargo, en la barra de asignación de recursos de Memoria física, la sección Modificada tenía hasta 2,3 GB, la sección En espera tenía hasta 540 MB, la sección Libre tenía menos de 20 MB, la memoria en caché figuraba en 2. 8 GB y la memoria disponible figuraba en 550 MB. (Estos valores son ligeramente redondeados, por supuesto, ya que tu cambian constantemente mientras escribo esto).

Entonces aparentemente Windows 7 está usando más memoria que yo. Hice, en algún momento en el pasado, algunas modificaciones al menú de servicios de Windows instalado, pero eso fue solo para deshabilitar ciertos servicios de alojamiento, ya que no quería compartir ningún medio, habilitar el cliente Telnet y eliminar Internet Explorer, pero podría ser mi culpa. ¿Hay alguna manera de hacer que Windows no haga esto o al menos guarde en caché mucho menos agresivamente para que deje de recibir estos avisos de "memoria baja"?

grg-n-sox
fuente
2
El OP no comprende el problema. Se está quedando sin memoria virtual respaldada. Todo su análisis sobre la memoria física es irrelevante. Puede tener mucha memoria física libre pero insuficiente memoria virtual libre respaldada y la advertencia de memoria emergente es una advertencia sobre la escasez de memoria virtual respaldada, no memoria física. (Aunque una pérdida de memoria física de un conductor puede causar el problema indirectamente).
David Schwartz
"El OP no comprende el problema". Al igual que varios de los que respondieron. :(
Jamie Hanrahan

Respuestas:

10

La memoria en espera no es un problema, se considera "libre" y se reasignará a pedido, solo contiene memoria utilizada recientemente por los programas, pero ahora está liberada. Si otro programa solicita más memoria de la que es "Libre", el sistema debería asignar desde el conjunto en espera sin problemas (ya que la memoria "en espera" no está realmente en uso en este momento).

Su memoria modificada excesiva es su problema, ya que no se puede reasignar fácilmente. Ver aquí . Es probable que sea causado por una pérdida de memoria (que parece corresponder con su primer párrafo, ¿qué programas tienen pérdidas?) O por un archivo de página demasiado pequeño (¿su archivo de página tiene un tamaño fijo o está desactivado?).

DMA57361
fuente
3
Como señalé en mi comentario para la respuesta de CJM, cerré todas mis aplicaciones que eran cuestionables (algunos juegos de PC independientes) y solo tienen el Administrador de tareas, Monitor de recursos, AVG y Chrome ejecutándose ahora, pero todavía tengo 1.6 GB de memoria modificada. Dejo mi computadora encendida durante días, lo que coincide con el perfil en el artículo que vinculó. Sin embargo, una nota en esa página web era buscar un proceso con un gran tamaño de confirmación. Actualmente ese es un proceso de nSvcAppFlt.exe. Solo tiene un tamaño de conjunto de trabajo de 30 MB pero un tamaño de confirmación de 13.5 GB. ¿Lo que da?
grg-n-sox
2
Ese es el programa que está perdiendo tu memoria. Consulte también social.answers.microsoft.com/Forums/en-US/w7performance/thread/… . Retíralo y todo debería estar bien.
akid el
Muchas gracias. En realidad eso es algo ingenioso. Entonces, básicamente, si noto que mi RAM se está consumiendo, puedo ir a mi monitor de recursos, ver si la sección de Memoria modificada es enorme y ver qué proceso tiene un gran tamaño de confirmación y encuentro que mi programa de pérdida de memoria. Definitivamente una buena herramienta de diagnóstico para Windows.
grg-n-sox
Deshabilite o actualice su software de firewall Nvidia.
David Schwartz
Tienes tres "tú" que deberían ser "tu" en el último párrafo. (no puede sugerir edición, demasiado pequeña).
Shadow The Burning Wizard
4

El almacenamiento en caché preventivo de SuperFetch no es su problema. Windows 7 utilizará tanta memoria de reserva como sea posible para almacenar en caché de forma preventiva lo que cree que necesitará a continuación. Si lo hace bien, le ahorra un poco de tiempo y sus aplicaciones parecen más rápidas y más receptivas.

Si adivina mal y necesita otros datos, Superfetch liberará parte de la memoria que tiene para permitirle cargar los datos que realmente necesita. Ver: http://arstechnica.com/microsoft/news/2010/02/behind-the-windows-7-memory-usage-scaremongering.ars

Si tiene problemas de "poca memoria", no será por SuperFetch, ya que cederá tanta memoria como sea necesaria si las aplicaciones lo demandan. Su memoria disponible (550 MB) es lo que está utilizando Superfetch, por lo que claramente todavía no se ha quedado sin memoria. Incluso cuando use toda su RAM, su máquina volverá a caer en la memoria virtual, aunque querrá evitar esto debido al impacto en el rendimiento ...

Por lo tanto, sugiere que los problemas de 'poca memoria' se deben a problemas en otros lugares, tal vez una de sus aplicaciones con fugas está consumiendo (y no renunciando) otros tipos de recursos ...

De cualquier manera, es más probable encontrar la solución abordando sus aplicaciones con errores, que jugando con SuperFetch ...

CJM
fuente
Entiendo que la sección Standby de la memoria es parte de la memoria caché, pero en serio tengo que dudar que el problema es mis programas. Ahora los cerré todos, así que todo lo que tengo en ejecución es AVG, Administrador de tareas, Monitor de recursos y una sola ventana de Chrome con 4 pestañas. Solo tengo 1042 MB en uso con 1417 MB de memoria disponible, pero todavía tengo esa gran cantidad de memoria modificada que ocupa 1633 MB que el Administrador de tareas cuenta como memoria usada y me da avisos de poca memoria. ¿Hay alguna manera de reducir la cantidad de memoria modificada o simplemente desactivar el aviso de poca memoria?
grg-n-sox
0

Como no cree que el problema sea causado por un programa con pérdida de memoria, la alternativa sería aumentar el tamaño del archivo de la página.

Si bien el archivo de la página no es su memoria principal, permitirá que el sistema operativo intercambie más datos al disco duro y, con suerte, detenga el mensaje de "falta de memoria". La única otra opción sería eliminar el programa asociado con el proceso que tiene una gran huella de 13 GB, aunque no tengo idea de qué programa necesitaría para paginar tanta memoria, a menos que fuera un juego de PC de alta gama o un software de renderizado 3D.

Britton
fuente
0

Desde mi experiencia, la pérdida de memoria en espera es un problema real. Por ejemplo, si ejecuto Snagit en el modo de ventanas corredizas para un artículo largo, habrá partes del artículo que no se capturaron cuando se ejecutan solo en la memoria en espera. En cualquier caso, encuentro que mi computadora funciona lentamente en la memoria en espera.

Para resolver el problema, uso el optimizador de memoria de Glary Utilities gratuito. Mi computadora tiene 6 GIG de memoria. Cuando inicio por primera vez, tengo alrededor de 2 GIG de memoria en uso, 2 GIG de Stand-by y 2 GIG de lo que yo llamo memoria Free Free según el Monitor de recursos de Windows. Dentro de medio día más o menos, toda mi memoria Free-Free se convertiría en memoria Standby si estaba usando la computadora o no. Ahora tengo el optimizador de memoria Glary Utilities que se inicia con Windows y puedo mantener mi computadora funcionando de manera indefinida teniendo disponibles los 2 GIG completos de memoria Free-Free.

Cada vez que me siento para otra sesión, primero hago doble clic en el icono de la bandeja del optimizador de memoria y hago una optimización; pidiendo que se libere mi 2 GIG original de memoria Free-Free. Puedo pedir más, pero eso es lo máximo que se liberará independientemente. El optimizador tarda unos 30 segundos en completarse, lo cual es mucho menos que lo requerido para un reinicio. Tiene un modo de optimización automática, pero no he podido descubrir cómo hacerlo funcionar.

James Horner
fuente
La memoria en espera no es un problema.
Jamie Hanrahan
El "optimizador de memoria" debe desecharse. La RAM en espera es la RAM que recientemente estuvo "en uso" en los procesos. Se eliminó de esos procesos debido a la sustitución del conjunto de trabajo, pero aún contiene lo que hizo cuando estaba "en uso". Si un proceso necesita lo que hay en una de esas páginas, la página puede volver rápidamente al proceso. Es por eso que Standby se considera parte del recuento de "Caché". Pero el modo de espera también es tan "Disponible" para otros usos como lo es la RAM libre. Su "optimizador de memoria" acaba de mover un montón de páginas de Standby a Free, es decir, derribó la caché de Standby [...]
Jamie Hanrahan
[...] sin tener más RAM disponible. ¡Ya que "Standby" siempre estuvo "Disponible" de todos modos! Con Vista y versiones posteriores, Superfetch ahora puede usar parte de Standby para el almacenamiento en caché de archivos proactivo, pero las páginas aún son reutilizables para su uso por otros procesos según sea necesario. Por lo tanto, SuperFetch tampoco quita ninguna página de "Disponible". Deshágase del "administrador de memoria", está dañando el rendimiento de su sistema, causando E / S de disco innecesarias.
Jamie Hanrahan
-1

Para resolver este problema

Vaya a start-run-msconfig, luego preste servicios y elimine la marca de "Windows driver foundation". Haga clic en Aceptar y reinicie la máquina.

Recuerde: solo los pasos mencionados anteriormente resolverán este problema. Si ha deshabilitado services.msc, todavía está activo al momento de iniciar el sistema operativo y bloqueará su memoria.

Para verificar esto, use la herramienta

usuario261975
fuente
Deshabilitar el servicio WDF deshabilitará cualquier dispositivo que dependa de ese modelo de controlador. Es una mala idea
Jamie Hanrahan