En esta página, se proporciona orientación para configurar tu entorno de Google Cloud Managed Lustre para obtener el mejor rendimiento.
Para ver los números de rendimiento específicos de cada nivel de rendimiento, consulta Niveles de rendimiento.
Rendimiento después de aumentar la capacidad
Si aumentas la capacidad de almacenamiento de una instancia existente, aumentará su capacidad de procesamiento y sus IOPS máximas, y es posible que también aumente el rendimiento de sus metadatos.
El rendimiento de la capacidad de procesamiento de lectura mejora de forma gradual a medida que se escriben y redistribuyen datos nuevos en el almacenamiento adicional. El rendimiento de la capacidad de procesamiento de escritura aumenta de inmediato.
Unidad de transmisión máxima (MTU) de la red de VPC
Cuando creas tu red de VPC, si configuras el valor de mtu
(unidad de transmisión máxima o el tamaño del paquete IP más grande que se puede
transmitir en esta red) en el valor máximo permitido de 8896, el rendimiento mejora
hasta un 10% en comparación con el valor predeterminado de 1460 bytes.
Puedes ver el valor actual de MTU de tu red con el siguiente comando:
gcloud compute networks describe NETWORK_NAME --format="value(mtu)"
El valor de MTU de una red se puede actualizar después de que se crea la red, pero hay consideraciones importantes. Consulta Cambia la MTU de una red para obtener más detalles.
Tipos de máquina de Compute Engine
La capacidad de procesamiento de la red puede verse afectada por el tipo de máquina que elijas. En general, para obtener la mejor capacidad de procesamiento, haz lo siguiente:
- Aumentar el número de CPU virtuales Por lo general, el ancho de banda de salida por instancia es de 2 Gbps por CPU virtual, hasta el máximo del tipo de máquina.
- Selecciona una serie de máquinas que admita límites de entrada y salida más altos. Por ejemplo, las instancias C2 con herramientas de redes de Tier_1 admiten hasta 100 Gbps de ancho de banda de salida. Las instancias C3 con herramientas de redes de Tier_1 admiten hasta 200 Gbps.
- Habilita el rendimiento de redes Tier_1 de VM con tipos de máquinas más grandes.
- Usa la NIC virtual (gVNIC) de Google. gVNIC es la única opción para los tipos de máquinas de generación 3 y posteriores. gVNIC es obligatorio cuando se usan las herramientas de redes de Tier_1.
Para obtener información detallada, consulta Ancho de banda de red.
Configuración de varias NIC
Con la capacidad integrada de varias rutas de Lustre, los clientes pueden segmentar el tráfico de red en varias tarjetas de interfaz de red (varias NIC). Esto agrega ancho de banda para saturar instancias de Managed Lustre de alta capacidad.
Para configurar varias NIC, debes hacer lo siguiente:
- Selecciona un tipo de máquina con varias NIC físicas.
- Crea una subred para cada NIC y asigna cada NIC a su subred.
- Sigue los pasos de varias NIC cuando te conectes desde Compute Engine o GKE.
Verifica el balanceo de tráfico
Una vez que hayas configurado varias NIC, verifica que los datos se balanceen correctamente.
Compute Engine
Para verificar el balanceo de datos directamente en la VM, supervisa las interfaces de red configuradas (por ejemplo, eth0 y eth1) con nload mientras generas tráfico al backend de Managed Lustre:
nload -m eth0 eth1
En una configuración de varias NIC correcta, las tasas de bits salientes deben ser aproximadamente equivalentes en todas las interfaces configuradas.
GKE
Para confirmar que el tráfico de red de tu carga de trabajo esté balanceado en varias NIC, implementa un Pod de depurador de red temporal en el nodo en el que está programada tu carga de trabajo:
Identifica el nodo en el que está programada tu carga de trabajo:
kubectl get pod POD_NAME -o wideReemplaza POD_NAME por el nombre del Pod. En el resultado del comando, anota el nombre en la columna
NODE.Inicia el depurador de red en ese nodo:
kubectl run multi-nic-debug --rm -i --tty --image=nicolaka/netshoot \ --overrides='{"spec": {"hostNetwork": true, "nodeSelector": {"kubernetes.io/hostname": "NODE_NAME"}, "tolerations": [{"key": "nvidia.com/gpu", "operator": "Exists", "effect": "NoSchedule"}]}}' \ -- /bin/bash -c "apk update && apk add nload && nload -m eth0 eth1"Reemplaza NODE_NAME por el nombre del nodo del paso anterior.
En el resultado, analiza las tasas de bits de la columna Outgoing para
eth0yeth1. Si la configuración es correcta, las tasas de bits son aproximadamente equivalentes. El resultado es similar a lo siguiente:Device eth0 [10.1.0.50] (1/2): ========================================================================== Incoming: Outgoing: Curr: 1.63 MBit/s Curr: 1.46 GBit/s Avg: 1.60 MBit/s Avg: 1.44 GBit/s Min: 1.40 MBit/s Min: 1.25 GBit/s Max: 1.64 MBit/s Max: 1.47 GBit/s Ttl: 590.94 GByte Ttl: 405.19 GByte Device eth1 [172.16.15.5] (2/2): ========================================================================== Incoming: Outgoing: Curr: 1.64 MBit/s Curr: 1.47 GBit/s Avg: 1.62 MBit/s Avg: 1.44 GBit/s Min: 1.42 MBit/s Min: 1.26 GBit/s Max: 1.66 MBit/s Max: 1.47 GBit/s Ttl: 587.68 GByte Ttl: 406.36 GBytePresiona Ctrl+C para salir del depurador.
Medición del rendimiento de un solo cliente
Para probar el rendimiento de lectura y escritura desde un solo cliente de Compute Engine, usa
la herramienta de línea de comandos fio (verificador de E/S flexible).
Instala fio:
Rocky 8
sudo dnf install fio -yUbuntu 20.04 y 22.04
sudo apt update sudo install fioEjecuta el siguiente comando:
fio --ioengine=libaio --filesize=32G --ramp_time=2s \ --runtime=5m --numjobs=16 --direct=1 --verify=0 --randrepeat=0 \ --group_reporting --directory=/lustre --buffer_compress_percentage=50 \ --name=read --blocksize=1m --iodepth=64 --readwrite=read
La prueba toma aproximadamente 5 minutos en completarse. Cuando finaliza, se muestran los resultados. Según tu configuración, puedes esperar una capacidad de procesamiento de hasta la velocidad máxima de red de tu VM y miles de IOPS por TiB.