Performances de Cloud Storage FUSE

Cette page 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 les mesures 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 avec un coût minimal.

  • 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équentielles 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.

  • Monter des buckets avec l'espace de noms hiérarchique activé: pour augmenter les vitesses de performances en lecture et en écriture, et assurer l'atomicité pour des opérations de requêtes initiales par seconde (RPS) plus élevées, nous vous recommandons de monter des buckets avec l'espace de noms hiérarchique activé. Pour en savoir plus sur la façon dont les buckets avec l'espace de noms hiérarchique activé peuvent améliorer les performances de Cloud Storage FUSE, consultez la section Monter des buckets avec l'espace de noms hiérarchique activé.

Améliorer les performances de la première lecture

Avant d'exécuter votre charge de travail, nous vous recommandons de commencer par lister de manière récursive les fichiers de votre bucket installé pour remplir à l'avance les caches de type et de statistiques, et améliorer les performances lors de la première exécution dans 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 de l'activer, 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 de monter 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 List object (BucketHandle.Objects) sont remplacés par des appels get folder, ce qui accélère les temps de réponse et réduit le nombre d'appels de liste globaux pour chaque opération.

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

Vous pouvez améliorer le débit de lecture élevé en augmentant la quantité de données préchargées avec chaque requête de lecture à l'aide du paramètre du kernel Linux read_ahead_kb sur votre machine locale. 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 kernel 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 processeur 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 (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 avec 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