Leer en inglés

Compartir a través de


RAM, memoria virtual, archivo de página y administración de memoria en Windows

Número de KB original: 2160852

Resumen

Este artículo contiene información básica sobre la implementación de memoria virtual en versiones de 32 bits de Windows.

En sistemas operativos modernos como Windows, las aplicaciones y muchos procesos del sistema siempre hacen referencia a la memoria mediante direcciones de memoria virtual. Las direcciones de memoria virtual se traducen automáticamente a direcciones reales (RAM) por el hardware. Solo las partes principales del kernel del sistema operativo omiten esta traducción de direcciones y usan direcciones de memoria reales directamente.

La memoria virtual siempre se usa, incluso cuando la memoria requerida por todos los procesos en ejecución no supera el volumen de RAM instalado en el sistema.

Procesos y espacios de direcciones

Todos los procesos (por ejemplo, ejecutables de aplicaciones) que se ejecutan en versiones de 32 bits de Windows se asignan direcciones de memoria virtual (un espacio de direcciones virtuales), que van de 0 a 4.294.967.295 (2*32-1 = 4 GB), independientemente de la cantidad de RAM instalada en el equipo.

En la configuración predeterminada de Windows, se designan 2 gigabytes (GB) de este espacio de direcciones virtuales para el uso privado de cada proceso y los otros 2 GB se comparten entre todos los procesos y el sistema operativo. Normalmente, las aplicaciones (por ejemplo, bloc de notas, Word, Excel y Acrobat Reader) usan solo una fracción de los 2 GB de espacio de direcciones privadas. El sistema operativo asigna fotogramas de página de RAM solo a las páginas de memoria virtual que se usan.

La extensión de dirección física (PAE) es la característica de la arquitectura de Intel de 32 bits que expande la dirección de memoria física (RAM) a 36 bits. PAE no cambia el tamaño del espacio de direcciones virtuales (que permanece en 4 GB), sino solo el volumen de RAM real que el procesador puede abordar.

La traducción entre la dirección de memoria virtual de 32 bits que usa el código que se ejecuta en un proceso y la dirección RAM de 36 bits se controla de forma automática y transparente por el hardware del equipo según las tablas de traducción que mantiene el sistema operativo. Cualquier página de memoria virtual (dirección de 32 bits) se puede asociar a cualquier página de RAM física (dirección de 36 bits).

En la lista siguiente se describe la cantidad de RAM que admiten las distintas versiones y ediciones de Windows (a partir de mayo de 2010):

Versión de Windows RAM
Windows NT 4.0 4 GB
Windows 2000 Professional 4 GB
Windows 2000 Standard Server 4 GB
Servidor avanzado de Windows 2000 8 GB
Windows 2000 Datacenter Server 32 GB
Windows XP Professional 4 GB
Windows Server 2003 Web Edition 2 GB
Windows Server 2003 Standard Edition 4 GB
Windows Server 2003 Enterprise Edition 32 GB
Windows Server 2003 Datacenter Edition 64 GB
Windows Vista 4 GB
Windows Server 2008 Standard 4 GB
Windows Server 2008 Enterprise 64 GB
Windows Server 2008 Datacenter 64 GB
Windows 7 4 GB

Pagefile

RAM es un recurso limitado, mientras que para la mayoría de los propósitos prácticos, la memoria virtual es ilimitada. Puede haber muchos procesos y cada proceso tiene sus propios 2 GB de espacio de direcciones virtuales privadas. Cuando la memoria que usan todos los procesos existentes supera la RAM disponible, el sistema operativo mueve páginas (partes de 4 KB) de uno o más espacios de direcciones virtuales al disco duro del equipo. Esto libera ese marco de RAM para otros usos. En los sistemas Windows, estas páginas paginadas se almacenan en uno o varios archivos (archivos Pagefile.sys) en la raíz de una partición. Puede haber un archivo de este tipo en cada partición de disco. La ubicación y el tamaño del archivo de página se configuran en Propiedades del sistema (haga clic en Avanzadas, en Rendimientoy, a continuación, en el botón Configuración).

Los usuarios preguntan con frecuencia qué tamaño debo hacer el archivo de página? No hay ninguna respuesta única a esta pregunta porque depende de la cantidad de RAM instalada y de la cantidad de memoria virtual que requiere la carga de trabajo. Si no hay otra información disponible, la recomendación típica de 1,5 veces que la RAM instalada es un buen punto de partida. En los sistemas de servidor, normalmente desea tener suficiente RAM para que nunca haya escasez y para que el archivo de página no se use. En estos sistemas, puede no servir para mantener un archivo de página grande. Por otro lado, si el espacio en disco es abundante, mantener un archivo de página grande (por ejemplo, 1,5 veces la RAM instalada) no causa un problema, y esto también elimina la necesidad de preocuparse por el tamaño que debe hacer.

Rendimiento, límites de arquitectura y RAM

En cualquier sistema informático, a medida que aumenta la carga (el número de usuarios, el volumen de trabajo), el rendimiento disminuye, pero de manera no lineal. Cualquier aumento de la carga o la demanda, más allá de un punto determinado, provoca una disminución significativa del rendimiento. Esto significa que algunos recursos están en un suministro críticomente corto y se han convertido en un cuello de botella.

En algún momento, no se puede aumentar el recurso que está en breve suministro. Esto significa que se ha alcanzado un límite arquitectónico. Algunos límites de arquitectura notificados con frecuencia en Windows incluyen lo siguiente:

  • 2 GB de espacio de direcciones virtuales compartidos para el sistema (kernel)
  • 2 GB de espacio de direcciones virtuales privadas por proceso (modo de usuario)
  • 660 MB de almacenamiento PTE del sistema (Windows Server 2003 y versiones anteriores)
  • 470 MB de almacenamiento de grupo paginado (Windows Server 2003 y versiones anteriores)
  • 256 MB de almacenamiento de grupo no paginado (Windows Server 2003 y versiones anteriores)

Esto se aplica específicamente a Windows Server 2003, pero esto también se puede aplicar a Windows XP y a Windows 2000. Sin embargo, Windows Vista, Windows Server 2008 y Windows 7 no comparten todos estos límites arquitectónicos. Los límites de la memoria del usuario y del kernel (los números 1 y 2 aquí) son los mismos, pero los recursos de kernel, como ptE y varios grupos de memoria, son dinámicos. Esta nueva funcionalidad habilita la memoria paginada y no paginada. Esto también permite que los PTE y el grupo de sesiones aumenten más allá de los límites que se han analizado anteriormente, hasta el punto en que se agota todo el kernel.

Instrucciones encontradas y entrecomilladas con frecuencia, como las siguientes:

Con terminal Server, los 2 GB de espacio de direcciones compartidos se usarán completamente antes de usarse 4 GB de RAM.

Esto puede ser cierto en algunos casos. Sin embargo, debe supervisar el sistema para saber si se aplican a su sistema concreto o no. En algunos casos, estas afirmaciones son conclusiones de entornos específicos de Windows NT 4.0 o Windows 2000 y no se aplican necesariamente a Windows Server 2003. Se realizaron cambios significativos en Windows Server 2003 para reducir la probabilidad de que estos límites arquitectónicos se alcancen de hecho en la práctica. Por ejemplo, algunos procesos que estaban en el kernel se movieron a procesos que no son de kernel para reducir la memoria usada en el espacio de direcciones virtuales compartido.

Supervisión del uso de MEMORIA RAM y memoria virtual

Monitor de rendimiento es la herramienta principal para supervisar el rendimiento del sistema y para identificar la ubicación del cuello de botella. Para iniciar Monitor de rendimiento, haga clic en Inicio, en Panel de control, en Herramientas administrativasy, a continuación, haga doble clic en Monitor de rendimiento. Este es un resumen de algunos contadores importantes y lo que le dicen:

  • Memoria, Bytes confirmados: este contador es una medida de la demanda de memoria virtual.

    Esto muestra el número de bytes asignados por procesos y al que el sistema operativo ha confirmado un marco de página ram o una ranura de página en el archivo de página (o quizás ambos). A medida que los bytes confirmados aumentan más que la RAM disponible, la paginación aumentará y el tamaño del archivo de página que se está usando también aumentará. En algún momento, la actividad de paginación comienza a afectar significativamente al rendimiento.

  • Process, Working Set, _Total: este contador es una medida de la memoria virtual en uso activo .

    Este contador muestra la cantidad de RAM necesaria para que la memoria virtual que se use para todos los procesos esté en RAM. Este valor siempre es un múltiplo de 4096, que es el tamaño de página que se usa en Windows. A medida que la demanda de memoria virtual aumenta más allá de la RAM disponible, el sistema operativo ajusta la cantidad de memoria virtual de un proceso en su conjunto de trabajo para optimizar el uso de RAM disponible y minimizar la paginación.

  • Archivo de paginación, %pagefile en uso: este contador es una medida de la cantidad del archivo de página que se está usando realmente.

    Use este contador para determinar si el archivo de página es un tamaño adecuado. Si este contador alcanza 100, el archivo de página está lleno y las cosas dejarán de funcionar. En función de la volatilidad de la carga de trabajo, es probable que desee que el archivo de página sea lo suficientemente grande como para que no se use más del 50-075 por ciento. Si se usa gran parte del archivo de páginas, tener más de uno en discos físicos diferentes, puede mejorar el rendimiento.

  • Memoria, Páginas/s: este contador es una de las medidas más malinterpretadas.

    Un valor alto para este contador no implica necesariamente que el cuello de botella de rendimiento se derive de una escasez de RAM. El sistema operativo usa el sistema de paginación para fines distintos del intercambio de páginas debido al exceso de memoria.

  • Memoria, salida de páginas por segundo: este contador muestra cuántas páginas de memoria virtual se escribieron en el archivo de páginas para liberar marcos de página ram para otros fines cada segundo.

    Este es el mejor contador para supervisar si sospecha que la paginación es el cuello de botella de rendimiento. Incluso si Los bytes confirmados son mayores que la RAM instalada, si la salida de páginas/s es baja o cero la mayor parte del tiempo, no hay ningún problema de rendimiento significativo de la RAM insuficiente.

  • Memory, Cache Bytes, Memory, Pool Nonpaged Bytes, Memory, Pool Paged Bytes, Memory, System Code Total Bytes, Memory, System Driver Total Bytes:

    La suma de estos contadores es una medida de la cantidad de 2 GB de la parte compartida del espacio de direcciones virtuales de 4 GB que se está usando realmente. Úselos para determinar si el sistema alcanza uno de los límites arquitectónicos descritos anteriormente.

  • Memoria, MBytes disponibles: este contador mide la cantidad de RAM disponible para satisfacer las demandas de memoria virtual (ya sea asignaciones nuevas o para restaurar una página desde el archivo de página).

    Cuando la RAM está en breve suministro (por ejemplo, Bytes confirmados es mayor que la RAM instalada), el sistema operativo intentará mantener una determinada fracción de RAM instalada disponible para su uso inmediato mediante la copia de páginas de memoria virtual que no están en uso activo en el archivo de páginas. Por lo tanto, este contador no alcanzará cero y no es necesariamente una buena indicación de si el sistema es corto de RAM.

Referencias

Extensiones de ventana de direcciones