En esta página, se describe cómo probar el rendimiento de una instancia de Google Cloud Managed Lustre con clientes de Compute Engine. Se proporcionan instrucciones para medir el rendimiento de un solo cliente con fio y el rendimiento agregado de varios clientes con la herramienta de comparativas IOR.
Cómo medir el 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 tarda 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 de red máxima de tu VM y miles de IOPS por TiB.
Cómo medir el rendimiento de varios clientes
Para probar el rendimiento de lectura y escritura de Managed Lustre desde varios clientes de Compute Engine, usa la herramienta de comparativas IOR. En las siguientes instrucciones, se muestra cómo automatizar la configuración del cliente y usar IOR para probar la E/S agregada desde varias máquinas cliente. IOR usa MPI, un protocolo de transmisión de mensajes, para permitir que las varias máquinas cliente se coordinen entre sí.
Antes de comenzar, asegúrate de que el valor mtu de tu red esté
establecido en 8896.
Establece variables de entorno y genera una clave SSH
Antes de implementar tu clúster, genera una clave SSH en tu máquina local. Esta clave se distribuirá a tus máquinas cliente durante la creación para habilitar la comunicación sin contraseña para MPI.
export SSH_USER="lustre-user"
export CLIENT_PREFIX="lustre-client"
# Generate an SSH key for the specified user
ssh-keygen -t rsa -b 4096 -C "${SSH_USER}" -N '' -f "./id_rsa"
chmod 600 "./id_rsa"
# Create a metadata file formatted for Google Cloud
echo "${SSH_USER}:$(cat "./id_rsa.pub") ${SSH_USER}" > "./keys.txt"
Crea la secuencia de comandos de inicio
Guarda el siguiente contenido en un archivo llamado install-ior.sh en tu máquina local. Esta secuencia de comandos detecta el sistema operativo, espera a que se liberen los bloqueos de arranque, instala de forma segura el cliente y las dependencias de Lustre, compila una versión estable de IOR y activa el sistema de archivos Managed Lustre.
Reemplaza LUSTRE_IP por la dirección IP de tu instancia de Managed Lustre y FS_NAME por el nombre de tu sistema de archivos.
#!/bin/bash
source /etc/os-release
if [[ "$ID" == "ubuntu" ]]; then
# Ubuntu
# Wait for apt lock
while fuser /var/lib/dpkg/lock-frontend >/dev/null 2>&1; do sleep 5; done
# Configure Artifact Registry repo for Ubuntu
curl -fsSL https://us-apt.pkg.dev/doc/repo-signing-key.gpg | sudo gpg --dearmor -o /usr/share/keyrings/us-apt-pkg-dev.gpg
if [[ "$VERSION_ID" == "22.04" ]]; then
REPO_NAME="lustre-client-ubuntu-jammy"
elif [[ "$VERSION_ID" == "24.04" ]]; then
REPO_NAME="lustre-client-ubuntu-noble"
fi
echo "deb [signed-by=/usr/share/keyrings/us-apt-pkg-dev.gpg] https://us-apt.pkg.dev/projects/lustre-client-binaries $REPO_NAME main" | sudo tee /etc/apt/sources.list.d/lustre-client.list
sudo apt-get update
while ! sudo apt-get install -y lustre-client-modules-$(uname -r) lustre-client-utils openmpi-bin libopenmpi-dev make gcc g++ wget git automake autoconf libaio-dev; do
sleep 5
done
sudo modprobe lustre
else
# Red Hat / Rocky Linux
while systemctl is-active --quiet dnf-makecache.service; do sleep 5; done
if [[ "$ID" == "rocky" && "$VERSION_ID" == 8* ]]; then
REPO="lustre-client-rocky-8"
elif [[ "$ID" == "rocky" && "$VERSION_ID" == 9* ]]; then
REPO="lustre-client-rocky-9"
elif [[ "$ID" == "rhel" && "$VERSION_ID" == 9* ]]; then
REPO="lustre-client-rocky-9"
fi