XenServer permite el “tunning” del Dom0 de cara a mejorar la escalabilidad del entorno cuando es necesario, poniendo de este modo el rendimiento de nuestro hypervisor al máximo.

Cabe indicar, que no siempre estas recomendaciones son aplicables y que habrá que ver cada entorno, para saber si es o no es aplicable. De echo, normalmente estas recomendaciones no serán aplicables ya que la configuración por defecto de XenServer es en la mayoría de casos suficiente.

Pero si tenéis problemas de rendimiento a pesar de tener suficiente CPU y memoria, ello puede estar ocasionado por un cuello de botella es nuestro dominio de control y los siguientes ajustes podrían solventar en algunos casos dicha perdida de rendimiento.

Cuando un host XenServer arranca, el hypervisor carga una pequeña VM invisible para los usuarios; incluso para los administradores en algunos casos. Esta VM es conocida como Dominio de Control o Dom0.  Dom0 se ejecuta en la pila de gestión y proporciona servicios básicos al resto de las VMs, como el acceso físico a los dispositivos.

No existe un número determinado de VMs en las cuales podamos asegurar que la vcpu0 de dom0 se colapse, ocasionando un cuello de botella. Dependerá también en gran medida del tipo de VMs que estemos rodando, pudiendo ser necesario realizar cambios en dom0 a partir de 60-70 vms o no siendo necesario realizar incluso con 100 vms rodando. Por ello, es importante no tener una referencia numérica en este aspecto, y revisar los contadores y el estado de nuestro Dom0 para asegurar un correcto tunning. En el 99% de los casos, no serán necesarias modificaciones en Dom0.

Si durante el uso de nuestro host, observamos problemas de rendimiento, y mediante xentop comprobamos un uso excesivo (llegando al 100% constante) de recursos, se recomienda, en estos casos, el tuning de dom0, ampliando memoria o asignando vcpus, según corresponda.

Ya hemos hablado de ampliar el número de vcpus de nuestro dominio de control, pero también la memoria se puede ver afectada en estos problemas de cuello de botella. Sobretodo en entornos con mas de 50 Vms corriendo por host. En estos, se recomienda la ampliación de memoria hasta 2’96GiB, y decimos 2’96GB y no 4 ya que mas de 2’96GiB queda fuera de soporte, además de ser arriesgado.

Procedimiento ajuste de memoria

Para ello, necesitaremos acceso a la consola/terminal de XS o una conexión ssh con el servidor.  Una vez dentro, la sintaxis para dicho cambio es el siguiente:

/opt/xensource/libexec/xen-cmdline --set-xen dom0_mem=<nn>M,max:<nn>M

<nn> representa la memoria en MB que será utilizado por Dom0.El valor puede estar entre 1024 y 4096 dependiendo del número de VMs que se esperen correr en el host.

Un valor muy alto, hará que dispongamos de menos memoria para su asignación sobre las VMs del entorno.

Una vez realizado el cambio, reiniciar el servidor.

Podemos verificar la memoria asignada con el comando #free.

Nota: En entornos muy pequeños (16GB o -), algunos clientes reducen la memoria utilizada por Dom0 para disponer de mayor memoria utilizable por las VMs del entorno. El valor por defecto, es de 752MiB. Citrix no recomienda bajar este valor por debajo de 400MiB.

* Si es necesario realizar cambios de memoria en versiones de XenServer inferiores a la 6.1, se debe aplicar el siguiente procedimiento: http://support.citrix.com/article/CTX126531

* Si es necesario realizar cambios de memoria en versiones de XenServer inferiores a la 5.6, se debe aplicar el siguiente procedimiento:

http://support.citrix.com/article/CTX124259

Procedimiento ajuste de VCPUs

Por defecto, XenServer (56FP1) viene con 4 vcpus asignadas (recordad que en versiones anteriores estaba limitada a 1vcpu). Cabe indicar que dom0 es programado para 8vcpus, pero 4 de ellas son desconectadas. Se recomienda dejar dicha configuración por defecto, a menos, que se observen problemas de rendimiento de cpu en dom0.

Para ello, será necesario el acceso a consola/terminal o una sesión ssh sobre nuestro host. Una vez conectados:

  • Editar el fichero: /etc/sysconfig/unplug-vcpus
  • Modificar el parámetro NR_DOMAIN0_VCPUS con el número de vCPUs solicitado.
  • Una vez realizado el cambio, ejecutar: # service unplug-vcpus start
  • Si el contador de vCPUS se reduce, no es necesario un reinicio de las VMs // Si el número de vCPUS es ampliado, es necesario el reinicio de las VMs que están siendo ejecutadas.

Para verificar la configuración actual, podemos ejecutar:

# cat /proc/cpuinfo

Se recomienda la lectura del siguiente artículo para mas información sobre el procedimiento. http://support.citrix.com/article/CTX128922

Artículos del Blog relacionados:

Otros artículos interesantes: