Considérations sur les performances

Cette page fournit des conseils sur la configuration de votre environnement Google Cloud Managed Lustre pour obtenir les meilleures performances.

Spécifications de performances

Les chiffres de performances suivants sont des valeurs maximales approximatives.

IOPS

Les IOPS maximales évoluent de manière linéaire par Tio de capacité d'instance provisionnée.

Niveau de débit IOPS en lecture (par Tio) IOPS en écriture (par Tio)
125 MBps per TiB 725 700
250 MBps per TiB 1 450 1 400
500 MBps per TiB 2 900 2 800
1000 MBps per TiB 5 800 5 600

Opérations associées aux métadonnées

Le nombre maximal d'opérations sur les métadonnées augmente par étapes de 72 Gbit/s de débit provisionné.

Statistiques sur les fichiers Créations de fichiers Suppressions de fichiers
Par 72 Gbit/s 410 000 par seconde 115 000 par seconde 95 000 par seconde

Performances après augmentation de la capacité

L'augmentation de la capacité de stockage d'une instance existante augmente son débit maximal et ses IOPS, et éventuellement ses performances de métadonnées.

Les performances du débit en lecture s'améliorent progressivement à mesure que de nouvelles données sont écrites et redistribuées sur le stockage supplémentaire. Les performances du débit en écriture augmentent immédiatement.

Unité de transmission maximale (MTU) du réseau VPC

Lorsque vous créez votre réseau VPC, définir la valeur de mtu (unité de transmission maximale ou taille du plus grand paquet IP pouvant être transmis sur ce réseau) sur la valeur maximale autorisée de 8 896 améliore les performances jusqu'à 10 % par rapport à la valeur par défaut de 1 460 octets.

Vous pouvez afficher la valeur MTU actuelle de votre réseau à l'aide de la commande suivante :

gcloud compute networks describe NETWORK_NAME --format="value(mtu)"

La valeur MTU d'un réseau peut être mise à jour après la création du réseau, mais il existe des considérations importantes. Pour en savoir plus, consultez Modifier la MTU d'un réseau pour détails.

Types de machines Compute Engine

Le débit réseau peut être affecté par le type de machine que vous choisissez. En général, pour obtenir le meilleur débit :

  • Augmentez le nombre de vCPU. La bande passante de sortie maximale par instance est généralement de 2 Gbit/s par processeur virtuel, jusqu'au maximum du type de machine.
  • Sélectionnez une série de machines qui accepte des limites d'entrée et de sortie plus élevées. Par exemple, les instances C2 avec un réseau Tier_1 acceptent une bande passante de sortie allant jusqu'à 100 Gbit/s. Les instances C3 avec un réseau Tier_1 acceptent jusqu'à 200 Gbit/s.
  • Activez les performances réseau Tier_1 par VM avec des types de machines plus grands.
  • Utilisez la carte d'interface réseau virtuelle Google (gVNIC). gVNIC est la seule option pour les types de machines de génération 3 et ultérieurs. gVNIC est obligatoire lorsque vous utilisez un réseau Tier_1.

Pour en savoir plus, consultez Bande passante réseau.

Configuration multi-NIC

Grâce à la fonctionnalité multi-rail intégrée de Lustre, les clients peuvent répartir le trafic réseau sur plusieurs cartes d'interface réseau. Cela agrège la bande passante pour saturer les instances Managed Lustre à haute capacité.

Pour configurer plusieurs cartes d'interface réseau, vous devez :

  • sélectionner un type de machine avec plusieurs cartes d'interface réseau physiques ;
  • créer un sous-réseau pour chaque carte d'interface réseau et attribuer chaque carte d'interface réseau à son sous-réseau ;
  • suivre les étapes de configuration de plusieurs cartes d'interface réseau lors de la connexion à partir de Compute Engine ou GKE.

Vérifier l'équilibrage du trafic

Une fois que vous avez configuré plusieurs cartes d'interface réseau, vérifiez que les données sont correctement équilibrées.

Compute Engine

Vérifiez l'équilibrage des données directement sur la VM en surveillant les interfaces réseau configurées (par exemple, eth0 et eth1) à l'aide de nload tout en générant du trafic vers le backend Managed Lustre :

nload -m eth0 eth1

Dans une configuration multi-NIC réussie, les débits sortants doivent être à peu près équivalents sur toutes les interfaces configurées.

GKE

Vérifiez que le trafic réseau de votre charge de travail est équilibré sur plusieurs cartes d'interface réseau en déployant un pod de débogage réseau temporaire sur le nœud où votre charge de travail est planifiée :

  1. Identifiez le nœud où votre charge de travail est planifiée :

    kubectl get pod POD_NAME -o wide
    

    Remplacez POD_NAME par le nom de votre pod. Dans le résultat de la commande, notez le nom dans la colonne NODE.

  2. Lancez le débogueur réseau sur ce nœud :

    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"
    

    Remplacez NODE_NAME par le nom du nœud de l'étape précédente.

  3. Dans le résultat, analysez les débits de la colonne Sortant pour eth0 et eth1. Si la configuration est réussie, les débits sont à peu près équivalents. Le résultat ressemble à ce qui suit :

    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 GByte
    
  4. Quittez le débogueur en appuyant sur Ctrl+C.

Mesurer les performances d'un seul client

Pour tester les performances en lecture et en écriture à partir d'un seul client Compute Engine, utilisez l'outil de ligne de commande fio (Flexible I/O tester).

  1. Installez fio :

    Rocky 8

    sudo dnf install fio -y
    

    Ubuntu 20.04 et 22.04

    sudo apt update
    sudo install fio
    
  2. Exécutez la commande suivante :

    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
    

Le test prend environ cinq minutes. Une fois terminé, les résultats s'affichent. En fonction de votre configuration, vous pouvez vous attendre à un débit allant jusqu'à la vitesse réseau maximale de votre VM et à des milliers d' IOPS par Tio.