Cette page fournit des informations sur les options de mise en cache disponibles pour Cloud Storage FUSE et sur la façon de configurer chaque type de cache.
Pour améliorer les performances de récupération des données, Cloud Storage FUSE propose quatre types de mise en cache facultatifs :
Remarques
L'activation de la mise en cache des fichiers, des statistiques, des types ou des listes peut augmenter les performances, mais réduire la cohérence. Cela se produit généralement lorsque vous accédez au même bucket à l'aide de plusieurs clients avec un taux de modification élevé. Pour réduire l'impact sur la cohérence, nous vous recommandons de monter les buckets en lecture seule. Pour en savoir plus sur le comportement de la mise en cache, consultez la documentation sur la sémantique de Cloud Storage FUSE sur GitHub.
Si une entrée de cache de fichiers n'a pas encore expiré en fonction de sa valeur TTL (Time To Live) et que le fichier se trouve dans le cache, les opérations de lecture de ce fichier sont traitées à partir du cache du client local sans qu'aucune requête ne soit envoyée à Cloud Storage.
Si une entrée de cache de fichiers a expiré sur la base de sa valeur TTL, un appel de métadonnées
GET
est d'abord effectué vers Cloud Storage. Si le fichier ne se trouve pas dans le cache, il est extrait de Cloud Storage. Les deux opérations sont soumises aux latences du réseau. Si l'entrée de métadonnées a été invalidée, mais que le fichier se trouve dans le cache et que sa génération d'objet n'a pas changé, le fichier n'est diffusé à partir du cache qu'après l'appel des métadonnéesGET
pour vérifier si les données sont valides.Si un client Cloud Storage FUSE modifie un fichier mis en cache ou ses métadonnées, le fichier est immédiatement invalidé et la cohérence est assurée dans la lecture suivante par le même client. Toutefois, si différents clients accèdent au même fichier ou à ses métadonnées, et que ses entrées sont mises en cache, la version mise en cache du fichier ou des métadonnées est lue et non la version mise à jour tant que le fichier n'est pas invalidé par le paramètre TTL de ce client spécifique.
Pour éviter le thrashing du cache, assurez-vous que l'intégralité de votre ensemble de données est adaptée à la capacité de cache. Tenez également compte de la capacité et des performances maximales que votre support de cache peut fournir. Si vous atteignez les performances maximales, la limite de capacité ou les deux, il est avantageux de lire directement depuis Cloud Storage, qui présente des limites beaucoup plus élevées que Cloud Storage FUSE.
Chemin de lecture des données mises en cache
Le cache Cloud Storage FUSE accélère les lectures répétées une fois qu'elles ont été ingérées dans le cache. Les premières lectures et les échecs de cache sont directement envoyés à Cloud Storage et sont soumis aux latences réseau normales de Cloud Storage. Pour améliorer les performances de la première lecture, consultez Préremplir le cache de métadonnées.
Présentation de la mise en cache de fichiers
Le cache de fichiers Cloud Storage FUSE est un cache de lecture basé sur le client qui sert les lectures de fichiers répétées à partir d'un stockage dans le cache soutenu par votre système de fichiers local. Pour en savoir plus sur la mise en cache de fichiers, consultez la page Mise en cache de fichiers.
Téléchargements parallèles
Lorsque vous activez la mise en cache des fichiers, les téléchargements parallèles sont automatiquement activés sur les versions 2.12 et ultérieures de Cloud Storage FUSE. Les téléchargements parallèles accélèrent les performances de lecture des fichiers volumineux de plus de 1 Go, y compris les premières lectures, en utilisant plusieurs nœuds de calcul pour télécharger un fichier en parallèle à l'aide du répertoire de cache de fichiers comme tampon de préchargement. Les téléchargements parallèles peuvent être utilisés pour optimiser les performances des charges de travail d'intelligence artificielle (IA) et de machine learning (ML), telles que la mise en service de modèles, la restauration de points de contrôle et l'entraînement sur de grands objets. Pour en savoir plus sur les téléchargements parallèles, consultez Téléchargements parallèles.
Configurer la mise en cache de fichiers
Pour savoir comment configurer la mise en cache de fichiers, consultez Utiliser la mise en cache de fichiers Cloud Storage FUSE.
Présentation de la mise en cache de statistiques
Le cache de statistiques Cloud Storage FUSE est un cache pour les métadonnées d'objets qui améliore les performances des opérations spécifiques aux attributs de fichier tels que la taille, l'heure de modification ou les autorisations. L'utilisation du cache stat améliore la latence en utilisant des données mises en cache pour effectuer des opérations au lieu d'envoyer une requête d'objet stat à Cloud Storage. Pour en savoir plus sur la mise en cache de statistiques, consultez la documentation sur la sémantique sur GitHub.
Configurer le cache de statistiques
Le cache de statistiques est activé par défaut et peut être configuré à l'aide d'un fichier de configuration Cloud Storage FUSE. La taille maximale du cache est contrôlée à l'aide de l'une des méthodes suivantes :
Pour en savoir plus sur les valeurs par défaut et recommandées pour la configuration de la mise en cache des statistiques, consultez les pages Options de la CLI et Fichier de configuration de Cloud Storage FUSE.
Configurer la mise en cache des statistiques négatives
Cloud Storage FUSE offre également une fonctionnalité de mise en cache des statistiques négatives, qui vous permet de définir un TTL pour les entrées de cache de statistiques pour les fichiers inexistants ou les résultats négatifs. La valeur TTL du cache de statistiques négatives est contrôlée à l'aide de l'une des méthodes suivantes :
Présentation de la mise en cache de types
Le cache de type Cloud Storage FUSE est un cache de métadonnées qui accélère les performances des opérations de métadonnées spécifiques à l'existence d'un fichier ou d'un répertoire. Le cache de types améliore la latence en réduisant le nombre de requêtes adressées à Cloud Storage pour vérifier si un fichier ou un répertoire existe en stockant ces informations localement. Pour en savoir plus sur la mise en cache de types, consultez la documentation sur la sémantique sur GitHub.
Configurer la mise en cache des types
Le cache de type est activé par défaut et peut être configuré à l'aide d'un fichier de configuration Cloud Storage FUSE ou de la CLI Cloud Storage FUSE. La taille maximale du cache est contrôlée à l'aide de l'une des méthodes suivantes :
Pour en savoir plus sur la mise en cache des types et les valeurs recommandées, consultez les pages Options de la CLI ou Fichier de configuration.
La durée de vie (TTL) du cache est contrôlée à l'aide de l'une des méthodes suivantes :
Présentation de la mise en cache des listes
Le cache de liste Cloud Storage FUSE est destiné aux listes de répertoires et de fichiers, ou aux réponses ls
, qui améliorent la vitesse des opérations de liste. La mise en cache des listes est particulièrement utile pour les charges de travail qui répètent des listes de répertoires complètes lors de l'exécution, comme les exécutions d'entraînement d'IA/ML.
Le cache de listes est conservé en mémoire dans le cache de pages, qui est contrôlé par le noyau en fonction de la disponibilité de la mémoire, contrairement aux caches d'état et de type, qui sont conservés dans la mémoire de votre machine et contrôlés par Cloud Storage FUSE.
Configurer la mise en cache des listes
Vous pouvez activer la mise en cache des listes à l'aide de l'une des méthodes suivantes :
Pour activer et configurer la mise en cache des listes, consultez les pages Fichier de configuration Cloud Storage FUSE ou Options de la CLI Cloud Storage FUSE.
Configurer l'invalidation du cache de fichiers, de statistiques et de types
Les sections suivantes expliquent comment configurer l'invalidation du cache pour tous les types de cache.
Pour les caches de fichiers, de statistiques et de types, utilisez l'une des méthodes suivantes pour spécifier la valeur TTL en secondes pour la durée d'utilisation des métadonnées mises en cache, à partir du moment où elles sont extraites de Cloud Storage jusqu'à leur expiration et leur actualisation :
Lorsque vous spécifiez une valeur supérieure à 0
, les métadonnées du cache de fichiers ne restent valides que pendant la durée que vous avez spécifiée. Pour la mise en cache de fichiers, nous vous recommandons d'augmenter la valeur en fonction du temps attendu entre les lectures répétées tout en équilibrant les besoins en cohérence. En fonction de l'importance et de la fréquence de modification des données, nous vous recommandons de définir la valeur sur une valeur aussi élevée que le permet votre charge de travail. Lorsqu'une entrée de métadonnées devient non valide, les lectures suivantes sont interrogées à partir de Cloud Storage.
En plus d'accepter les valeurs qui représentent un code TTL spécifique en secondes avant l'expiration de vos métadonnées mises en cache et leur actualisation, vous pouvez utiliser les valeurs suivantes pour spécifier la façon dont votre fichier est lu :
0
: garantit que le fichier contenant les données les plus récentes est lu en émettant un appel de métadonnéesGET
à Cloud Storage qui vérifie le fichier à partir duquel il est diffusé pour s'assurer que le cache est cohérent. Si le fichier du cache est à jour, il est diffusé directement à partir du cache. Si vous spécifiez une valeur autre que0
, les performances peuvent être réduites, car un appel doit toujours être effectué vers Cloud Storage pour vérifier d'abord les métadonnées. Si le fichier se trouve dans le cache et n'a pas été modifié, il est diffusé à partir du cache de manière cohérente après l'appel de métadonnéesGET
.-1
: garantit que le fichier est toujours lu à partir du cache, s'il est disponible, sans vérifier la cohérence. La diffusion de fichiers sans en vérifier la cohérence peut entraîner la diffusion de données incohérentes et ne doit être utilisée que temporairement pour les charges de travail exécutées dans des jobs avec des données non modifiées. Par exemple, l'utilisation d'une valeur-1
est utile pour l'entraînement au machine learning, où les mêmes données sont lues sur plusieurs époques sans modification.
Lister les invalidations de cache
L'invalidation du cache de liste est définie en spécifiant une valeur supérieure à 0
à l'aide de l'une des méthodes suivantes :
- Option CLI
--kernel-list-cache-ttl-secs
- Champ
file-system:kernel-list-cache-ttl-secs
La réponse de la liste d'annuaires est conservée dans le cache de page du noyau et reste valide pendant la durée que vous avez spécifiée. Lorsque vous spécifiez la valeur -1
, Cloud Storage FUSE désactive l'expiration du cache de liste et renvoie la réponse de la liste à partir du cache lorsqu'elle est disponible. Si vous spécifiez la valeur 0
, le cache de liste est désactivé.
Étapes suivantes
Découvrez comment utiliser et configurer la mise en cache des fichiers.
Découvrez comment améliorer vos performances.