Este documento descreve como usar configurações baseadas em perfil para simplificar a adoção e melhorar o desempenho do Cloud Storage FUSE para cargas de trabalho de inteligência artificial ou machine learning (IA/ML).
Para ajudar a simplificar a configuração do Cloud Storage FUSE para cargas de trabalho de disponibilização,
checkpoint ou treinamento, aplique perfis pré-configurados
com base no tipo de carga de trabalho usando o campo profile ou
a opção --profile. Usando o campo ou a opção, é possível especificar um conjunto predefinido e otimizado de recursos do Cloud Storage FUSE para armazenamento em cache, linhas de execução e tamanhos de buffer, garantindo alto desempenho com o mínimo de esforço para cargas de trabalho de treinamento, checkpoint e disponibilização, com valores de perfil aiml-training, aiml-checkpointing e aiml-serving, respectivamente.
Considerações
Só é possível definir a opção
--profileou o campoprofiledurante uma operação de montagem. Se você precisar atualizar a opção--profileou o campoprofile, será necessário remontar o bucket do Cloud Storage FUSE.Ao usar configurações baseadas em perfil, o Cloud Storage FUSE define a capacidade e time to live (TTL) do cache de metadados como ilimitados, o que significa que as entradas nunca são removidas do cache de metadados. Se a máquina virtual não tiver memória suficiente, você poderá receber erros de falta de memória (OOM, na sigla em inglês). Portanto, recomendamos revisar a capacidade de memória antes de aplicar configurações baseadas em perfil. É mais provável que erros de OOM ocorram em máquinas com menos de um TiB de memória.
Quando um parâmetro do Cloud Storage FUSE é configurado de várias maneiras, a seguinte ordem de precedência é aplicada (da mais alta para a mais baixa):
- Valores definidos diretamente em um comando
gcsfuseou em um arquivo de configuração do Cloud Storage FUSE. - Valores definidos por um perfil, em que o perfil é especificado usando a
--profileopção em umgcsfusecomando ou oprofilecampo em um arquivo de configuração do Cloud Storage FUSE. - Valores padrão aplicados automaticamente quando o Cloud Storage FUSE detecta um tipo de máquina de alta performance. Para mais informações, consulte Valores de configuração automatizados para tipos de máquinas de alta performance.
- Valores definidos diretamente em um comando
Os volumes do Cloud Storage FUSE CSI em pods do Google Kubernetes Engine não oferecem suporte ao campo
profileou à opção--profile.O armazenamento em cache de arquivos não pode ser ativado usando configurações baseadas em perfil, porque ele exige o uso de campos de configuração do Cloud Storage FUSE e opções da CLI do Cloud Storage FUSE que não podem ser generalizadas. Para ativar o armazenamento em cache de arquivos para cargas de trabalho de disponibilização, treinamento ou checkpoint, é necessário configurar as opções ou campos de armazenamento em cache de arquivos explicitamente.
Aplicar configurações baseadas em perfil para cargas de trabalho de treinamento
O perfil específico de treinamento otimiza a performance para leituras de alta capacidade de grandes conjuntos de dados e impede que as GPUs e o hardware da Cloud TPU aguardem dados.
Para aplicar o perfil específico de treinamento, especifique
profile: aiml-training usando um arquivo de configuração do Cloud Storage FUSE ou
--profile=aiml-training usando a
CLI do Cloud Storage FUSE. As configurações a seguir são aplicadas:
# Create implicit directories locally when accessed:
- implicit-dirs
# Disable caching for lookups of files or directories that don't exist:
- metadata-cache:negative-ttl-secs:0
# Keep cached metadata (file attributes, types) indefinitely time-wise:
- metadata-cache:ttl-secs:-1
# Allow unlimited size for the file attribute (stat) cache:
- metadata-cache:stat-cache-max-size-mb:-1
Aplicar configurações baseadas em perfil para cargas de trabalho de checkpoint
O perfil específico de checkpoint otimiza a performance para gravações de alta capacidade de arquivos grandes, reduzindo drasticamente o tempo necessário para salvar checkpoints de vários gigabytes, minimizando as pausas de treinamento.
Para aplicar o perfil específico de checkpoint, especifique
profile: aiml-checkpointing usando um arquivo de configuração do Cloud Storage FUSE ou
--profile=aiml-checkpointing usando a
CLI do Cloud Storage FUSE. As configurações a seguir são aplicadas:
# Create implicit directories locally when accessed:
- implicit-dirs
# Disable caching for lookups of files/dirs that don't exist:
- metadata-cache:negative-ttl-secs:0
# Keep cached metadata (file attributes, types) indefinitely time-wise:
- metadata-cache:ttl-secs:-1
# Allow unlimited size for the file attribute (stat) cache:
- metadata-cache:stat-cache-max-size-mb:-1
# Cache the entire file when any part is read sequentially:
- file-cache:cache-file-for-range-read:true
# Allow renaming directories with a lot of files in non-HNS buckets.
- file-system:rename-dir-limit:200000
Aplicar configurações baseadas em perfil para cargas de trabalho de disponibilização
A disponibilização otimiza o desempenho para cargas de trabalho de disponibilização, melhorando o acesso aos dados e os mecanismos de armazenamento em cache.
Para aplicar o perfil específico de disponibilização, especifique
profile: aiml-serving usando um arquivo de configuração do Cloud Storage FUSE ou
--profile=aiml-serving usando a
CLI do Cloud Storage FUSE. As configurações a seguir são aplicadas:
# Create implicit directories locally when accessed:
- implicit-dirs
# Disable caching for lookups of files/dirs that don't exist:
- metadata-cache:negative-ttl-secs:0
# Keep cached metadata (file attributes, types) indefinitely time-wise:
- metadata-cache:ttl-secs:-1
# Allow unlimited size for the file attribute (stat) cache:
- metadata-cache:stat-cache-max-size-mb:-1
# Cache the entire file when any part is read sequentially:
- file-cache:cache-file-for-range-read:true
# Enable kernel-list-cache to make listing faster as this is a readonly file system hierarchy.
- file-system:kernel-list-cache-ttl-secs:-1
A seguir
Saiba mais sobre os valores de configuração automatizados para tipos de máquinas de alta performance.
Saiba como otimizar a performance com arquivos YAML do GKE pré-configurados.