Observação:

Você está lendo as dicas de ajuste de desempenho da versão 5.x do AEM. Este artigo também está disponível para as versões 6.x

Problema

O desempenho da minha instância do CQ5 é ruim.

Causa

Problemas de desempenho no CQ5 podem ter muitas causas em conjunto. A causa mais comum é devido ao código do aplicativo. No entanto, você pode adotar algumas medidas dentro da configuração do CQ5 para melhorar o desempenho.

Solução

Para melhorar o desempenho geral da instância do CQ, a Adobe recomenda fazer o seguinte (nas instâncias de criação e de publicação).

 

1. Instale hotfixes recomendados

Isso se aplica para o AEM 5.6.1. Por favor, leia atentamente https://helpx.adobe.com/br/experience-manager/kb/cq561-available-hotfixes.html e instale os hotfixes recomendados para seus módulos, principalmente aquele relacionado ao desempenho.

 

2. Aumento no bundleCacheSize do CRX

Aumente o parâmetro bundleCacheSize do CRX TarPersistenceManager fazendo o seguinte:

Edite cada um dos elementos PersistenceManager em seu repository.xml e todos os seus arquivos workspace.xml adicionando o seguinte parâmetro em <PersistenceManager class="com.day.crx.persistence.tar.TarPersistenceManager" /> element:
Por exemplo:

<PersistenceManager class="com.day.crx.persistence.tar.TarPersistenceManager"> <param name="bundleCacheSize" value="256" /> </PersistenceManager>

Por padrão, esse cache é definido para 8 MB. Aumente-o para pelo menos 256 MB, ou até 512 MB, dependendo da quantidade de memória que puder atribuir à JVM. Se tiver uma JVM com o parâmetro Xmx definido para 10 GB, defina o bundleCacheSize para 1024 MB. Se estiver usando uma JVM de 32 bits no Windows, seu parâmetro Xmx provavelmente terá menos de 1500 MB. Portanto, 128 MB é um valor razoável para o bundleCacheSize. A Adobe recomenda atualizar para uma JVM de 64 bits para alocar mais memória ao heap da JVM.

3. Use o FineGrainedISMLocking (somente no CRX 1.4.x)

Para configurá-lo, adicione seguindo a seguinte classe ISMLocking ao workspace.xml e repository.xml, diretamente após o bloco SearchIndex:

<Workspace ...> ... </SearchIndex> <ISMLocking class="org.apache.jackrabbit.core.state.FineGrainedISMLocking"/> ... </Workspace>

4. Desative o CQ5 AssetSynchronizationService (somente no CQ5.3)

O AssetSynchronizationService sincroniza ativos de repositórios montados (por exemplo, LiveLink, Documentum). Quando ativado, este serviço aloca periodicamente muitos objetos que coletam lixo. Portanto, isso afeta o desempenho da JVM. Se não utilizar repositórios montados, esse serviço pode ser desabilitado.

Por configuração, o período de sincronização pode ser configurado para um número maior de segundos (padrão 300), evitando assim que ele seja executado.

O pacote anexado define o período de sincronização como um ano, desativando assim o serviço.

5. Defina o parâmetro resultFetchSize do índice de pesquisa CRX

Se o conjunto de resultados de uma consulta jcr for grande, o carregamento do conjunto completo e a verificação de ACLs neles será dispendioso. Para corrigir, limite o tamanho da busca para 50 no elemento SearchIndex no workspace.xml:

<param name="resultFetchSize" value="50"/> Por exemplo:






<SearchIndex class="com.day.crx.query.lucene.LuceneHandler"> <param name="path" value="${wsp.home}/index"/> <param name="resultFetchSize" value="50"/> </SearchIndex>

6. Defina o parâmetro cacheSize da pesquisa CRX

A busca cacheSize também pode ser definida no elemento SearchIndex em workspace.xml. Defina este parâmetro para 100000:

<param name="cacheSize" value="100000" />

Por exemplo:

<SearchIndex class="com.day.crx.query.lucene.LuceneHandler"> <param name="path" value="${wsp.home}/index"/> <param name="resultFetchSize" value="50"/> <param name="cacheSize" value="100000" /> </SearchIndex>

 

Esse parâmetro está documentado aqui.

7. Desative o clustering do CRX (CRX 1.4, 2.0, 2.1)

Ao executar um sistema com alta carga de gravação (por exemplo, com grandes importações de ativos do DAM), às vezes até ganhos de desempenho de gravação relativamente pequenos podem ajudar a atingir o referencial de desempenho. Nesse caso, considere desativar o diário de clustering na sua implantação.

Por padrão, o CRX está configurado para ser executado no modo de cluster. Mas se houver apenas uma instância no cluster, ela adicionará alguma sobrecarga de E /S. Para aumentar desempenho de gravação, desative o clustering.

No repository.xml, comente a seção <Cluster ...>...</Cluster>.
Em seguida, use o script de amostra para mover os arquivos do repositório do modo de cluster para o modo único.

Antes de realizar este procedimento, entre em contato com o Gerente de conta ou Daycare para discutir essa opção. A maioria das implantações do cliente é executada com as configurações padrão, registradas em diário. É melhor testar esse script em uma instância de teste, fazendo isso em um sistema de produção.

8. Desativar Atualização do Localizador de Conteúdo e Carregamento Automático (somente instância do autor)

Veja este artigo [2]

9. Desative geração de sub-ativo de DAM

Veja este artigo [3]

10. Limite o tamanho máximo do diário no CRX

Se os arquivos do diário do CRX em compartilhamento/diário aumentarem muito, o aplicativo poderá sofrer alguma lentidão. Veja este artigo [4] sobre como limitar o tamanho do diário e o número máximo de arquivos.

11. Desative workflows do DAM na publicação (somente na instância de publicação do CQ5.3)

Veja este artigo [5]

12. Desative o verificador de links

Pode haver melhora no desempenho ao desabilitar o verificador de links (principalmente com o AEM 5.6.1). Só faça isso se não precisar em seu ambiente.

O verificador de links valida que as URLs de recursos no endereço de suas páginas estão acessíveis. Ele realiza isso ao fazer uma solicitação HTTP HEAD.

Se um link estiver marcado como inválido na criação, o verificador de links exibirá um ícone de corrente quebrada ao redor dele. Se um link estiver marcado como inválido ao publicar, então a tag <a href="..."> é removida.

Alguns clientes o desativam em suas instâncias de publicação para melhorar o desempenho. Embora isso melhora desempenho, links desfeitos afetam o SEO do seu site. Considere os efeitos cuidadosamente antes de decidir desativá-lo.

Para obter instruções sobre como desativar esse recurso, consulte este artigo [6].

13. Índice Cache Tar PM

Até o CRX 2.1

Usar um trabalho Cron para ler o arquivo index*.tar periodicamente pode ajudar a melhorar o desempenho, pois o índice tar é armazenado em cache no cache de E/S de hardware. No UNIX, você pode carregar o index*.tar usando o comando "cat index*.tar > /dev/null". Fazer isso a cada hora deve ajudar a melhorar o desempenho do Gerenciador de Persistência de Tar durante a execução do método TarFile.readFully().

A partir do CRX 2.2 + hotfixpack 2.2.0.26 e posterior

Verifique o tamanho global dos arquivos index_*.tar no espaço de trabalho crx.default, aumente o tamanho máximo do heap por tamanho e defina o parâmetro indexInMemory como true para a seção TarPersistenceManager do workspace.xml:

<PersistenceManager class="com.day.crx.persistence.tar.TarPersistenceManager">
<param name="indexInMemory" value="true" />
</PersistenceManager>

O espaço de heap necessário para um nó JCR é de 128 bytes. Se o maior arquivo index*.tar de um espaço de trabalho for 1 GB, isso significa que há cerca de 16 milhões de nós nesse espaço de trabalho, já que cada nó precisa de 64 bytes de espaço em disco. A utilização da opção de índice na memória requer cerca de 2 GB de espaço de heap (o dobro do tamanho do arquivo para calcular o espaço de heap necessário, porque pode haver duas versões por arquivo de índice durante a mesclagem de índice).

14. Expiração do cache LDAP

Para melhorar o desempenho e reduzir a latência durante o processo de autenticação, é recomendável aumentar a expiração do cache do LDAP. Você pode definir cache.expiration como 86400 (um dia) em sua configuração LDAP.

15. Otimize o índice de lucene para ganhar espaço em disco e eficiência

Veja este artigo [7]

Referências

[1] http://wiki.apache.org/jackrabbit/Search
[2] Como alterar o intervalo de atualização do ContentFinder
[3] Como remover a geração de subativos do workflow do DAM
[4] O diário consome muito espaço em disco
[5] Como desabilitar workflows do DAM na publicaçã
[6] Desativar o Linkchecker
[7] Otimize o índice de lucene para ganhar espaço em disco e eficiência

 

Aplica-se a

CQ 5.x, CRX 2.X

Download