Solução de problemas de montagem /tmp completa para o Adobe Commerce

Este artigo fornece uma solução para quando a montagem /tmp estiver cheia, o site puder estar inativo e você não conseguir aplicar SSH a um nó.

Descrição description

Produtos e versões afetados

Adobe Commerce 2.3.0 - 2.3.6-p1, 2.4.0 - 2.4.2

Problema

A montagem /tmp pode resultar em vários sintomas possíveis, incluindo os seguintes erros:

  • SQLSTATE[ HY000] : Erro geral: 3 Erro ao gravar arquivo

  • Código de erro: 28

  • Não há mais espaço no dispositivo (28)

  • erro session_start(): falha: sem espaço no dispositivo

  • *ERRO 1 (HY000): não é possível criar/gravar no arquivo '/tmp/* *

  • Erro de SQL: 3, SQLState: HY000

  • Erro geral: 1021 Disco cheio (https://experienceleague.adobe.com/tmp?lang=pt-BR)

  • *Não é possível acessar o nó por SSH:

    bash: não é possível criar arquivo temporário para here-document: sem espaço no dispositivo*

  • errno: 28 "Não há espaço disponível no dispositivo"

  • mysqld: disco com gravação completa '/tmp'

  • [ERRO] mysqld: disco cheio (https://experienceleague.adobe.com/tmp?lang=pt-BR)

  • SQLSTATE[ HY000] : erro geral: 1 Não é possível criar/gravar no arquivo '/tmp/'

  • SQLSTATE[ HY000] : Erro geral: 23 Falta de recursos ao abrir o arquivo '/tmp/'

  • Errcode: 24 "Muitos arquivos abertos"

  • Erro recebido: 23: recursos insuficientes ao abrir o arquivo

Etapas a serem reproduzidas:

Para verificar se a montagem /tmp está cheia, no switch CLI para /tmp e execute o seguinte comando: df -h

Resultado esperado:

Menos de 80%.

Resultado real:

Em torno de 100%.

Causa

A montagem /tmp tem muitos arquivos, o que pode ser causado por:

  • Consultas SQL incorretas gerando tabelas temporárias grandes e/ou muitas.
  • Serviços gravando no diretório /tmp.
  • Backups/despejos de banco de dados deixados no diretório /tmp.

Resolução resolution

Há coisas que você pode fazer para liberar espaço uma vez, e há práticas recomendadas que impediriam /tmp de ficar cheio.

Verificar e liberar inodes

Verifique se há inodes disponíveis suficientes. Para fazer isso, execute o seguinte comando: df -i

A saída seria semelhante ao seguinte: Filesystem Inodes Used Free Use% Mounted on /dev/nvme2n1 655360 1695 653665 1% /data/mysql

Verifique se o% de Uso é < 70%. Os nós estão correlacionados com os arquivos. Se você remover arquivos da partição, liberará inodes.

Verificar e liberar espaço de armazenamento

Há vários serviços que podem estar salvando arquivos em /tmp.

Verificar e liberar espaço no MySQL

Siga as instruções em O espaço em disco do MySQL é insuficiente no Adobe Commerce na infraestrutura de nuvem > Verifique e libere espaço de armazenamento em nossa base de dados de suporte.

Verificar dumps de pilha do Elasticsearch

AVISO
Os despejos de pilha contêm informações de registro que podem ser valiosas para investigar problemas. Considere armazená-los em um local separado por, pelo menos, 10 dias.

Remover despejos de pilha (*.hprof) usando o shell do sistema: find /tmp/*.hprof -type f -delete

Se você não tiver permissões para excluir arquivos criados por outro usuário (neste caso, Elasticsearch), mas perceber que os arquivos são grandes, crie um tíquete de suporte para lidar com eles.

Verificar despejos/backups do banco de dados

AVISO
Geralmente, os backups do banco de dados são criados para uma finalidade. Se não tiver certeza se o arquivo ainda é necessário, considere movê-lo para um local separado em vez de excluí-lo.

Verifique /tmp para arquivos .sql ou .sql.gz e limpe-os. Eles podem ter sido criados por ece-tools durante o backup ou ao criar manualmente despejos de banco de dados usando a ferramenta mysqldump.

Práticas recomendadas

Para evitar problemas com o /tmp cheio, siga estas recomendações:

  • Não use MySQL para pesquisa. O Elasticsearch para pesquisa geralmente elimina a necessidade da maioria das grandes criações de tabelas temporárias. Consulte Configurar o Adobe Commerce para usar o Elasticsearch na documentação do desenvolvedor.
  • Evite executar a consulta SELECT em colunas sem índices, pois isso consome uma grande quantidade de espaço temporário em disco. Você também pode adicionar os índices.
  • Crie um cron para limpar /tmp executando o seguinte comando na CLI: sudo find /tmp -type f -atime +10 -delete
recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f