Recientemente, para preparar mi computadora para el futuro, agregué encima de mi memoria original de 4GB. Llevé la memoria total a 8 GB, y no he tenido un cambio notable en la velocidad, incluso cuando debería. Fui a buscar en el Administrador de tareas y vi que mi computadora NO utilizaría más de 4 GB de memoria, incluso con Chrome y Firefox abiertos con 20 pestañas cada uno.
Después de investigar, todo lo que todos habían sugerido hacer era verificar cuánta memoria se podía usar. Por extraño que parezca, dice que tengo 8GB de memoria, y 7.74GB son utilizables.
Las especificaciones de mi HP Pavilion g7-1075dx se pueden encontrar aquí. Es una PC portátil con Windows 7 Home Premium de 64 bits con AMD Phenom II.
Mi pregunta principal es: con mi computadora de 64 bits, ¿por qué mi computadora no usa más de 4 GB de memoria, incluso cuando se pueden usar más de 7?
EDITAR: si ayuda, Resource Monitor describe todas las demás RAM como "En espera"
Respuestas:
La RAM "en espera" está en uso. Se está utilizando como caché de página (contiene páginas perdidas recientemente de todos los conjuntos de trabajo de proceso; es decir, las fallas de página pueden resolverse sin ir al disco) y también para el almacenamiento en caché proactivo de archivos mediante SuperFetch.
Se considera "disponible" porque las páginas en espera no tienen que escribirse en el disco antes de que puedan asignarse a algún otro uso. Por ejemplo, cuando un proceso realiza un error de página que no requiere la lectura del disco, nueva página física (s) deberá atribuirse a ese proceso, y si es necesario se puedan tener en la lista de espera. (Esta no es la primera opción para encontrar páginas para este propósito, sería la lista gratuita y luego la lista de páginas cero).
En otras palabras, su sistema está funcionando como debería ser.
Puede forzar a su sistema a obtener más RAM en el estado "en uso" fácilmente con la herramienta de línea de comandos
testlimit
, una de las herramientas utilizadas en los experimentos en Windows Internals . No es parte de las herramientas regulares del sistema, pero está asociado con ellas; encontrarlo aquí en el sitio sysinternals. La descarga es un archivo zip que contiene dos versiones, testlimit.exe y testlimit64.exe. Ambos están vinculados con direcciones grandes, por lo que la versión de 32 bits podrá asignar hasta 3 GiB en una máquina de 32 bits iniciada con / 3GB, hasta 4 GiB en una máquina de 64 bits.c:\> testlimit -?
da ayudac:\> testlimit -d 4 -c 512
intentará asignar 2 GiB de espacio de direcciones virtuales privadas de proceso en 512 asignaciones de 4 MiB cada una. Esto debería funcionar bien en una máquina de 64 bits. En una máquina de 32 bits que no arranca con / 3GB (la mayoría no lo hace) puede producirse un error un poco antes porque ya hay algunos MiB de cosas en el proceso (como el programa en sí, todas las DLL, etc.), por lo que no hay suficientes 2 GiB disponibles para que el programa los asigne.En ambos casos habrá una reducción en la RAM "disponible" y un aumento en la RAM "en uso", pero no necesariamente vale 2 GiB porque no hay garantía de que el sistema operativo deje a los 2 GiB en el conjunto de trabajo privado del proceso. Incluso si lo hace a corto plazo, es posible que vea que el conjunto de trabajo del proceso disminuye más adelante cuando el sistema operativo decide "hm, realmente no está haciendo nada con él, otros procesos lo necesitan más" y lo pagina.
Aumente demasiado el tamaño de los "fragmentos" de asignación, reduciendo el número de fragmentos en consecuencia, y es probable que falle antes, ya que cada asignación debe ser prácticamente contigua. por ejemplo, intente encontrar siete fragmentos de 512 MiB en un espacio de direcciones de 4 GiB y es probable que falle.
Si usa la opción l (eak) en lugar de d (irty), el programa asignará el espacio virtual pero nunca lo referenciará. Esto no dará como resultado una disminución apreciable de la RAM "disponible".
(La opción d (irty) toma su nombre del "bit de página sucia" en la entrada de la tabla de páginas x86 / x64, que se establece cuando se accede a la página virtual correspondiente con un operando de estilo "modificar", lo que significa que el contenido de la página tiene se ha cambiado. Esta es la indicación de Windows de que, si la página tiene que ser expulsada del conjunto de trabajo del proceso, su contenido debe guardarse en algún lugar antes de que la página pueda usarse para otra cosa. Las páginas con el conjunto de bits "sucio" van a la "lista de páginas modificadas" inmediatamente después del desalojo; desde allí, Windows las escribe en sus respectivas tiendas de respaldo).
Necesitará tener suficiente "commit" disponible para que estas pruebas funcionen como se describió anteriormente (incluso para la opción l (eak), aunque esta opción no use una cantidad apreciable de RAM). Específicamente, su "límite de compromiso" debe ser al menos 2 GiB (o la cantidad que esté asignando) más alto que el "cargo de compromiso" antes de comenzar su prueba. Tenga en cuenta que esto se aplica incluso si está utilizando la opción l (eak), no solo d (irty). Si se encuentra con este límite, verá las ventanas emergentes "el sistema se está quedando sin memoria" o similar. La cura, por supuesto, es agregar más RAM y / o aumentar la configuración de su archivo de paginación.
fuente
Windows puede configurarse para limitar el uso de RAM. No sé cómo o quién habría configurado esta configuración en su computadora portátil, pero debe verificar:
Este artículo tiene más detalles, pero acceder al cuadro de diálogo anterior es fácil:
Haga clic en el ícono Inicio y escriba
msconfig.exe
en el cuadro de búsquedaInicie msconfig.exe, haga clic en la
Boot
pestaña, luego haga clic en elAdvanced Options...
botón y estará en:Ingrese un valor razonable, por ejemplo, 8192 para 8GB de RAM, o desmarque la
Maximum memory
casilla de verificación por completo, lo que debería hacer que Windows use toda la RAM que tiene. Definitivamente probaría AMBAS opciones.fuente
Puede usar SysInternals RAMMap para ver exactamente qué hace la PC con su RAM física . Otras herramientas como Task Manager o Process Explorer se enfocan principalmente en la memoria virtual y no son las mejores herramientas para esta situación.
En la pestaña "Usar recuento", puede ver que grandes porciones no se usan mientras no ha abierto muchas aplicaciones.
Esto no significa que su PC permanecerá en este estado. Simplemente abra algunos programas y la memoria se usará.
fuente
Citando un muy buen artículo sobre el tema:
Y en mi experiencia eso es absolutamente cierto, en general. A menos que esté ejecutando muchos programas al mismo tiempo y esos programas tengan requisitos de RAM significativos, difícilmente verá ningún beneficio en el mundo real al tener más de 4 GB de RAM.
La gente no parece darse cuenta de que 4 GB es una gran cantidad de RAM. Hacer que Windows use más que eso requiere esfuerzo. Tendrás que abrir muchas aplicaciones diferentes y, en esas aplicaciones, abrir algunos archivos grandes. Agregue algunas pestañas de videos de YouTube y podría comenzar a ver> 4GB de utilización.
fuente
Windows hace algunas cosas inteligentes, como la memoria de paginación. Podría ser que considera que la mayoría de las tareas que está haciendo son innecesarias y decide volcar una carga de cosas en el archivo de la página, haciendo que parezca que lo está haciendo solo para evitar usar toda su RAM. Puede probar esta teoría deshabilitando la paginación, aunque esto no es algo que debería haber configurado permanentemente. Hay muchos tutoriales en internet para hacer esto. Una de las cosas que hace (incluso en mis máquinas de 24 GB y 64 GB) es hacer que las reglas de paginación sean mucho más estrictas cuando alcanzan aproximadamente un 50%, 80% y 90% de consumo (estas cifras son aproximadas). He notado que en cada una de estas etapas se arroja una carga de cosas al archivo de la página.
Una cosa divertida de hacer podría ser algo como esto:
Eso es un código C. Obtenga GCC o algún compilador, hágase un exe y observe cómo aumenta su consumo de memoria. Si desea consumir más de 2 GB de memoria, deberá compilar y ejecutar como un proceso de 64 bits. Si te gusta ese tipo de cosas, podría ser un experimento interesante, por lo menos :)
Editar: solo quería señalar que el programa no morirá con esto. Lo edité de algún código anterior ya que no estoy seguro de que otro código hubiera funcionado (la memoria se paginaría, lo que resultaría en que no se consuma memoria, jajaja). El nuevo código contiene una línea
int gb = 2; // memory to consume in GB
: al cambiar el 2 se ajustará la cantidad de memoria que el programa debe consumir, por lo que puede configurarlo para que se agote tanto como desee. Establecerlo en algo por encima de lo que tiene su sistema probablemente hará que se bloquee (no probado, así que úselo con precaución)fuente
int gb = 2; // memory to consume in GB
, solo cambie el 2.¿Está utilizando un programa de 32 bits para probar qué tan rápido está funcionando la computadora? Si es así, tenga en cuenta que las direcciones de 32 bits solo pueden apuntar a 4 GB de RAM, incluso si tiene más RAM presente. Tendrá que repetir la prueba con un programa de 64 bits y verificar su velocidad con 4 GB de RAM presente, y nuevamente con 8 GB de RAM presente, si desea resultados útiles. Además, tendrá que ser un programa de 64 bits que pueda usar más de 4 GB de memoria para ejecutarse más rápido; no todos pueden hacerlo. Para saber si un programa es de 32 bits, inicie el programa y déjelo en ejecución, luego inicie el Administrador de tareas de Windows, haga clic en Procesos y desplácese hacia abajo hasta encontrar el programa de interés. Si el nombre del programa en la columna Nombre de la imagen va seguido de un espacio, entonces * 32, entonces es un programa de 32 bits.
fuente
Obtenga el explorador de procesos (procexp) de Sysinternals . Tiene un gráfico de recursos y puede mostrar el uso de memoria por proceso, mucho mejor que la vista de proceso de stock.
Puede ver el uso físico de RAM frente al uso de espacio virtual, para ver si simplemente no lo está utilizando todo o si parece que necesita más, pero está limitando el uso físico.
La mayoría de los programas mundanos usan un tamaño de conjunto de trabajo diferente que mantendrá baja la demanda. Si un programa asigna una tonelada de memoria, en realidad no lo está utilizando todo al mismo tiempo ...
Windows moverá agresivamente las páginas de su programa a una lista donde estén disponibles, pero si ocurre una falla en la página, se retirará de la lista sin tener que cargarla desde el archivo de intercambio. El modo de espera podría incluir estos. Diferentes herramientas etiquetan diferentes conjuntos de diferentes maneras.
Puede intentar desactivar el archivo de intercambio, al menos para esta prueba. Eso hará que la memoria de datos se use realmente. Aunque procexp podría ser suficiente para ver eso claramente.
fuente