Performances de Cloud Storage FUSE

Cette page vous explique comment améliorer les performances de Cloud Storage FUSE.

Améliorer les performances de lecture et d'écriture

Pour améliorer les performances de lecture et d'écriture, nous vous recommandons d'effectuer les opérations suivantes :

  • Activer la mise en cache : Cloud Storage FUSE propose quatre types de cache côté client facultatifs qui stockent localement des types spécifiques de données et de métadonnées pour améliorer les performances :

    La mise en cache Cloud Storage FUSE fonctionne avec n'importe quel répertoire spécifié par l'utilisateur et sauvegardé par l'espace de stockage de votre choix. Les performances du cache Cloud Storage FUSE correspondent au stockage sous-jacent utilisé par le cache, à moindre coût

  • Accélérez les lectures en activant les téléchargements parallèles : accélérez les lectures de fichiers volumineux de plus de 1 Go en activant les téléchargements parallèles. Pour en savoir plus, consultez la page Améliorer les performances de lecture à l'aide de téléchargements parallèles.

  • Exécutez des charges de travail de lecture séquentielle si possible : Cloud Storage FUSE offre de meilleures performances pour les charges de travail de lecture séquentielles que pour les charges de travail de lecture aléatoires. Cloud Storage FUSE utilise une méthode heuristique pour détecter le moment où un fichier est lu de manière séquentielle, ce qui permet d'augmenter la taille et de réduire le nombre de requêtes de lecture Cloud Storage utilisant la même connexion TCP.

  • Ajustez la taille des fichiers en fonction du type de lecture : pour optimiser les performances de lecture séquentielle, nous vous recommandons d'importer et de lire des fichiers compris entre 5 et 200 Mo. Pour optimiser les performances de lecture aléatoire, nous vous recommandons d'importer et de lire des fichiers d'environ 2 Mo.

  • Installer des buckets avec l'espace de noms hiérarchique activé : pour augmenter les performances de lecture et d'écriture et garantir l'atomicité pour les opérations de requêtes par seconde (RPS) initiales plus élevées, nous vous recommandons d'installer des buckets avec l'espace de noms hiérarchique activé. Pour en savoir plus sur la manière dont les buckets avec l'espace de noms hiérarchique peuvent améliorer les performances de FUSE Cloud Storage, consultez Insntaller des buckets avec l'espace de noms hiérarchique activé.

Améliorer les performances de lecture initiale en préchargeant les métadonnées

Avant d'exécuter votre charge de travail, nous vous recommandons de lister récursivement les fichiers de votre bucket installé pour remplir à l'avance les caches de statistiques et de types, et améliorer les performances lors de la première exécution avec une méthode par lot plus rapide :

ls -R MOUNT_POINT > /dev/null

Utiliser la mise en cache de fichiers pour améliorer le débit

Cloud Storage FUSE a une latence supérieure à celle d'un système de fichiers local. Le débit est réduit lorsque vous lisez ou écrivez de petits fichiers un par un, car cela entraîne plusieurs appels d'API distincts. La lecture ou l'écriture simultanées de plusieurs fichiers volumineux peut contribuer à faire augmenter le débit. Utilisez la fonctionnalité de cache de fichiers de Cloud Storage FUSE pour améliorer les performances des petites E/S aléatoires. Pour en savoir plus sur la mise en cache de fichiers et sur la façon d'activer cette fonctionnalité, consultez Utiliser la mise en cache de fichiers Cloud Storage FUSE.

Installer des buckets avec l'espace de noms hiérarchique activé

Pour garantir l'atomicité des opérations de requêtes initiales par seconde (RPS) plus élevées, telles que le point de contrôle et le changement ou le renommage de répertoires, nous vous recommandons d'installer des buckets avec l'espace de noms hiérarchique activé. L'espace de noms hiérarchique organise vos données dans une structure de système de fichiers hiérarchique, ce qui rend les opérations dans le bucket plus efficaces. Les appels Répertorier l'objet (BucketHandle.Objects) sont remplacés par des appels Obtenir un dossier, ce qui permet d'obtenir des temps de réponse plus rapides et de réduire le nombre d'appels de liste pour chaque opération.

Augmenter la taille de la lecture anticipée pour améliorer le débit de lecture élevé

Pour les charges de travail qui impliquent principalement des lectures séquentielles de gros fichiers, telles que la mise en service et la restauration des points de contrôle, augmenter la taille de la lecture anticipée peut considérablement améliorer les performances. Pour ce faire, utilisez le paramètre du kernel Linux read_ahead_kb sur votre ordinateur local. Nous vous recommandons d'augmenter le paramètre du kernel read_ahead_kb à 1 Mo au lieu d'utiliser la valeur par défaut de 128 ko définie sur la plupart des distributions Linux. Les autorisations sudo ou root sont requises pour augmenter le paramètre du kernel.

Pour augmenter le paramètre du noyau read_ahead_kb à 1 Mo pour un répertoire installé Cloud Storage FUSE spécifique, utilisez la commande suivante, où /path/to/mount/point correspond à votre point d'installation Cloud Storage FUSE. Votre bucket doit être installé sur Cloud Storage FUSE avant d'exécuter la commande. Sinon, le paramètre du noyau n'augmentera pas.

  export MOUNT_POINT=/path/to/mount/point
  echo 1024 | sudo tee /sys/class/bdi/0:$(stat -c "%d" $MOUNT_POINT)/read_ahead_kb

Atteindre le débit maximal

Pour atteindre le débit maximal, utilisez une machine disposant de suffisamment de ressources de processeur pour augmenter le débit et saturer la carte d'interface réseau (NIC). Une utilisation insuffisante des ressources de processeur peut entraîner une limitation de Cloud Storage FUSE.

Si vous utilisez Google Kubernetes Engine, augmentez l'allocation de processeurs au conteneur side-car Cloud Storage FUSE si vos charges de travail nécessitent un débit plus élevé. Vous pouvez augmenter les ressources utilisées par le conteneur side-car ou allouer des ressources illimitées.

Évaluer les besoins en IOPS en requêtes par seconde

Filestore est une meilleure option que Cloud Storage FUSE pour les charges de travail qui nécessitent des opérations d'entrée/de sortie par seconde (IOPS) instantanées, également appelées requêtes par seconde dans Cloud Storage. Filestore est également la meilleure option pour un nombre très élevé d'IOPS sur un seul système de fichiers et une latence plus faible.

Vous pouvez également utiliser la fonctionnalité de cache de fichiers Cloud Storage FUSE pour exploiter les caractéristiques de performances des supports de cache sous-jacents s'ils fournissent des IOPS élevées et une faible latence.

Effectuer des tests de charge

Pour savoir comment effectuer des tests de charge sur Cloud Storage FUSE, consultez la page Benchmarks de performances dans la documentation GitHub.

Étape suivante