Utiliser la mise en cache des fichiers Cloud Storage FUSE

La fonctionnalité de cache de fichiers de Cloud Storage FUSE est un cache de lecture basé sur le client qui permet de diffuser les lectures de fichiers répétées à partir d'un stockage de cache plus rapide de votre choix. Cette page explique comment activer et utiliser la mise en cache des fichiers Cloud Storage FUSE. Pour obtenir une présentation de la mise en cache des fichiers, des statistiques ou des types, consultez la page Présentation de la mise en cache.

Avant de commencer

Le cache de fichiers nécessite un chemin de répertoire à utiliser pour mettre en cache les fichiers. Vous pouvez créer un répertoire sur un système de fichiers existant ou créer un système de fichiers sur un espace de stockage provisionné. Si vous provisionnez un nouvel espace de stockage à utiliser, suivez les instructions ci-dessous pour créer un système de fichiers :

  1. Pour Google Cloud Hyperdisk, consultez la section Créer un volume Google Cloud Hyperdisk.

  2. Pour Persistent Disk, consultez la section Créer un volume Persistent Disk.

  3. Pour les disques SSD locaux, consultez la section Ajouter un disque SSD local à votre VM.

  4. Pour les disques RAM en mémoire, consultez la section Créer des disques RAM en mémoire.

Activer et configurer le comportement de mise en cache

  1. Activez et configurez la mise en cache de fichiers en utilisant le champ file-cache d'un fichier de configuration Cloud Storage FUSE, puis spécifiez le répertoire de cache que vous souhaitez utiliser dans le champ cache-dir. Le cache de fichiers est désactivé par défaut. Notez que vous activez la mise en cache des fichiers en transmettant un répertoire au champ cache-dir.

  2. Facultatif : configurez la mise en cache des statistiques et des types en utilisant le champ metadata-cache dans un fichier de configuration. Pour en savoir plus sur les caches de statistiques et de types, consultez la page Présentation de la mise en cache des types ou Présentation de la mise en cache des statistiques.

  3. Facultatif : augmentez la valeur TTL des entrées mises en cache en définissant l'option ttl-secs sur une valeur basée sur le temps attendu entre les lectures répétées, tout en équilibrant les besoins de cohérence. Nous vous recommandons de définir la valeur ttl-secs sur une valeur aussi élevée que le permet votre charge de travail. Vous pouvez configurer la valeur TTL dans un fichier de configuration Cloud Storage FUSE. Pour en savoir plus sur la définition d'une valeur TTL pour les entrées mises en cache, consultez la section Valeur TTL (Time To Live).

    Par exemple, le fichier de configuration suivant active la mise en cache des fichiers, des statistiques et des types avec une valeur TTL de 3600 secondes et le répertoire de cache défini sur /path/to/a/directory/. Notez que max-size-mb est défini sur -1, ce qui configure le cache de fichiers pour utiliser toute la capacité disponible.

    file-cache:
      max-size-mb: -1
      cache-file-for-range-read: false
    
    metadata-cache:
      stat-cache-max-size-mb: 32
      ttl-secs: 3600
      type-cache-max-size-mb: 4
    
    cache-dir: /path/to/a/directory
    
  4. Facultatif : accélérez les lectures de fichiers volumineux, y compris les premières lectures, en activant la propriété enable-parallel-downloads, qui utilise plusieurs nœuds de calcul pour télécharger un fichier volumineux en parallèle à l'aide du répertoire de cache de fichiers comme tampon de préchargement. Pour en savoir plus sur les téléchargements parallèles et sur la configuration des propriétés associées, consultez la page Améliorer les performances de lecture à l'aide des téléchargements parallèles.

  5. Exécutez manuellement la commande ls -R sur votre bucket installé avant d'exécuter la charge de travail pour préremplir les métadonnées. Vous vous assurez ainsi que le cache de types est bien rempli avant la première lecture avec une méthode par lot plus rapide. Pour savoir comment améliorer les performances de la première lecture, consultez la page Améliorer les performances de la première lecture.

Télécharger plusieurs fichiers en parallèle à l'aide de téléchargements parallèles

Vous pouvez améliorer les performances de lecture en activant et en configurant la fonctionnalité de téléchargement parallèle, qui utilise 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. Nous vous recommandons d'utiliser des téléchargements parallèles pour les scénarios de lecture à thread unique qui chargent de gros fichiers, tels que la mise en service du modèle et la restauration des points de contrôle.

Avant d'activer les téléchargements parallèles, tenez compte des points suivants :

  • Si votre application exécute un parallélisme de lecture élevé sur huit threads, vous risquez de rencontrer une légère dégradation des performances.

  • Nous vous déconseillons d'utiliser des téléchargements parallèles pour les charges de travail d'entraînement en raison de leur parallélisme de lecture élevé.

  • Pour utiliser les téléchargements parallèles, vous devez d'abord activer et configurer le cache de fichiers.

  • Le fichier en cours de lecture doit correspondre à la capacité disponible du répertoire de cache de fichiers, qui peut être contrôlée à l'aide de la propriété max-size-mb.

Configurer les téléchargements parallèles

  1. Dans un fichier de configuration Cloud Storage FUSE, définissez la propriété enable-parallel-downloads sur true et configurez éventuellement les paramètres de compatibilité suivants :

    • parallel-downloads-per-file : nombre maximal de nœuds de calcul pouvant être générés par fichier pour télécharger l'objet de Cloud Storage dans le cache de fichiers. La valeur par défaut est 16.

    • max-parallel-downloads : nombre maximal de nœuds de calcul pouvant être générés à un moment donné dans tous les jobs de téléchargement de fichiers. La valeur par défaut est le double du nombre de cœurs de processeur de votre machine. Pour spécifier qu'il n'y a pas de limite, saisissez la valeur -1.

    • download-chunk-size-mb : spécifie la taille en Mio de chaque requête de lecture que chaque nœud de calcul envoie à Cloud Storage lors du téléchargement de l'objet dans le cache de fichiers. La taille par défaut est de 50 Mio. Notez qu'un téléchargement parallèle ne se déclenche que si la taille du fichier en cours de lecture est spécifiée.

Étape suivante