Por qué Windows mata procesos o no les permite asignar más memoria incluso si hay algo de RAM libre

Por qué Windows mata procesos o no les permite asignar más memoria incluso si hay algo de RAM libre

Esta pregunta sigue la anterior.¿Cómo analizo con precisión el uso de memoria en Windows 7?

¿Por qué en un sistema donde los procesos reales consumen solo alrededor del 40% de la memoria física (conjunto de trabajo privado) y el resto es de alguna manera misteriosamente devorado por el sistema operativo, el kernel no permite que los procesos asignen más memoria incluso si todavía quedan alrededor de 800 MB de memoria puesta a cero? ¿memoria?

Memoria

¿Es posible cambiar la configuración del kernel para poder utilizar el 100% de la memoria operativa? En este momento, en el administrador de tareas, cuando llego al 80% del uso de la memoria, el kernel actúa como si estuviera al 100% porque esa es la ventaja cuando la aplicación comienza a fallar y no puede asignar memoria. ¿Cómo libero este 20% para poder utilizar toda la memoria que tengo hasta el 100%? ¿Por qué ese 20% está "reservado" y para qué? El sistema es windows 7 de 64 bits con 4gb de ram en total. El intercambio está deshabilitado por motivos de rendimiento. (El disco duro es terriblemente lento y habilitar el intercambio hace que la computadora sea casi inutilizable)

Respuesta1

El conjunto de trabajo privado no es la totalidad de la memoria de un proceso:

Bytes privados, conjunto de trabajo, tamaño virtual

El tamaño virtual es la cantidad total de memoria que un programa podría necesitar para ejecutarse. Muchos programas no utilizan toda la memoria virtual que se les asigna, pero la solicitan para asegurarse de tener suficiente para realizar cualquier operación que usted les solicite. También se usa para archivos mapeados en memoria y otras cosas que son más fáciles de hacer como memoria (espacios de memoria compartida, IPC), pero que no están estrictamente relacionadas con el proceso que solicita memoria privada.

Para que esto funcione, el sistema operativo debe:

  • Proporcionar una garantía de que la memoria estará disponible.
  • Rechazar la solicitud de memoria (la mayoría de las veces, esto hará que la aplicación se bloquee o se cierre)

Normalmente, el sistema asignará esta memoria virtual no utilizada al archivo de página, y luego solo las partes que realmente se utilizan ocuparán RAM física. Sin embargo, al deshabilitar su archivo de paginación, está obligando al sistema operativo a usar memoria física para brindar estas garantías. Esto significa que terminará con muchas páginas de memoria puestas a cero que no se pueden asignar a otro proceso.

Cuando tienes un archivo de paginación, un proceso solo necesita una cantidad de memoria física entre Working Sety . Private BytesCuando desactiva su archivo de paginación, Windowsdebeasígnele la Virtual Sizecantidad total de memoria o rechace la solicitud de memoria. (En el Monitor de recursos de Windows, esta es la Commitcolumna, porque Windows escometiendoesa cantidad de memoria virtual al proceso.

Respuesta2

Resource Monitor debería mostrar si realmente tiene memoria libre.

Monitor de recursos

Ver también¿Algún beneficio o perjuicio por eliminar un archivo de paginación en una máquina con 8 GB de RAM?

información relacionada