¿La computadora no usa más de 4 de mis 8GB de RAM ...? (Computadora de 64 bits)

17

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"

mattycfp
fuente
1
¿Cómo puedes ver que no está usando más de 4GB? ¿Has probado mis otros programas para probar o usar memoria? Chrome y Firefox no son tan exigentes en cuanto a memoria ...
Mokubai
99
Hasta ahora, nadie ha mencionado que más RAM no hace que una computadora sea más rápida per se. La única vez que verá un notable aumento de velocidad es si su carga de trabajo consume tanta RAM que Windows necesita paginar continuamente en el disco; en este caso, agregar más RAM definitivamente puede acelerar las cosas. Pero el 98% de las personas no hacen el tipo de cosas que requieren> 4 GB de RAM y, en consecuencia, nunca experimentarán ningún beneficio tangible al tener toda esa RAM adicional.
misha256
1
@mattycfp Hay otra posibilidad que conozco que puede limitar el uso de RAM de Windows. ¿Es posible que usted, alguien más o algún software pongan un LÍMITE al uso de RAM? Eche un vistazo a este artículo y siga las instrucciones: helpdeskgeek.com/windows-7/…
misha256
1
Firefox tiene un límite de 2GB en todas las pestañas / procesos, también Chrome podría. Esto se suma al límite normal por proceso.
JamesRyan
66
Tener Firefox y Chrome abiertos con 20 pestañas cada uno definitivamente no es suficiente. Tengo Firefox abierto con 157 pestañas, ni siquiera consume 1 GB de RAM. Comprueba mientras ejecutas los juegos. La respuesta de Jamie Hanrahan es muy buena y detallada. Para obtener más información, lea la publicación de blog de Mark Russinovich Empujando los límites de Windows. enlace .
sbecker

Respuestas:

27

si ayuda, Resource Monitor describe el resto de la RAM como "En espera"

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 ayuda

c:\> testlimit -d 4 -c 512intentará 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.

Jamie Hanrahan
fuente
16

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:

Max Ram Setting

Este artículo tiene más detalles, pero acceder al cuadro de diálogo anterior es fácil:

  1. Haga clic en el ícono Inicio y escriba msconfig.exeen el cuadro de búsqueda

    cómo iniciar msconfig

  2. Inicie msconfig.exe, haga clic en la Bootpestaña, luego haga clic en el Advanced Options...botón y estará en:

    cuadro de diálogo de configuración de inicio de msconfig

  3. Ingrese un valor razonable, por ejemplo, 8192 para 8GB de RAM, o desmarque la Maximum memorycasilla de verificación por completo, lo que debería hacer que Windows use toda la RAM que tiene. Definitivamente probaría AMBAS opciones.

    ajuste máximo de ram

misha256
fuente
@ misha256 - Profundamente confundido por una respuesta que originalmente tenía muy poco contenido, y sí, si alguien más presentara una de las respuestas, ni siquiera lo habría pensado dos veces (excepto quizás juzgar su utilidad un poco más severa).
Ramhound
@ misha256 si este fuera el problema, entonces OP no vería unos 4 GB en uso y otros 4 GB en espera. La RAM que está excluida por esa opción no aparece en "espera"; OP tampoco vería "8GB de memoria y 7.74GB son utilizables". (se esperan 256 MB no "utilizables" debido, por ejemplo, a la tarjeta de video).
Jamie Hanrahan
10

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.

SysInternals RAMMap

Esto no significa que su PC permanecerá en este estado. Simplemente abra algunos programas y la memoria se usará.

Thomas Weller
fuente
El término "RAM virtual" no debe utilizarse. Además, no diría que esas otras herramientas se centran principalmente en la memoria virtual: tienen muchos contadores disponibles que muestran el uso de la memoria física.
Jamie Hanrahan
5

Citando un muy buen artículo sobre el tema:

Más memoria en realidad no aumenta la velocidad de procesamiento [de una computadora]. Solo una CPU más rápida puede hacer eso.

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.

misha256
fuente
2
@mattycfp Acabo de abrir 16 Windows en mi máquina de 4GB, incluyendo Internet Explorer, Firefox, Word, Excel, Outlook, Skype, Visual Studio 2010 (un conocido RAM RAM), Photoshop, Media Player, VLC, MPC-HC, además de algunas otras aplicaciones aleatorias, y estoy cambiando entre ellas haciendo cosas, cargando documentos, reproduciendo videos, todo, y mi uso real de RAM es de 2.2GB Y la máquina es RÁPIDA como siempre. Mira, 4GB hace todo tan fácil ;-)
misha256
3
@mattycfp 120 Windows de FF? Es más probable que maximices tu CPU que la RAM haciendo eso, especialmente en una computadora portátil. Además, no olvide que FF es una aplicación de 32 bits, y múltiples ventanas FF en realidad COMPARTIR un solo proceso de 32 bits, por lo que FF es bastante limitado, solo puede usar 2 GB de su total de 8 GB. Es por eso que necesita ejecutar muchas aplicaciones diferentes al mismo tiempo para probar cómo Windows usa su RAM, no solo 120 Windows de FF.
misha256
44
@ misha256 Usted va a ver mejoras en el rendimiento si el sistema está en constante intercambio de memoria. A medida que aumenta la presión de la memoria, aumenta la paginación y el sistema se ralentiza. No es que la adición de memoria le hará ir más rápido, pero se mantendrá de desaceleración, especialmente si el software involucrado asume una cierta cantidad de paginación en sus requisitos del sistema. Ese artículo no parece mencionar mucho sobre la paginación. La paginación es lo que te frena.
phyrfox
44
@ misha256 Tengo IRC, Spotify, Notepad ++, Chrome y Task Manager abiertos y estoy usando 3.02GB de mi total de 4GB :( Abriendo 3 instancias VS2013 (que tiendo a hacer en el trabajo) y eso me maximiza. Es un poco más fácil para llegar a 4 GB de límite de lo que parece, pero en la práctica requiere un usuario avanzado.
Thebluefish
1
@ misha256 Corrección: FF es compatible con direcciones grandes y puede direccionar hasta 3GB en un proceso de 32 bits. La versión de 64 bits de FF (actualmente en versión beta para Windows) obviamente puede abordar mucho más. También siento que está generalizando demasiado cuando dice que es difícil "usar" (conjunto de trabajo privado residente) más de 4 GB de RAM; realmente depende mucho de lo que esté haciendo y de cuánto se mantenga abierto. Mi uso de línea base ya supera eso.
Bob
5

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:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define PAGE_SZ (1<<12)

int main() {
    int i;
    int gb = 2; // memory to consume in GB

    for (i = 0; i < ((unsigned long)gb<<30)/PAGE_SZ ; ++i) {
        void *m = malloc(PAGE_SZ);
        if (!m)
            break;
        memset(m, 0, 1);
    }
    printf("allocated %lu MB\n", ((unsigned long)i*PAGE_SZ)>>20);
    getchar();
    return 0;
}

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)

XtrmJosh
fuente
Desearía poder compilarlo, pero mi Internet sigue corrompiendo cada descarga que intento: U
mattycfp
55
@mattycfp ¿Entonces no puede usar> 4 GB de RAM en su sistema operativo y todas sus descargas siguen dañándose? Es hora de (a) LIMPIAR el disco duro y realizar una nueva instalación del sistema operativo, o (b) tirar la computadora portátil a la basura y obtener una adecuada.
misha256
1
El programa ofrecido asigna y "toca" 2 GB de memoria virtual, una página a la vez, lo que dará como resultado que cada página ingrese a la RAM inmediatamente después de que se asigne. Pero eso no garantiza que Windows lo mantendrá todo en RAM al mismo tiempo. Dado que el programa no accede repetidamente a todos los vm, las páginas asignadas primero pueden estar sujetas a paginación. Puede obtener el mismo efecto que ese programa con la herramienta interna de Windows "testlimit", opción -d.
Jamie Hanrahan
@mattycfp si ese es el caso, es posible que desee ver que la RAM no tiene la culpa ... ¿Se corrompe de alguna manera cada archivo que descarga? A veces también hay problemas con los sticks incompatibles, por lo que debe consultar el manual de la placa base y confirmar que su RAM está organizada de acuerdo con esas instrucciones (las ranuras se numerarán 1 y 2 o 1-4, y generalmente 1 y 3 deben emparejarse con el mismo "tipo" o "marca y modelo" de RAM, como lo harán 2 y 4). & Sí, este programa debería usar hasta 2 GB, que se pueden editar cambiando la línea int gb = 2; // memory to consume in GB, solo cambie el 2.
XtrmJosh
¿Por qué declaraste que gb es de tipo int cuando el único uso lo convierte en sin signo por mucho tiempo? También está tratando i de la misma manera y haciendo una comparación mixta entre int y cast-to unsigned. Así que solo haga que no firme mucho, también.
JDługosz
1

¿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.

milesrf
fuente
Si ejecuta varios programas de 32 bits, su uso total de RAM puede alcanzar fácilmente los 8 GB.
Jamie Hanrahan
0

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.

JDługosz
fuente