
Pido disculpas de antemano si esto no es lo suficientemente claro para entender mi problema, es un poco largo pero he hecho todo lo posible para que sea comprensible.
Estoy ejecutando Exchange 2016 CU6 en una máquina virtual Windows Server 2016 y con frecuencia recibo advertencias en el registro de la aplicación que dicen que me he quedado sin memoria virtual (archivo de paginación).
Mi monitoreo muestra que el archivo de paginación ha estado en 4 GB desde que se creó la VM en abril, nunca ha aumentado más allá de 4 GB ni ha disminuido.
Para solucionar este problema y comprender cuál es el problema, he creado dos máquinas virtuales de prueba con una instalación básica de Windows Server 2016 Standard y Windows Server 2008 R2 Enterprise, ambas con la misma configuración de memoria física y virtual:
Probar la configuración de la máquina virtual
RAM: 4 GB
Disco C (dedicado al sistema): 32GB
Disco G (dedicado al archivo de paginación): 8GB
Archivo de paginación para la unidad C: 512 - 1024MB
Archivo de paginación para la unidad G: Tamaño administrado por el sistema
Mi máquina virtual de prueba 2016 utiliza actualmente 512 MB en la unidad C: y 1 GB en la unidad G:, con un total de 5,5 de memoria comprometida.
La máquina virtual de prueba 2008 utiliza actualmente 512 MB en la unidad C: y 4 GB en la unidad G:, con un total de 12,5 GB de memoria comprometida.
Después de investigar mucho sobre la memoria comprometida, encontré este artículo de Mark Russinovitch:https://blogs.technet.microsoft.com/markrussinovich/2008/11/17/pushing-the-limits-of-windows-virtual-memory/
Decidí usar la herramienta testlimit64.exe con el modificador -m para ver si el archivo de paginación aumentaría en la VM de prueba 2016 y la VM de prueba 2008.
El resultado refleja el problema explicado inicialmente donde el archivo de paginación en la VM de prueba 2016 no aumenta en la unidad G:, pero sí en la VM de prueba 2008:
Según esta base de conocimientos de Microsoft:https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/automatic-memory-dump, utilizando la configuración de volcado automático de memoria enPanel de control->Sistema->Configuración avanzada del sistema->Inicio y recuperación->Escribir información de depuracióncon el archivo de paginación configurado como administrado por el sistema, puede establecer el archivo de paginación en un tamaño menor que la cantidad de memoria física.
Las pruebas que realicé no utilizaron esta configuración, tanto la prueba VM 2008 como la prueba VM 2016 se configuraron con volcado de memoria del kernel.
Entonces, si configuro el archivo de paginación en la unidad G: en Sistema administrado en la máquina virtual de prueba 2016, Windows establecerá automáticamente su tamaño y no aumentará cuando esté bajo carga.Este es el núcleo del problema, ya que se trata de un cambio de comportamiento con Windows Server 2008.
Mi última prueba fue configurar el archivo de paginación en la unidad G: manualmente a 4096 - 8100 MB y ejecutar la herramienta testlimit64.exe con el modificador -m nuevamente y, como puede ver, el archivo de paginación aumenta de 4 GB a ~8 GB.
Entonces aquí está mi pregunta: ¿por qué Windows Server 2016 no aumenta el tamaño del archivo de paginación cuando está configurado como administrado por el sistema? ¿Qué ha cambiado entre Windows Server 2008 y 2016 al respecto?
Muchas gracias por leer todo el camino y por sus respuestas.
Respuesta1
De acuerdo a Este artículo, para Server 2016, los archivos de paginación administrados por el sistema tienen el tamaño de acuerdo con lo siguiente:
3 × RAM or 4 GB, whichever is larger. This is then limited to the volume size ÷ 8. However it can grow to within 1 GB of free space on the volume if required for crash dump settings.
Para Server 2008 dice:
3 × RAM or 4 GB, whichever is larger
Entonces parece que lo que estás viendo es la regla de 1/8 que se aplica en Server 2016.
Espero que ayude...Saludos.