NetScaler VPX 14.1

Optimizar el rendimiento de NetScaler VPX en VMware ESX, Linux KVM y Citrix Hypervisors

El rendimiento de NetScaler VPX varía en gran medida según el hipervisor, los recursos del sistema asignados y las configuraciones del host. Para lograr el rendimiento deseado, primero siga las recomendaciones de la hoja de datos de VPX y luego optimícelo aún más utilizando las mejores prácticas proporcionadas en este documento.

Instancia de NetScaler VPX en hipervisores VMware ESX

Esta sección contiene detalles de las opciones y configuraciones configurables, y otras sugerencias que le ayudarán a lograr un rendimiento óptimo de la instancia de NetScaler VPX en hipervisores VMware ESX.

Configuración recomendada en hosts ESX

Para lograr un alto rendimiento para VPX con interfaces de red E1000, VMXNET3, SR-IOV y PCI passthrough, siga estas recomendaciones:

  • El número total de CPU virtuales (vCPU) aprovisionadas en el host ESX debe ser menor o igual al número total de CPU físicas (pCPU) en el host ESX.
  • La afinidad de acceso a memoria no uniforme (NUMA) y la afinidad de CPU deben configurarse para el host ESX para lograr buenos resultados.

    – Para encontrar la afinidad NUMA de una Vmnic, inicie sesión en el host local o remotamente y escriba:

     #vsish -e get /net/pNics/vmnic7/properties | grep NUMA
     Device NUMA Node: 0
     <!--NeedCopy-->
    

NetScaler VPX con interfaces de red E1000

Realice las siguientes configuraciones en el host VMware ESX:

  • En el host VMware ESX, cree dos vNIC a partir de un vSwitch pNIC. Múltiples vNIC crean múltiples hilos de recepción (Rx) en el host ESX. Esto aumenta el rendimiento de Rx de la interfaz pNIC.
  • Habilite las VLAN a nivel de grupo de puertos del vSwitch para cada vNIC que haya creado.
  • Para aumentar el rendimiento de transmisión (Tx) de la vNIC, utilice un hilo de Tx independiente en el host ESX por cada vNIC. Utilice el siguiente comando ESX:
    • Para ESX versión 5.5:

       esxcli system settings advanced set –o /Net/NetTxWorldlet –i
       <!--NeedCopy-->
      
    • Para ESX versión 6.0 en adelante:

       esxcli system settings advanced set -o /Net/NetVMTxType –i 1
       <!--NeedCopy-->
      
  • Para aumentar aún más el rendimiento de Tx de la vNIC, utilice un hilo de finalización de Tx y hilos de Rx separados por cola de dispositivo (NIC). Utilice el siguiente comando ESX:

     esxcli system settings advanced set -o /Net/NetNetqRxQueueFeatPairEnable -i 0
     <!--NeedCopy-->
    

Nota:

Asegúrese de reiniciar el host VMware ESX para aplicar las configuraciones actualizadas.

Implementación de dos vNIC por pNIC

A continuación se muestra una topología de ejemplo y comandos de configuración para el modelo de implementación de dos vNIC por pNIC que ofrece un mejor rendimiento de red.

Implementación de dos vNIC por pNIC

Configuración de ejemplo de NetScaler VPX:

Para lograr la implementación que se muestra en la topología de ejemplo anterior, realice la siguiente configuración en la instancia de NetScaler VPX:

  • En el lado del cliente, vincule el SNIP (1.1.1.2) a la interfaz de red 1/1 y habilite el modo de etiqueta VLAN.

     bind vlan 2 -ifnum 1/1 –tagged
     bind vlan 2 -IPAddress 1.1.1.2 255.255.255.0
     <!--NeedCopy-->
    
  • En el lado del servidor, vincule el SNIP (2.2.2.2) a la interfaz de red 1/1 y habilite el modo de etiquetado VLAN.

     bind vlan 3 -ifnum 1/2 –tagged
     bind vlan 3 -IPAddress 2.2.2.2 255.255.255.0
     <!--NeedCopy-->
    
  • Agregue un servidor virtual HTTP (1.1.1.100) y vincúlelo a un servicio (2.2.2.100).

     add lb vserver v1 HTTP 1.1.1.100 80 -persistenceType NONE -Listenpolicy None -cltTimeout 180
     add service s1 2.2.2.100 HTTP 80 -gslb NONE -maxClient 0 -maxReq 0 -cip DISABLED -usip NO -useproxyport YES -sp ON -cltTimeout 180 -svrTimeout 360 -CKA NO -TCPB NO -CMP NO
     bind lb vserver v1 s1
     <!--NeedCopy-->
    

Nota:

Asegúrese de incluir las dos entradas siguientes en la tabla de rutas:

  • Subred 1.1.1.0/24 con puerta de enlace que apunta a SNIP 1.1.1.2
  • Subred 2.2.2.0/24 con puerta de enlace que apunta a SNIP 2.2.2.2

NetScaler VPX con interfaces de red VMXNET3

Para lograr un alto rendimiento para VPX con interfaces de red VMXNET3, realice las siguientes configuraciones en el host VMware ESX:

  • Cree dos vNIC a partir de un vSwitch pNIC. Múltiples vNIC crean múltiples subprocesos Rx en el host ESX. Esto aumenta el rendimiento de Rx de la interfaz pNIC.
  • Habilite las VLAN a nivel de grupo de puertos de vSwitch para cada vNIC que haya creado.
  • Para aumentar el rendimiento de transmisión (Tx) de vNIC, utilice un subproceso Tx independiente en el host ESX por vNIC. Utilice los siguientes comandos ESX:
    • Para la versión 5.5 de ESX:
     esxcli system settings advanced set –o /Net/NetTxWorldlet –i
     <!--NeedCopy-->
    
    • Para la versión 6.0 de ESX en adelante:
      esxcli system settings advanced set -o /Net/NetVMTxType –i 1
      <!--NeedCopy-->
    

En el host VMware ESX, realice la siguiente configuración:

  • En el host VMware ESX, cree dos vNIC a partir de 1 vSwitch pNIC. Múltiples vNIC crean múltiples subprocesos Tx y Rx en el host ESX. Esto aumenta el rendimiento de Tx y Rx de la interfaz pNIC.
  • Habilite las VLAN en el nivel de grupo de puertos de vSwitch para cada vNIC que haya creado.
  • Para aumentar el rendimiento de Tx de una vNIC, utilice un hilo de finalización de Tx y hilos de Rx separados por cola de dispositivo (NIC). Utilice el siguiente comando:

     esxcli system settings advanced set -o /Net/NetNetqRxQueueFeatPairEnable -i 0
     <!--NeedCopy-->
    
  • Configure una VM para usar un hilo de transmisión por vNIC, agregando la siguiente configuración a la configuración de la VM:

     ethernetX.ctxPerDev = "1"
     <!--NeedCopy-->
    
  • Configure una VM para usar hasta 8 hilos de transmisión por vNIC, agregando la siguiente configuración a la configuración de la VM:

     ethernetX.ctxPerDev = "3"
     <!--NeedCopy-->
    

    Nota:

    Aumentar los hilos de transmisión por vNIC requiere más recursos de CPU (hasta 8) en el host ESX. Asegúrese de que haya suficientes recursos de CPU disponibles antes de realizar las configuraciones anteriores.

Nota:

Asegúrese de reiniciar el host VMware ESX para aplicar la configuración actualizada.

Puede configurar VMXNET3 como una implementación de Dos vNIC por pNIC. Para obtener más información, consulte Implementación de dos vNIC por pNIC.

Configurar soporte de múltiples colas y RSS en VMware ESX para dispositivos VMXNET3

De forma predeterminada, el dispositivo VMXNET3 solo admite 8 colas de Rx y Tx. Cuando el número de vCPU en el VPX supera las 8, el número de colas de Rx y Tx configuradas para una interfaz VMXNET3 cambia a 1 por defecto. Puede configurar hasta 19 colas de Rx y Tx para dispositivos VMXNET3 cambiando ciertas configuraciones en ESX. Esta opción aumenta el rendimiento y la distribución uniforme de los paquetes entre las vCPU de la instancia VPX.

Nota:

A partir de la versión 13.1 build 48.x de NetScaler, el NetScaler VPX admite hasta 19 colas de Rx y Tx en ESX para dispositivos VMXNET3.

Requisitos previos:

Para configurar hasta 19 colas de Rx y Tx en ESX para dispositivos VMXNET3, asegúrese de que se cumplan los siguientes requisitos previos:

  • La versión de NetScaler VPX es 13.1 build 48.X y posteriores.
  • NetScaler VPX está configurado con una máquina virtual de la versión de hardware 17 y posteriores, compatible con VMware ESX 7.0 y posteriores.

Configurar interfaces VMXNET3 para admitir más de 8 colas Rx y Tx:

  1. Abra el archivo de configuración de la máquina virtual (.vmx).
  2. Especifique el número de colas Rx y TX configurando los valores ethernetX.maxTxQueues y ethernetX.maxRxQueues (donde X es el número de NIC virtuales a configurar). El número máximo de colas configuradas no debe ser mayor que el número de vCPU de la máquina virtual.

    Nota:

    Aumentar el número de colas también incrementa la sobrecarga del procesador en el host ESX. Por lo tanto, asegúrese de que haya suficientes recursos de CPU disponibles en el host ESX antes de aumentar las colas. Puede aumentar el número máximo de colas admitidas en escenarios donde el número de colas se identifica como un cuello de botella para el rendimiento. En estas situaciones, recomendamos aumentar el número de colas gradualmente. Por ejemplo, de 8 a 12, luego a 16, luego a 20, y así sucesivamente. Evalúe el rendimiento en cada configuración, en lugar de aumentar directamente al límite máximo.

NetScaler VPX con interfaces de red SR-IOV y PCI passthrough

Para lograr un alto rendimiento para NetScaler VPX con interfaces de red SR-IOV y PCI passthrough, consulte Configuración recomendada en hosts ESX.

Directrices de uso para el hipervisor VMware ESXi

  • Recomendamos implementar una instancia de NetScaler VPX en discos locales del servidor o volúmenes de almacenamiento basados en SAN.

    Consulte la sección Consideraciones de CPU de VMware ESXi en el documento Prácticas recomendadas de rendimiento para VMware vSphere 6.5. A continuación, se muestra un extracto:

  • No se recomienda implementar máquinas virtuales con alta demanda de CPU o memoria en un host o clúster sobrecargado.

  • En la mayoría de los entornos, ESXi permite niveles significativos de sobrecarga de CPU sin afectar el rendimiento de la máquina virtual. En un host, puede ejecutar más vCPU que el número total de núcleos de procesador físicos en ese host.

  • Si un host ESXi se satura de CPU, es decir, las máquinas virtuales y otras cargas en el host demandan todos los recursos de CPU que tiene el host, las cargas de trabajo sensibles a la latencia podrían no funcionar bien. En este caso, reduzca la carga de CPU, por ejemplo, apagando algunas máquinas virtuales o migrándolas a un host diferente (o permitiendo que DRS las migre automáticamente).

  • NetScaler recomienda utilizar la versión de compatibilidad de hardware más reciente para aprovechar las últimas características del hipervisor ESXi para la máquina virtual. Para obtener más información sobre la compatibilidad de hardware y la versión de ESXi, consulte la documentación de VMware.

  • NetScaler VPX es un dispositivo virtual de alto rendimiento y sensible a la latencia. Para ofrecer el rendimiento esperado, el dispositivo requiere reserva de vCPU, reserva de memoria y anclaje de vCPU en el host. Además, el hyper-threading debe estar deshabilitado en el host. Si el host no cumple estos requisitos, pueden producirse los siguientes problemas:

    • Conmutación por error de alta disponibilidad
    • Pico de CPU dentro de la instancia VPX
    • Lentitud al acceder a la CLI de VPX
    • Bloqueo del demonio Pit boss
    • Pérdida de paquetes
    • Bajo rendimiento
  • Un hipervisor se considera sobreaprovisionado si se cumple una de las dos condiciones siguientes:

    • El número total de núcleos virtuales (vCPU) aprovisionados en el host es mayor que el número total de núcleos físicos (pCPU).

    • El número total de máquinas virtuales aprovisionadas consume más vCPU que el número total de pCPU.

      Si una instancia está sobreaprovisionada, el hipervisor podría no garantizar los recursos reservados (como CPU, memoria y otros) para la instancia debido a la sobrecarga de programación del hipervisor, errores o limitaciones del hipervisor. Este comportamiento puede causar una falta de recursos de CPU para NetScaler y puede llevar a los problemas mencionados en el primer punto bajo Directrices de uso. Recomendamos que los administradores reduzcan la ocupación del host para que el número total de vCPU aprovisionadas en el host sea menor o igual al número total de pCPU.

      Ejemplo:

      Para el hipervisor ESX, si el parámetro %RDY% de una vCPU VPX es mayor que 0 en la salida del comando esxtop, se dice que el host ESX tiene sobrecargas de programación, lo que puede causar problemas relacionados con la latencia para la instancia VPX.

      En tal situación, reduzca la ocupación en el host para que %RDY% siempre vuelva a 0. Alternativamente, póngase en contacto con el proveedor del hipervisor para investigar la razón por la que no se respeta la reserva de recursos.

Comandos para controlar el uso de CPU del motor de paquetes

Puede usar dos comandos (set ns vpxparam y show ns vpxparam) para controlar el comportamiento del uso de CPU del motor de paquetes (no de administración) de las instancias VPX en entornos de hipervisor y de nube:

  • set ns vpxparam [-cpuyield (YES | NO | DEFAULT)] [-masterclockcpu1 (YES | NO)]

    Permitir que cada VM utilice los recursos de CPU asignados a otra VM pero que no estén siendo utilizados.

    Parámetros de Set ns vpxparam:

    -cpuyield: Liberar o no liberar los recursos de CPU asignados pero no utilizados.

    • : Permitir que los recursos de CPU asignados pero no utilizados sean usados por otra VM.

    • NO: Reservar todos los recursos de CPU para la VM a la que se le han asignado. Esta opción muestra un porcentaje más alto en entornos de hipervisor y de nube para el uso de CPU de VPX.

    • PREDETERMINADO: No.

    Nota:

    En todas las plataformas NetScaler VPX, el uso de vCPU en el sistema host es del 100 por ciento. Utilice el comando set ns vpxparam –cpuyield YES para anular este uso.

    Si desea configurar los nodos del clúster en “yield”, debe realizar las siguientes configuraciones adicionales en CCO:

    • Si se forma un clúster, todos los nodos se configuran en “yield=DEFAULT”.
    • Si se forma un clúster utilizando los nodos que ya están configurados en “yield=YES”, entonces los nodos se añaden al clúster utilizando el “yield” “DEFAULT”.

    Nota:

    Si desea establecer los nodos del clúster en “yield=YES”, puede configurarlo solo después de formar el clúster, pero no antes de que se forme el clúster.

    -masterclockcpu1: Puede mover la fuente de reloj principal de CPU0 (CPU de administración) a CPU1. Este parámetro tiene las siguientes opciones:

    • YES: Permite que la VM mueva la fuente de reloj principal de CPU0 a CPU1.

    • NO: La VM usa CPU0 como fuente de reloj principal. Por defecto, CPU0 es la fuente de reloj principal.

  • show ns vpxparam

    Este comando muestra la configuración actual de vpxparam.

Instancia de NetScaler VPX en la plataforma Linux-KVM

Esta sección contiene detalles de las opciones y configuraciones configurables, y otras sugerencias que le ayudarán a lograr un rendimiento óptimo de la instancia de NetScaler VPX en la plataforma Linux-KVM.

Configuración de rendimiento para KVM

Realice las siguientes configuraciones en el host KVM:

Busque el dominio NUMA de la NIC usando el comando lstopo:

Asegúrese de que la memoria para el VPX y la CPU estén ancladas en la misma ubicación. En la siguiente salida, la NIC de 10G “ens2” está vinculada al dominio NUMA #1.

Dominio NUMA n.º 1

Asigne la memoria de VPX desde el dominio NUMA.

El comando numactl indica el dominio NUMA desde el que se asigna la memoria. En la siguiente salida, se asignan aproximadamente 10 GB de RAM desde el nodo NUMA n.º 0.

Nodo NUMA n.º 0

Para cambiar la asignación del nodo NUMA, siga estos pasos.

  1. Edite el .xml del VPX en el host.

    /etc/libvirt/qemu/<VPX_name>.xml
    <!--NeedCopy-->
    
  2. Agregue la siguiente etiqueta:

    <numatune>
    <memory mode="strict" nodeset="1"/>    This is the NUMA domain name
    </numatune>
    <!--NeedCopy-->
    
  3. Apague el VPX.

  4. Ejecute el siguiente comando:

    virsh define /etc/libvirt/qemu/<VPX_name>.xml
    <!--NeedCopy-->
    

    Este comando actualiza la información de configuración de la VM con las asignaciones de nodos NUMA.

  5. Encienda el VPX. Luego, compruebe la salida del comando numactl –hardware en el host para ver las asignaciones de memoria actualizadas para el VPX.

    Salida del comando numactl hardware

Fije las vCPU de VPX a los núcleos físicos.

  • Para ver las asignaciones de vCPU a pCPU de un VPX, escriba el siguiente comando

     virsh vcpupin <VPX name>
     <!--NeedCopy-->
    

    Salida del comando virsh-vcpupin

    Las vCPU 0–4 se asignan a los núcleos físicos 8–11.

  • Para ver el uso actual de la pCPU, escriba el siguiente comando:

     mpstat -P ALL 5
     <!--NeedCopy-->
    

    Salida del comando mpstat

    En esta salida, 8 es la CPU de administración y 9–11 son los motores de paquetes.

  • Para cambiar la fijación de vCPU a pCPU, hay dos opciones.

    • Cámbielo en tiempo de ejecución después de que el VPX se inicie usando el siguiente comando:

       virsh vcpupin <VPX name> <vCPU id>  <pCPU number>
       virsh vcpupin NetScaler-VPX-XML 0 8
       virsh vcpupin NetScaler-VPX-XML 1 9
       virsh vcpupin NetScaler-VPX-XML 2 10
       virsh vcpupin NetScaler-VPX-XML 3 11
       <!--NeedCopy-->
      
    • Para realizar cambios estáticos en el VPX, edite el archivo .xml como antes con las siguientes etiquetas:

      1. Edite el archivo .xml del VPX en el host

        /etc/libvirt/qemu/<VPX_name>.xml
        <!--NeedCopy-->
        
      2. Agregue la siguiente etiqueta:

        <vcpu placement='static' cpuset='8-11'>4</vcpu>
            <cputune>
                <vcpupin vcpu='0' cpuset='8'/>
                <vcpupin vcpu='1' cpuset='9'/>
                <vcpupin vcpu='2' cpuset='10'/>
                <vcpupin vcpu='3' cpuset='11'/>
            </cputune>
        <!--NeedCopy-->
        
      3. Apague el VPX.

      4. Actualice la información de configuración de la VM con las asignaciones de nodos NUMA usando el siguiente comando:

        virsh define /etc/libvirt/qemu/ <VPX_name>.xml
        <!--NeedCopy-->
        
      5. Encienda el VPX. Luego, compruebe la salida del comando virsh vcpupin <VPX name> en el host para ver la fijación de CPU actualizada.

Elimine la sobrecarga de interrupciones del host.

  • Detecte VM_EXITS usando el comando kvm_stat.

    A nivel de hipervisor, las interrupciones del host se asignan a las mismas pCPU en las que están fijadas las vCPU del VPX. Esto podría provocar que las vCPU del VPX se expulsen periódicamente.

    Para encontrar las salidas de VM realizadas por las VM que ejecutan el host, use el comando kvm_stat.

     [root@localhost ~]# kvm_stat -1  | grep EXTERNAL
     kvm_exit(EXTERNAL_INTERRUPT)  1728349 27738
     [root@localhost ~]#
     <!--NeedCopy-->
    

    Un valor más alto del orden de 1+M indica un problema.

    Si hay una sola VM presente, el valor esperado es de 30 a 100 K. Cualquier valor superior a este puede indicar que hay uno o más vectores de interrupción del host asignados a la misma pCPU.

  • Detectar interrupciones del host y migrar interrupciones del host.

    Cuando ejecuta el comando concatenate para el archivo «/proc/interrupts», se muestran todas las asignaciones de interrupciones del host. Si una o más IRQ activas se asignan a la misma pCPU, su contador correspondiente se incrementa.

    Mueva cualquier interrupción que se superponga con las pCPU de su NetScaler VPX a pCPU no utilizadas:

     echo 0000000f > /proc/irq/55/smp_affinity
     0000000f - - > it is a bitmap, LSBs indicates that IRQ 55 can only be scheduled on pCPUs 0 – 3
     <!--NeedCopy-->
    
  • Deshabilitar el equilibrio de IRQ.

    Deshabilite el demonio de equilibrio de IRQ, para que no se produzca ninguna reprogramación sobre la marcha.

     service irqbalance stop
     service irqbalance show - To check the status
     service irqbalance start - Enable if needed
     <!--NeedCopy-->
    

    Asegúrese de ejecutar el comando kvm_stat para garantizar que no haya muchos contadores.

NetScaler VPX con interfaces de red PV

Puede configurar interfaces de red de paravirtualización (PV), SR-IOV y PCIe passthrough como una implementación de Dos vNIC por pNIC. Para obtener más información, consulte Implementación de dos vNIC por pNIC.

Para un rendimiento óptimo de las interfaces PV (virtio), siga estos pasos:

  • Identifique el dominio NUMA al que pertenece la ranura PCIe/NIC.
  • La memoria y la vCPU para el VPX deben estar ancladas al mismo dominio NUMA.
  • El hilo de Vhost debe estar vinculado a las CPU del mismo dominio NUMA.

Vincular los hilos del host virtual a las CPU correspondientes:

  1. Una vez iniciado el tráfico, ejecute el comando top en el host.

    Ejecutar el comando top

  2. Identifique la afinidad del proceso del host virtual (denominado vhost-<pid-of-qemu>).
  3. Vincule los procesos vHost a los núcleos físicos en el dominio NUMA identificado anteriormente utilizando el siguiente comando:

    taskset –pc <core-id> <process-id>
    <!--NeedCopy-->
    

    Ejemplo:

    taskset –pc 12 29838
    <!--NeedCopy-->
    
  4. Los núcleos del procesador correspondientes al dominio NUMA se pueden identificar con el siguiente comando:

    [root@localhost ~]# virsh capabilities | grep cpu
    <cpu>
        </cpu>
            <cpus num='8'>
                <cpu id='0' socket_id='0' core_id='0' siblings='0'/>
                <cpu id='1' socket_id='0' core_id='1' siblings='1'/>
                <cpu id='2' socket_id='0' core_id='2' siblings='2'/>
                <cpu id='3' socket_id='0' core_id='3' siblings='3'/>
                <cpu id='4' socket_id='0' core_id='4' siblings='4'/>
                <cpu id='5' socket_id='0' core_id='5' siblings='5'/>
                <cpu id='6' socket_id='0' core_id='6' siblings='6'/>
                <cpu id='7' socket_id='0' core_id='7' siblings='7'/>
            </cpus>
    
            <cpus num='8'>
            <cpu id='8' socket_id='1' core_id='0' siblings='8'/>
            <cpu id='9' socket_id='1' core_id='1' siblings='9'/>
            <cpu id='10' socket_id='1' core_id='2' siblings='10'/>
            <cpu id='11' socket_id='1' core_id='3' siblings='11'/>
            <cpu id='12' socket_id='1' core_id='4' siblings='12'/>
            <cpu id='13' socket_id='1' core_id='5' siblings='13'/>
            <cpu id='14' socket_id='1' core_id='6' siblings='14'/>
            <cpu id='15' socket_id='1' core_id='7' siblings='15'/>
            </cpus>
    
        <cpuselection/>
        <cpuselection/>
    
    <!--NeedCopy-->
    

Vincule el proceso QEMU al núcleo físico correspondiente:

  1. Identifique los núcleos físicos en los que se está ejecutando el proceso QEMU. Para obtener más información, consulte la salida anterior.
  2. Vincule el proceso QEMU a los mismos núcleos físicos a los que vincula las vCPU, utilizando el siguiente comando:

    taskset –pc 8-11 29824
    <!--NeedCopy-->
    

NetScaler VPX con SR-IOV e interfaces de red de paso de PCIe Fortville

Para un rendimiento óptimo de las interfaces de red de paso de PCIe SR-IOV y Fortville, siga estos pasos:

  • Identifique el dominio NUMA al que pertenece la ranura PCIe/NIC.
  • La memoria y la vCPU para NetScaler VPX deben estar ancladas al mismo dominio NUMA.

Archivo XML VPX de ejemplo para la asignación de vCPU y memoria para Linux KVM:

    <domain type='kvm'>
        <name>NetScaler-VPX</name>
        <uuid>138f7782-1cd3-484b-8b6d-7604f35b14f4</uuid>
        <memory unit='KiB'>8097152</memory>
        <currentMemory unit='KiB'>8097152</currentMemory>
        <vcpu placement='static'>4</vcpu>

    <cputune>
        <vcpupin vcpu='0' cpuset='8'/>
        <vcpupin vcpu='1' cpuset='9'/>
        <vcpupin vcpu='2' cpuset='10'/>
        <vcpupin vcpu='3' cpuset='11'/>
    </cputune>

    <numatune>
    <memory mode='strict' nodeset='1'/>
    </numatune>

    </domain>
<!--NeedCopy-->

Instancia de NetScaler VPX en Citrix Hypervisors

Esta sección contiene detalles de opciones y configuraciones configurables, y otras sugerencias que le ayudarán a lograr un rendimiento óptimo de la instancia de NetScaler VPX en Citrix Hypervisors.

Configuración de rendimiento para Citrix Hypervisors

Busque el dominio NUMA de la NIC usando el comando “xl”:

xl info -n
<!--NeedCopy-->

Fije las vCPU de VPX a los núcleos físicos.

xl vcpu-pin <Netsclaer VM Name>  <vCPU id>  <physical CPU id>
<!--NeedCopy-->

Compruebe la vinculación de las vCPU.

xl vcpu-list
<!--NeedCopy-->

Asigne más de 8 vCPU a las máquinas virtuales de NetScaler.

Para configurar más de 8 vCPU, ejecute los siguientes comandos desde la consola de Citrix Hypervisor™:

xe vm-param-set uuid=your_vms_uuid VCPUs-max=16
xe vm-param-set uuid=your_vms_uuid VCPUs-at-startup=16
<!--NeedCopy-->

NetScaler VPX con interfaces de red SR-IOV

Para un rendimiento óptimo de las interfaces de red SR-IOV, siga estos pasos:

  • Identifique el dominio NUMA al que está vinculado el slot PCIe o la NIC.
  • Fije la memoria y la vCPU para el VPX al mismo dominio NUMA.
  • Vincule la vCPU de Domain-0 a la CPU restante.

NetScaler VPX con interfaces paravirtualizadas

Para un rendimiento óptimo, se recomiendan configuraciones de dos vNIC por pNIC y una vNIC por pNIC, como en otros entornos PV.

Para lograr un rendimiento óptimo de las interfaces paravirtualizadas (netfront), siga estos pasos:

  • Identifique el dominio NUMA al que pertenece la ranura PCIe o la NIC.
  • Fije la memoria y la vCPU para el VPX al mismo dominio NUMA.
  • Vincule la vCPU de Domain-0 a la CPU restante del mismo dominio NUMA.
  • Fije los hilos Rx/Tx del host de la vNIC a las vCPU de Domain-0.

Fijar hilos del host a las vCPU de Domain-0:

  1. Busque el ID de Xen de NetScaler VPX mediante el comando xl list en el shell del host de Citrix Hypervisor.
  2. Identifique los hilos del host mediante el siguiente comando:

    ps -ax | grep vif <Xen-ID>
    <!--NeedCopy-->
    

    En el siguiente ejemplo, estos valores indican:

    • vif5.0 - Los hilos para la primera interfaz asignada al VPX en XenCenter (interfaz de administración).
    • vif5.1 - Los hilos para la segunda interfaz asignada al VPX y así sucesivamente.

    Salida del comando xl list

  3. Fije los hilos a las vCPU de Domain-0 mediante el siguiente comando:

    taskset –pc <core-id> <process-id>
    <!--NeedCopy-->
    

    Ejemplo:

    taskset -pc 1 29189
    <!--NeedCopy-->
    
Optimizar el rendimiento de NetScaler VPX en VMware ESX, Linux KVM y Citrix Hypervisors