Objetivo

Problemas de desempenho do AEM Sites

Sintomas de um problema de desempenho

  1. Carregamento lento de páginas  
  2. Criação ou edição lenta de páginas
  3. Os tempos de resposta do AEM são lentos
  4. O AEM não está respondendo para algumas solicitações
  5. O request.log no AEM mostra tempos de resposta lentos

O que causa problemas de desempenho

  1. Contenção de encadeamento: solicitações de execução demorada, como pesquisas lentas, tarefas em segundo plano com gravação pesada, movimentação de ramos inteiros de conteúdo do site etc.
  2. Uso alto da CPU
  3. Solicitações caras, como pesquisas caras ou código de aplicativo ineficiente, componentes etc.
  4. Falta de manutenção adequada
  5. Cache insuficiente do dispatcher
  6. Falta de CDN
  7. Falta de cache do navegador
  8. Muitos scripts carregados na página e no topo da página
  9. CSS carregado em toda a página em vez de no cabeçalho HTML
  10. Tamanho insuficiente do servidor ou arquitetura incorreta
  11. Problemas de memória (veja abaixo)

Como analisar o problema de desempenho

1. Capture uma série de despejos de encdeamento e analise-os

2. Verifique no nível do sistema operacional se o processo Java do AEM está causando alto uso da CPU

    Linux: use o comando top para verificar o uso da CPU.

    Windows: use o Gerenciador de Tarefas do Windows

    Se o AEM estiver causando alto uso da CPU, execute a ferramenta de criação de perfis pronta para uso por alguns minutos e analise o resultado.

3 Analise o arquivo request.log para qualquer solicitação lenta

4. Revise os procedimentos de manutenção do sistema e assegure-se de que você esteja fazendo uma manutenção adequada no AEM, incluindo o seguinte:

  • Revisão de limpeza (somente MongoMK e Database DocumentNodeStore): diariamente ou com mais frequência
  • Compactação de Tar offline (somente TarMK): quinzenalmente
  • Coleta de lixo de armazenamento de dados (somente com FileDataStore ou S3 DataStore): semanalmente
  • Limpeza de fluxos de trabalho: semanalmente
  • Limpeza de versão - semanalmente
  • Limpeza de AuditLog - semanalmente

Consulte este artigo para obter mais detalhes sobre a manutenção do AEM.

5. Revise as estratégias de cache implementadas no nível do dispatcher do AEM.  A melhor maneira de começar é compreendendo quando e como o dispatcher armazena e invalida os arquivos em cache.

6. Revise seu o cache de seu site.

7. Use ferramentas de análise de site para o cliente, como o recurso Auditorias no painel Ferramentas de desenvolvimento do navegador Google Chrome.  Essas ferramentas fornecerão recomendações sobre melhorias no desempenho do lado do cliente.

Soluções para problemas comuns de desempenho

Problemas de desempenho do AEM Assets

Sintomas de um problema de desempenho do Assets

  • Envio lento de arquivos para a interface /assets.html ou /damadmin
  • Miniaturas demoram muito para serem geradas
  • Operações de ativos, como mover, excluir, editar e atualização de metadados demoram muito

O que causa problemas com o desempenho do Assets

  • Falta de manutenção adequada
  • Fix packs mais recentes não aplicados
  • Otimizações não aplicadas
  • Tamanho inadequado do servidor para a carga do usuário

Como analisar o problema de desempenho do Assets

Soluções para problemas de desempenho comuns do Assets

Problemas de memória

Sintomas de um problema de memória

  • O AEM falha aleatoriamente e nos logs pode-se observar OutOfMemoryError
  • O AEM fica mais lento ao longo do tempo e, eventualmente, falha
  • O AEM não responde

Identificação de um problema de memória

  • Procure nos arquivos de log por OutOfMemoryError. Se encontrar alguma correspondência, você tem um problema de memória
  • Revise http://aem-host:port/system/console/memoryusage screen
    Se o uso da "Geração Antiga" (JDK 7 e anterior) ou "Geração com Garantia" (JDK8 ou posterior) estiver alto, isso pode ser um sinal de um problema de uso de memória de heap.  Clique em "Executar o Garbage Collector" para solicitar que a JVM execute uma coleta de lixo de heap completa.  Se o alto uso de heap permanecer alto após a solicitação do GC, provavelmente haverá um problema.  Em uma instância do AEM com armazenamento Oak Tar, se o uso do tenured for maior que 3 GB, pode haver um problema.  O alto uso de heap em um sistema com armazenamento Mongo pode ser devido à configuração do cache na memória.
  • Pegue despejos de encadeamento e saída superior e execute uma análise de encadeamento.  Verifique se os encadeamentos que causam uso alto da CPU são encadeamentos JVM Garbage Collection nativos.  Se o encadeamento que estiver usando o maior tempo de CPU for o "VM Thread" ou qualquer encadeamento de coleta de lixo, provavelmente haverá um problema de memória.

O que causa problemas de memória

  • Vazamento de memória do aplicativo Java
  • O Java Finalizer se acumula devido ao uso incorreto de finalize no código personalizado
  • Configuração de heap máximo insuficiente

Como analisar a causa do seu problema de memória

Consulte este artigo para obter detalhes sobre como capturar um despejo de heap.

A melhor maneira de identificar a causa de um problema de memória é analisando um despejo de heap.  

Depois de capturar um arquivo Heap Dump, abra-o na ferramenta Eclipse MAT ou IBM Memory Analyzer.  No Eclipse MAT, execute o relatório Leak Suspects e abra a visualização "Detalhes do encadeamento" para ver as possíveis causas do problema de memória.

Soluções para problemas comuns de memória

  • Otimize o código do seu aplicativo para utilizar menos memória se você observar pausas longas de coleta de lixo.  A maioria dos problemas de coleta de lixo pode ser melhor resolvida otimizando o aplicativo em vez de ajustar a JVM.
  • Se você já otimizou seu aplicativo e ainda experimenta longas pausas de GC, concentre-se em ajustar a JVM.

Problemas de indexação do AEM

Sintomas de problemas de indexação

Estes são os sinais de um problema com a indexação do AEM/Oak:

  • Os resultados de pesquisa estão desatualizados por mais de 10 minutos
  • Faltam resultados de pesquisa
  • Os erros são retornados na interface do usuário ou nos logs durante a pesquisa por meio da interface do site, de pesquisa do Query Builder ou de execução da consulta do JCR
Identificação de um problema de indexação
  • Para ver se a indexação assíncrona está lenta ou falhando, faça o seguinte:

1. Abra estes URLs em sua instância do AEM para ver as estatísticas sobre o indexador Async

http://aemhost:port/system/console/jmx/org.apache.jackrabbit.oak%3Aname%3Dasync%2Ctype%3DIndexStats

http://aemhost:port/system/console/jmx/org.apache.jackrabbit.oak%3Aname%3Dfulltext-async%2Ctype%3DIndexStats  - Este URL aplica-se somente ao AEM6.2 e posteriores

2. Em cada uma dessas páginas, verifique estes campos:

FailingSince: isso indica quando a indexação começou a falhar.

LastError: esse é o rastreamento de pilha que mostra o que está causando a falha na indexação.  Se isso estiver vazio, a indexação não está falhando.

LastErrorTime: isso indica a última vez que a indexação retornou o erro.

LastIndexedTime: se a data e a hora deste campo forem anteriores a 5 minutos em relação ao tempo atual, a indexação está muito lenta.

O que causa problemas com indexação

  • Manutenção inadequada ou falha na execução de manutenção, como coleta de lixo de revisão, limpeza de fluxo de trabalho, limpeza de auditoria, limpeza de versão etc.
  • Segmentos corrompidos ou ausentes no armazenamento Tar
  • Corrupção de revisão em um ambiente em cluster (DocumentNodeStore - Mongo ou Database)
  • Um problema com a topologia de cluster em um ambiente em cluster

Como analisar o que está causando problemas de indexação

  • Consulte este artigo para analisar e corrigir problemas de indexação

Problemas de replicação

Sintomas de problemas de replicação

  • As solicitações de publicação são enfileiradas na fila do agente de replicação
  • O conteúdo publicado não é exibido no servidor de publicação
  • Impacto no desempenho do sistema

O que causa problemas de replicação:

  • O agente de replicação está configurado incorretamente e não pode se conectar ao agente de publicação
  • Há um erro no momento da replicação que faz com que a fila de replicação fique travada
  • O sistema está lento e as replicações estão sendo processadas lentamente
  • A replicação acontece como parte de um fluxo de trabalho personalizado e o problema está no processamento de fluxos de trabalho.

Como analisar problemas de replicação:

1. Verifique o status da fila de replicação:

        Ativa: quando os itens estão sendo processados.
        Ociosa: quando a fila está vazia.
        Bloqueada: quando os itens estão na fila, mas não podem ser processados; por exemplo, quando o agente aponta para um host que está inativo ou é inexistente.

2. Revise as configurações de replicação se o seu servidor estiver clonado ou se o agente tiver sido configurado recentemente. Para obter detalhes, consulte este link
     
3. Revise os logs do agente de replicação em http://host:port/etc/replication/agents.author/AgentName.log.html#end.  Se você não conseguir identificar um item, colete esse log e apresente-o ao suporte do AEM.

4. Revise o error.log do servidor em AEMinstall/crx-quickstart/logs; se você não conseguir identificar um item, colete esse log e apresente-o ao suporte do AEM.

5. Se a fila de replicação apresentar o status “inativa” e nenhuma das situações acima se aplicar, nestecaso,o motivo do o problema é provavelmente os fluxos de trabalho. Se os fluxos de trabalho não estiverem sendo processados, o item de replicação nunca chegará à fila de replicação. Para monitorar o status de seus fluxos de trabalho, consulte o painel de fluxo de trabalho para verificar o número de instâncias de fluxo de trabalho em execução. Leia sobre a administração de fluxos de trabalho aqui.

6. As replicações ficam lentas quando o sistema está sob carga alta ou enfrentam outros problemas de desempenho.

Solução para problemas comuns de replicação:

1) Revise os problemas da fila de replicação
2) Se o problema se deve ao fato de os fluxos de trabalho não funcionarem de maneira eficiente, revise as Dicas de processamento de fluxo de trabalho
3) Para questões relacionadas ao desempenho lento geral ereplicação do AEM,revise os Problemas de desempenho do AEM  

Problemas de corrupção do TarMK

Sintomas de corrupção do TarMK

  • A instânciaé inoperável após a compactação offline.
  • A instância travou no estado Inicialização em andamento.
  • Arquivos de log ou relatórios de saída do comando de compactação SegmentNotFoundException.

O que causa problemas de corrupção

  • O segmento é removido por intervenção manual (por exemplo, rm -rf).   
  • O segmento é removido pela coleta de lixo de revisão ou o segmento não pode ser encontrado devido a um erro no código.   
  • O segmento não pode ser encontrado devido a um erro no código.
  • Várias tarefas de manutenção não são executadas a tempo, levando ao crescimento do repositório e a pouco espaço em disco.
  • Interrupção forçada do AEM, eliminando o processo Java.

Como identificar problemas de corrupção do repositório:

  • Revise o arquivo error.log e verifique se há SegmentNotFoundException ou IllegalArgumentException.
  • Para determinar se um segmento foi removido pela coleta de lixo de revisão, verifique a saída do org.apache.jackrabbit.oak.plugins.segment.file.Gerador de registros TarReader-GC (habilitar registro de depuração). Esse gerador de registros grava as IDs de todos os segmentos removidos pela fase de limpeza. A coleta de lixo de revisão será a causa da exceção somente quando a ID de segmento ofensiva aparecer na saída desse gerador de registros.    
  • Em caso de corrupção no armazenamento de dados externo, procure arquivos de registro para todas as ocorrências do erro Ocorreu um erro ao obter InputStream para blobId. Esse erro significa que você está perdendo arquivos de seu diretório de armazenamento de dados do AEM.

Solução para reparar problemas de corrupção:

  • Determine a última revisão válida do armazenamento de segmento usando check run-mode de oak-run.  Reverta manualmente o armazenamento de segmento corrompido para sua última boa versão. Essa operação reverterá o repositório Oak para um estado anterior no tempo.  É necessário fazer backup completo do repositório antes de executar essa operação.
    • Para executara verificaçãoe restauração, siga os passos mencionados neste artigo.
    • Se a verificação falhar com ConsistencyChecker - Nenhuma boa revisão foi encontrada, implemente as etapas na parte B deste artigo.
  • Se você já estiver usando um armazenamento de dados e encontrar o erro "Ocorreu um erro ao obter InputStream para blobId", provavelmente há arquivos ausentes no armazenamento de dados. Siga os procedimentos neste artigo para solucionar o problema:
  • Se você não estiver usando um armazenamento de dados, use um arquivo externo, o armazenamento de dados do S3 ou do Azure, em vez dosegmentstore padrão.
    • Usar um armazenamento de dados oferece melhor desempenho.
    • Migre a instância para um que tenha um armazenamento de dados usando crx2oak.
  • Aplique o Service Pack e o Fix Pack Cumulative mais recentes e o Oak Cumulative Fix Pack.

Esta obra está licenciada sob uma licença não adaptada da Creative Commons Attribution-Noncommercial-Share Alike 3.0  As publicações do Twitter™ e do Facebook não são cobertas pelos termos do Creative Commons.

Avisos legais   |   Política de privacidade online