Optimiser les performances

Cette page explique comment optimiser les performances de Google Cloud NetApp Volumes.

Avant de commencer

Avant de modifier vos volumes pour optimiser les performances, consultez les considérations sur les performances.

Ajuster les paramètres de volume

Vous pouvez optimiser les performances en ajustant les paramètres de volume suivants :

  • Augmenter la capacité du volume : vous pouvez augmenter la capacité de votre volume de niveau de service Premium, Extreme ou Standard pour améliorer le débit maximal du volume. Pour les volumes de niveau de service Flex, augmentez plutôt la capacité des pools de stockage.

  • Mettez à niveau votre niveau de service : vous pouvez mettre à niveau vos volumes de niveau de service Premium vers le niveau de service Extreme pour améliorer le débit. Nous vous recommandons d'attribuer le volume à un autre pool de stockage avec un niveau de service différent.

  • Utilisez des pools QoS manuels pour attribuer un débit plus élevé : vous pouvez diminuer le débit attribué aux volumes plus importants ayant de faibles exigences en termes de débit, et augmenter le débit des volumes plus petits ayant besoin de performances plus élevées jusqu'au débit de pool disponible.

L'augmentation de la capacité de volume et la mise à niveau des niveaux de service n'interrompent pas les charges de travail d'E/S en cours sur le volume et n'affectent en aucun cas l'accès au volume.

Ajuster le client

Vous pouvez améliorer les performances en ajustant les paramètres suivants sur le client :

  • Colocaliser les clients : les résultats de latence sont directement impactés par les capacités et l'emplacement du client. Pour de meilleurs résultats, placez le client dans la même région que le volume ou aussi près que possible. Testez l'impact zonal en testant la latence d'un client dans chaque zone et utilisez la zone avec la latence la plus faible.

  • Configurer la bande passante réseau Compute Engine : les capacités réseau des machines virtuelles Compute Engine dépendent du type d'instance utilisé. En règle générale, les instances plus grandes peuvent générer un débit réseau plus élevé. Nous vous recommandons de sélectionner une machine virtuelle cliente avec une bande passante réseau appropriée, de sélectionner l'interface réseau gVNIC (Google Virtual NIC) et d'activer les performances Tier_1. Pour en savoir plus, consultez la documentation Compute Engine sur la bande passante réseau.

  • Ouvrez plusieurs sessions TCP : si votre application nécessite un débit élevé, vous pouvez finir par saturer la session TCP (Transmission Control Protocol) unique qui sous-tend une session NFS et SMB normale. Dans ce cas, augmentez le nombre de sessions TCP utilisées par votre connexion NFS et SMB.

    Utilisez l'un des onglets suivants pour ajuster votre client en fonction de son type :

    Linux

    Traditionnellement, un client NFS utilise une seule session TCP pour tous les systèmes de fichiers montés NFS qui partagent un point de terminaison de stockage. L'option d'installation nconnect vous permet d'augmenter le nombre de sessions TCP compatibles jusqu'à un maximum de 16.

    Nous vous recommandons de suivre les bonnes pratiques suivantes pour ajuster votre type de client Linux afin de profiter pleinement de nconnect :

    • Augmentez le nombre de sessions TCP avec nconnect : chaque session TCP supplémentaire ajoute une file d'attente pour 128 requêtes en attente, ce qui améliore la simultanéité potentielle.

    • Définissez le paramètre sunrpc.max_tcp_slot_table_entries : sunrpc.max_tcp_slot_table_entries est un paramètre d'ajustement au niveau de la connexion que vous pouvez modifier pour contrôler les performances. Nous vous recommandons de définir sunrpc.max_tpc_slot_table_enteries sur 128 requêtes par connexion et de ne pas dépasser 10 000 emplacements pour tous les clients NFS d'un même projet se connectant à NetApp Volumes. Pour définir le paramètre sunrpc.max_tcp_slot_table_entries, ajoutez-le à votre fichier /etc/sysctl.conf, puis rechargez le fichier de paramètres à l'aide de la commande sysctl -p.

    • Réglez la valeur maximale acceptée par session sur 180 : contrairement à NFSv3, les clients NFSv4.1 définissent la relation entre le client et le serveur dans les sessions. Alors que NetApp Volumes accepte jusqu'à 128 requêtes en attente par connexion avec NFSv3, NFSv4.1 est limité à 180 requêtes en attente par session. Les clients Linux NFSv4.1 sont définis par défaut sur 64 max_session_slots par session, mais vous pouvez ajuster cette valeur si nécessaire. Nous vous recommandons de définir la valeur maximale acceptée par session sur 180.

      Pour ajuster max_session_slots, créez un fichier de configuration sous /etc/modprobe.d. Assurez-vous qu'aucun guillemet (" ") n'apparaît sur la même ligne. Sinon, l'option ne prend pas effet.

      $ echo "options nfs max_session_slots=180" > /etc/modprobe/d/nfsclient/conf
      $ reboot
      
      Use the systool -v -m nfs command to see the current maximum in use
      by the client. For the command to work, at least one NFSv4.1 mount
      must be in place.
      
      $ systool -v -v nfs
      {
      Module = "nfs"
      
      Parameters:
      
      Max_session_slots = "63" <-
      
      }
      

    Le graphique comparatif NFS nconnect suivant illustre l'impact que la configuration nconnect peut avoir sur une charge de travail NFS. Ces informations ont été recueillies à l'aide de Fio avec les paramètres suivants :

    • Charge de travail de lecture à 100 %

    • Taille de bloc de 8 Kio par rapport à un seul volume

    • n2-standard-32 machine virtuelle utilisant l'OS Red Hat 9

    • Ensemble de travail de 6 Tio

    L'utilisation d'une valeur nconnect de 16 a permis de multiplier les performances par cinq par rapport à la situation où elle n'était pas activée.

    Comparaison de NFS nconnect à l&#39;aide d&#39;une seule machine virtuelle Red Hat 9 avec une taille de bloc de 8 Kio.

    Windows

    Pour les clients Windows, le client peut utiliser SMB Multichannel avec Receive Side Scaling (RSS) pour ouvrir plusieurs connexions TCP. Pour obtenir cette configuration, votre machine virtuelle doit disposer d'une carte réseau allouée compatible avec RSS. Nous vous recommandons de définir le RSS sur quatre ou huit valeurs. Toutefois, toute valeur supérieure à un devrait augmenter le débit.

    Le graphique suivant montre la différence que la configuration RSS peut avoir sur une charge de travail SMB. Ces informations ont été recueillies à l'aide de Fio avec les paramètres suivants :

    • Charge de travail de lecture à 100 %

    • Taille de bloc de 8 Kio par rapport à un seul volume

    • Une seule machine virtuelle n2-standard-32 exécutant un OS Windows 2022

    • Ensemble de travail de 6 Tio

    Huit tâches ont été exécutées, seule l'option "RSS du client SMB" changeant entre les exécutions de test. L'utilisation de valeurs RSS de 4, 8 et 16 a permis de doubler les performances par rapport à l'utilisation d'une valeur de 1. Chaque instance RSS a été exécutée neuf fois avec un paramètre numjobs de 8. Le paramètre iodepth a été augmenté de cinq à chaque exécution jusqu'à ce que le débit maximal soit atteint.

    Comparaison SMB/RSS d&#39;une seule VM Windows 2022 avec une taille de bloc de 8 Kio

QoS manuelle

La qualité de service (QoS) manuelle dans NetApp Volumes vous permet d'ajuster les performances des volumes pour répondre aux exigences des charges de travail et contrôler les coûts de stockage.

La QoS manuelle offre les avantages suivants :

  • Optimisation des coûts : adaptez les performances de volume à la capacité de votre pool de stockage pour optimiser les coûts cloud.

  • Ajustement instantané du débit : ajustez le débit du volume sans temps d'arrêt.

  • Réduction des coûts de reprise après sinistre : qualité de service inférieure pour les volumes répliqués afin de réduire les coûts de reprise après sinistre pour les pools de destination.

  • Performances améliorées pour les clones ou les caches : améliorez les performances des volumes de clone ou de cache avec de petites tailles allouées.

  • Gestion flexible des charges de travail : utilisez des pools de stockage plus volumineux comme conteneurs pour plusieurs charges de travail, en ajustant le débit de chaque volume selon les besoins.

Remarques

  • Vous pouvez gérer la qualité de service manuelle à l'aide de Google Cloud CLI, de l'API NetApp Volumes ou de Terraform. La console Google Cloud n'est pas compatible.

  • La qualité de service manuelle est compatible avec les niveaux de service Standard, Premium et Extreme, mais pas avec le niveau de service Flex.

Configurer des limites QoS manuelles

Pour les volumes d'un pool de stockage QoS manuel, vous pouvez définir le débit et la capacité indépendamment. Le débit global de tous les volumes d'un pool QoS manuel est limité par le débit total du pool. Le débit du pool est déterminé par sa capacité allouée et son niveau de service. Par exemple, un pool Premium de 40 Tio peut atteindre un débit maximal de 2 560 Mio/s à 64 Mio/s par Tio, tandis qu'un pool Extreme de 200 Tio peut accepter des volumes avec un débit combiné de 25 600 Mio/s.

Une fois le pool QoS manuel configuré, vous pouvez définir la limite de débit requise pour chaque volume qu'il contient. La limite de débit maximale pour un seul volume est de 4,5 Gio/s, ou de 30 Gio/s pour les volumes de grande capacité.

Les commandes ou API de pool et de volume affichent les valeurs de débit disponibles et attribuées pour le pool afin de vous aider à gérer le débit total. Pour créer un pool QoS manuel et définir le débit du volume, consultez Créer un pool de stockage et Créer un volume.

Créer un pool de stockage

gcloud

Créez un pool de stockage à l'aide de la qualité de service manuelle :

    gcloud netapp storage-pools create POOL_NAME \
       --project=PROJECT_ID \
       --location=LOCATION \
       --capacity=CAPACITY \
       --service-level=SERVICE_LEVEL \
       --qos-type=QOS_TYPE \
       --network=name=NETWORK_NAME

Remplacez les informations suivantes :

  • POOL_NAME : nom du pool que vous souhaitez créer. Le nom de votre pool doit être unique par emplacement.

  • PROJECT_ID : nom du projet dans lequel vous souhaitez créer le pool de stockage.

  • LOCATION : emplacement du pool que vous souhaitez créer.

  • CAPACITY : capacité du pool en Gio.

  • SERVICE_LEVEL : niveau de service de votre pool de stockage (Standard, Premium ou Extreme).

  • QOS_TYPE : type de QoS de votre pool de stockage : "auto" ou "manual".

  • NETWORK_NAME : nom du VPC.

Modifier un pool de stockage

gcloud

Modifiez un pool de stockage QoS automatique existant pour utiliser la QoS manuelle :

    gcloud netapp storage-pools update POOL_NAME \
       --project=PROJECT_ID \
       --location=LOCATION \
       --qos-type=QOS_TYPE

Remplacez les informations suivantes :

  • POOL_NAME : nom du pool que vous souhaitez mettre à jour.

  • PROJECT_ID : nom du projet.

  • LOCATION : emplacement du pool.

  • QOS_TYPE : type de QoS mis à jour pour votre pool de stockage. Seule la configuration manuelle est acceptée.

Créer un volume

gcloud

Créez un volume avec une limite de débit QoS manuelle spécifiée à l'aide de la commande suivante :

gcloud netapp volumes create VOLUME_NAME \
  --project=PROJECT_ID \
  --location=LOCATION \
  --storage-pool=STORAGE_POOL \
  --capacity=CAPACITY \
  --protocols=PROTOCOLS \
  --share-name=SHARE_NAME \
  --throughput-mibps=THROUGHPUT_MIBPS

Remplacez les informations suivantes :

  • VOLUME_NAME : nom du volume. Ce nom doit être unique pour chaque emplacement.

  • PROJECT_ID : nom du projet dans lequel créer le volume.

  • LOCATION : emplacement du volume.

  • STORAGE_POOL : pool de stockage dans lequel créer le volume.

  • CAPACITY : capacité du volume. Elle définit la capacité que voient les clients NAS.

  • PROTOCOLS : choisissez les protocoles NAS avec lesquels le volume est exporté. Les choix valides sont NFSv3, NFSv4, SMB et les combinaisons suivantes :

    • nfsv3,nfsv4
    • nfsv3,smb
    • nfsv4,smb

    Selon le type de protocole que vous choisissez, nous vous recommandons d'ajouter les paramètres spécifiques au protocole, comme export-policy ou smb-settings.

  • SHARE_NAME : chemin d'exportation NFS ou nom de partage SMB du volume.

  • THROUGHPUT_MIBPS : limite de débit du volume en Mio/s.

Pour en savoir plus sur les options facultatives supplémentaires, consultez la documentation du SDK Google Cloud sur la création de volumes.

Étapes suivantes

En savoir plus sur les pools de stockage