Almacenamiento en caché de lectura
El almacenamiento en caché de lectura mejora el rendimiento del disco de una VM, ya que, después de la lectura inicial desde el disco externo, los datos se almacenan en caché en la memoria libre del host. Mejora el rendimiento en situaciones en las que muchas VM se clonan en una sola VM base, ya que reduce drásticamente la cantidad de bloques leídos del disco. Por ejemplo, en los entornos de Citrix Virtual Desktops, los entornos de Machine Creation Services (MCS).
La mejora del rendimiento se puede ver cuando los datos se leen del disco más de una vez, ya que se almacenan en caché en la memoria. Este cambio se nota sobre todo en la degradación del servicio que se produce durante situaciones de E/S intensas. Por ejemplo, en las siguientes situaciones:
- Cuando un número significativo de usuarios finales arranca en un plazo muy limitado (tormenta de arranque)
- Cuando se programa un número significativo de máquinas virtuales para ejecutar análisis de malware al mismo tiempo (tormentas de antivirus).
El almacenamiento en caché de lectura está habilitado de forma predeterminada cuando tiene el tipo de licencia apropiado.
Nota:
El almacenamiento en caché de lectura está disponible para los clientes de XenServer Premium Edition.
Habilitar e inhabilitar el almacenamiento en caché de lectura
Para los SR basados en archivos, como los tipos SR NFS, EXT3/EXT4, SMB y GFS2, el almacenamiento en caché de lectura está habilitado de forma predeterminada. El almacenamiento en caché de lectura está inhabilitado para todos los demás SRs.
Para inhabilitar el almacenamiento en caché de lectura para un SR específico mediante la CLI xe, ejecute el siguiente comando:
xe sr-param-set uuid=sr-uuid other-config:o_direct=true
<!--NeedCopy-->
Para inhabilitar el almacenamiento en caché de lectura para una SR específica mediante XenCenter, vaya al cuadro de diálogo Propiedades de la SR. En la ficha Leer caché, puede seleccionar habilitar o inhabilitar el almacenamiento en caché de lectura.
Para obtener más información, consulte Cambio de las propiedades de SR.
Limitaciones
-
El almacenamiento en caché de lectura solo está disponible para los SR de NFS, EXT3/EXT4, SMB y GFS2. No está disponible para otros tipos de SR.
-
El almacenamiento en caché de lectura solo se aplica a los VDI y los VDI principales de solo lectura. Estos VDI existen donde las máquinas virtuales se crean a partir de “clonación rápida” o instantáneas de disco. Las mayores mejoras de rendimiento se pueden ver cuando se clonan muchas máquinas virtuales 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). El aumento de la cantidad de memoria dom0 permite que se asigne más memoria a la memoria caché de lectura. Para obtener información sobre cómo configurar la memoria dom0, consulte CTX134951.
-
Cuando se activa el almacenamiento en caché de lectura de memoria, un error de caché hace que las E/S se serialicen. A veces, esto puede resultar más caro que desactivar el almacenamiento en caché de lectura, ya que con el almacenamiento en caché de lectura desactivado se pueden paralelizar las E/S. Para reducir el impacto de las pérdidas de caché, aumente la cantidad de memoria dom0 disponible o desactive el almacenamiento en caché de lectura para el SR.
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é las escrituras además de las lecturas. IntelliCache almacena en caché 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ápida que un disco de estado sólido (SSD). Mejora el rendimiento en tormentas de arranque y otras situaciones de E/S intensas.
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 caché en la memoria con el almacenamiento en caché de lectura.
Establecer el tamaño de memoria caché de lectura
El rendimiento de la caché de lectura se puede optimizar proporcionando más memoria al dominio de control de XenServer (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 se debe establecer en todos los hosts del grupo.
En el host de XenServer, abra un shell local e inicie sesión como root.
Para establecer el tamaño de la memoria caché de lectura, ejecute el siguiente comando:
/opt/xensource/libexec/xen-cmdline --set-xen dom0_mem=nnM,max:nnM
<!--NeedCopy-->
Defina los valores iniciales y máximos en el mismo valor. Por ejemplo, para establecer la memoria dom0 en 20.480 MiB:
/opt/xensource/libexec/xen-cmdline --set-xen dom0_mem=20480M,max:20480M
<!--NeedCopy-->
Importante:
Reinicie todos los hosts después de cambiar el tamaño de la memoria caché de lectura.
¿Cómo ver la asignación de memoria actual de dom0?
Para ver la configuración de memoria dom0 actual, introduzca:
free -m
<!--NeedCopy-->
La salida de free -m
muestra la configuración actual de la memoria dom0. El valor puede ser inferior al esperado debido a varios gastos generales. La siguiente tabla de ejemplo muestra la salida de un host con dom0 establecido en 2.6 GiB
| | Total | Used | Free | Shared | Buffer/cache | Available |
|---------------------|--------|------|-------|--------|--------------|-----------|
| Mem: | 2450 | 339 | 1556 | 9 | 554 | 2019 |
| Swap: | 1023 | 0 | 1023 | | | |
<!--NeedCopy-->
¿Qué rango de valores se puede utilizar?
Como el dominio de control de XenServer (dom0) es de 64 bits, se pueden usar valores grandes, por ejemplo, 32 768 MiB. Sin embargo, le recomendamos que no reduzca la memoria dom0 por debajo de 1 GiB.
Notas de pantalla de XenCenter
Se puede considerar que toda la memoria del host comprende el hipervisor Xen, dom0, las máquinas virtuales y la memoria libre. A pesar de que dom0 y la memoria de 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 la cantidad de máquinas virtuales que se ejecutan en el host en cualquier momento y la forma en que se configuran esas máquinas virtuales. No es posible limitar la cantidad de memoria que usa Xen. Limitar la cantidad de memoria puede provocar que Xen se quede sin memoria e impedir que se inicien nuevas VM, incluso cuando el host tenga memoria libre.
Para ver la memoria asignada a un host, en XenCenter, seleccione el host y, a continuación, haga clic en la ficha Memoria.
El campo XenServer muestra la suma de la memoria asignada a dom0 y a la memoria Xen. Por lo tanto, la cantidad de memoria que se muestra puede ser mayor que la especificada por el administrador. El tamaño de la memoria puede variar al iniciar y detener las VM, incluso cuando el administrador ha establecido un tamaño fijo para dom0.