Almacenamiento en caché de lectura

El almacenamiento en caché de lectura mejora el rendimiento del disco de una máquina virtual ya que, después de la lectura inicial del disco externo, los datos se almacenan en caché dentro de la memoria libre del host. Mejora el rendimiento en situaciones en las que muchas máquinas virtuales se clonan en una sola máquina virtual base, ya que reduce drásticamente el número de bloques leídos desde el disco. Por ejemplo, en entornos de escritorios virtuales Citrix Machine Creation Service (MCS).

La mejora del rendimiento se puede ver siempre que los datos se leen desde el disco más de una vez, ya que se almacenan en caché en la memoria. Este cambio es más notable en la degradación del servicio que se produce durante situaciones de E/S pesadas. Por ejemplo, en las siguientes situaciones:

  • Cuando un número significativo de usuarios finales arranca dentro de un período de tiempo muy estrecho (tormenta de arranque)
  • Cuando un número significativo de máquinas virtuales está programado para ejecutar análisis de malware al mismo tiempo (tormentas antivirus).

El almacenamiento en caché de lectura está habilitado de forma predeterminada cuando tiene el tipo de licencia apropiado.

Nota:

Almacenamiento en caché de lectura está disponible para los clientes HASH (0x2c1a078) HASH (0x2e72eb8).

Almacenamiento en caché de lectura también está disponible para los clientes que acceden a HASH (0x2c1a078) a través de sus derechos de Citrix Virtual Apps and Desktops.

Habilitar y deshabilitar el almacenamiento en caché de lectura

Para SRs basados en archivos, como los tipos SR NFS y EXT3, el almacenamiento en caché de lectura está habilitado de forma predeterminada. El almacenamiento en caché de lectura está deshabilitado para todos los demás SRs.

Para deshabilitar el almacenamiento en caché de lectura para un SR específico, ejecute el siguiente comando:

xe sr-param-set uuid=sr-uuid other-config:o_direct=true

Limitaciones

  • El almacenamiento en caché de lectura sólo está disponible para los SRs NFS y EXT3. No está disponible para otros tipos de SR.

  • El almacenamiento en caché de lectura sólo se aplica a los VDI y a los padres VDI de sólo lectura. Estos VDI existen donde las VM se crean a partir de “Fast Clone” o instantáneas de disco. Las mayores mejoras de rendimiento se pueden ver cuando muchas máquinas virtuales se clonan a partir de una sola imagen “dorada”.

  • Las mejoras de rendimiento dependen de la cantidad de memoria libre disponible en el dominio de control del host (dom0). Aumentar la cantidad de memoria dom0 permite asignar más memoria a la memoria caché de lectura. Para obtener información sobre cómo configurar la memoria dom0, consulteCTX134951.

Comparación con IntelliCache

IntelliCache y el almacenamiento en caché de lectura basado en memoria son, en algunos aspectos, complementarios. IntelliCache no solo almacena en caché en un nivel diferente, sino que también almacena en caché escrituras además de lecturas. IntelliCache almacena las lecturas de la red en un disco local. El almacenamiento en caché de lectura en memoria almacena en caché las lecturas de la red o el disco en la memoria del host. La ventaja del almacenamiento en caché de lectura en memoria es que la memoria sigue siendo un orden de magnitud más rápido que un disco de estado sólido (SSD). Mejora el rendimiento en tormentas de arranque y otras situaciones de E/S pesadas.

Tanto el almacenamiento en caché de lectura como IntelliCache se pueden habilitar simultáneamente. En este caso, IntelliCache almacena en caché las lecturas de la red en un disco local. Las lecturas de ese disco local se almacenan en la memoria caché con el almacenamiento en caché de lectura.

Establecer el tamaño de la memoria caché de lectura

El rendimiento de la memoria caché de lectura se puede optimizar, dando más memoria al dominio de control de HASH (0x2c1a078) (dom0).

Importante:

Establezca el tamaño de la memoria caché de lectura en TODOS los hosts del grupo individualmente para la optimización. Cualquier cambio posterior en el tamaño de la memoria caché de lectura también debe establecerse en todos los hosts del grupo.

En el servidor HASH (0x2e68218), abra un shell local e inicie sesión como root.

Para establecer el tamaño de la caché de lectura, ejecute el siguiente comando:

/opt/xensource/libexec/xen-cmdline --set-xen dom0_mem=nnM,max:nnM

Establezca los valores inicial y máximo en el mismo valor. Por ejemplo, para establecer la memoria dom0 en 2.048 MiB:

/opt/xensource/libexec/xen-cmdline --set-xen dom0_mem=20480M,max:20480M

Importante:

Reinicie todos los hosts después de cambiar el tamaño de la caché de lectura.

¿Cómo ver la asignación de memoria dom0 actual?

Para ver la configuración actual de la memoria dom0, escriba:

free -m

La salida defree -m muestra la configuración actual de la memoria dom0. El valor puede ser menor de lo esperado debido a varios gastos generales. La siguiente tabla muestra la salida de un host con dom0 establecido en 2.6 GiB

  En total Usado Libre Compartido Buffer/caché Disponible
Mem: 2450 339 1556 9 554 2019
Intercambio: 1023 0 1023      

¿Qué rango de valores se puede utilizar?

Como el dominio de control HASH (0x2c1a078) (dom0) es de 64 bits, se pueden utilizar valores grandes, por ejemplo 32768 MiB. Sin embargo, recomendamos que no reduzca la memoria dom0 por debajo de 1 GiB.

HASH (0x2e6c8e8) mostrar notas

Se puede considerar que toda la memoria del host comprende el hipervisor Xen, dom0, VM y memoria libre. Aunque dom0 y la memoria VM suelen tener un tamaño fijo, el hipervisor Xen utiliza una cantidad variable de memoria. La cantidad de memoria utilizada depende de varios factores. Estos factores incluyen el número de máquinas virtuales que se ejecutan en el host en cualquier momento y cómo se configuran esas máquinas virtuales. No es posible limitar la cantidad de memoria que Xen usa. Limitar la cantidad de memoria puede hacer que Xen se quede sin memoria y evitar que se inicien nuevas máquinas virtuales, incluso cuando el host tenía memoria libre.

Para ver la memoria asignada a un host, en HASH (0x2e6c8e8) seleccione el host y, a continuación, haga clic en la ficha Memoria .

El campo HASH (0x2e68218) muestra la suma de la memoria asignada a la memoria dom0 y Xen. Por lo tanto, la cantidad de memoria mostrada puede ser mayor que la especificada por el administrador. El tamaño de la memoria puede variar al iniciar y detener máquinas virtuales, incluso cuando el administrador ha establecido un tamaño fijo para dom0.