Uso de la caché de lectura en memoria del archivo CSV

Se aplica a: Azure Stack HCI, versiones 22H2 y 21H2, Windows Server 2022, Windows Server 2019 y Windows Server 2016

En este tema, se describe cómo usar la memoria del sistema para mejorar el rendimiento de Azure Stack HCI y Windows Server mediante el almacenamiento en caché de las lecturas frecuentes. Las escrituras no se pueden almacenar en la memoria caché.

Azure Stack HCI y Windows Server son compatibles con la caché de lectura en memoria del Volumen compartido de clúster (CSV). El uso de la memoria del sistema para las lecturas de caché puede mejorar el rendimiento de aplicaciones como Hyper-V, que usa E/S sin almacenamiento en búfer para acceder a los archivos VHD o VHDX. (Las operaciones de E/S sin almacenamiento en búfer se dan en cualquier operación que el administrador de la caché de Windows no almacena en caché).

Dado que la memoria caché en memoria es local del servidor, mejora la localidad de los datos. Las lecturas recientes se almacenan en caché en memoria en el mismo host donde se ejecuta la máquina virtual (VM), lo que reduce la frecuencia con la que las lecturas pasan por la red. Esto produce una menor latencia y un mejor rendimiento de almacenamiento.

Tenga en cuenta que la caché de lectura en memoria de Volumen compartido de clúster es diferente de la caché de un bloque de almacenamiento.

Consideraciones de planeación

La caché de lectura en memoria es más eficaz con cargas de trabajo de lectura intensiva como, por ejemplo, la infraestructura de escritorio virtual. Por el contrario, si la carga de trabajo requiere una gran cantidad de escritura, la caché puede suponer más sobrecarga que beneficios y debe deshabilitarse.

Puede usar hasta el 80 % de la memoria física total para la caché de lectura en memoria de Volumen compartido de clúster. No olvide dejar suficiente memoria para las VM.

Nota:

Ciertas herramientas de microrealización de pruebas comparativas, como DISKSPD y VM Fleet pueden obtener peores resultados con la caché de lectura en memoria de Volumen compartido de clúster habilitada que sin ella. De forma predeterminada, VM Fleet crea un VHDX de 10 GiB por VM, lo que supone aproximadamente un total de 1 TiB para 100 VM y, a continuación, realiza lecturas y escrituras aleatorias de forma uniforme. A diferencia de las cargas de trabajo reales, las lecturas no siguen ningún patrón predecible o repetitivo, por lo que la caché en memoria no es efectiva y solo produce sobrecarga.

Configuración de la caché de lectura en memoria

La caché de lectura en memoria de Volumen compartido de clúster está disponible en Azure Stack HCI, Windows Server 2019 y Windows Server 2016 con la misma funcionalidad. En Azure Stack HCI y Windows Server 2019, está activada de forma predeterminada con 1 gibibyte (GiB) asignado. En Windows Server 2016, está desactivada de forma predeterminada.

Versión del SO Tamaño predeterminado de caché de Volumen compartido de clúster
Azure Stack HCI 1 GiB
Windows Server 2019 1 GiB
Windows Server 2016 0 (deshabilitado)

Configuración de la caché mediante Windows Admin Center

Para configurar la memoria caché mediante Windows Admin Center, haga lo siguiente:

  1. En Windows Admin Center, conéctese a un clúster y seleccione Configuración en el panel Herramientas de la izquierda.
  2. Seleccione Caché en memoria en Almacenamiento en el panel Configuración .
  3. En el panel derecho, una casilla habilita o deshabilita la memoria caché y también puede especificar la memoria máxima por servidor que se asignará a la memoria caché.
  4. Cuando haya terminado, seleccione Guardar.

En Windows Admin Center, una casilla habilita o deshabilita la memoria caché. También puede especificar la cantidad máxima de memoria por servidor que se va a asignar a la memoria caché.

Configuración de la caché mediante PowerShell

Para ver la cantidad de memoria asignada mediante PowerShell, ejecute lo siguiente como administrador:

(Get-Cluster).BlockCacheSize

El valor devuelto está en mebibytes (MiB) por servidor. Por ejemplo, 1024 representa 1 GiB.

Para cambiar la cantidad de memoria que se asigna, modifique este valor mediante PowerShell. Por ejemplo, para asignar 2 GiB por servidor, ejecute:

(Get-Cluster).BlockCacheSize = 2048

Para que los cambios surtan efecto inmediatamente, pause y, a continuación, reanude los volúmenes de CSV o muévalos entre servidores. Por ejemplo, use este fragmento de PowerShell para trasladar cada volumen compartido de clúster a otro nodo de servidor y viceversa:

Get-ClusterSharedVolume | ForEach {
    $Owner = $_.OwnerNode
    $_ | Move-ClusterSharedVolume
    $_ | Move-ClusterSharedVolume -Node $Owner
}

Pasos siguientes

Para obtener información relacionada, consulte: