AEM 6.4 chegou ao fim do suporte estendido e esta documentação não é mais atualizada. Para obter mais detalhes, consulte nossa períodos de assistência técnica. Encontre as versões compatíveis here.
Uma configuração do Adobe Experience Manager Assets contém vários componentes de hardware, software e rede. Dependendo do seu cenário de implantação, você pode exigir alterações específicas na configuração de hardware, software e componentes de rede para remover gargalos de desempenho.
Além disso, identificar e seguir determinadas diretrizes de otimização de hardware e software ajuda a construir uma base sólida que habilite seu Experience Manager Implantação de ativos para atender às expectativas sobre desempenho, escalabilidade e confiabilidade.
Desempenho inadequado em Experience Manager Os ativos podem afetar a experiência do usuário em relação ao desempenho interativo, processamento de ativos, velocidade de download e outras áreas.
Na verdade, a otimização de desempenho é uma tarefa fundamental que você executa antes de estabelecer métricas de destino para qualquer projeto.
Estas são algumas das principais áreas de foco sobre as quais você descobre e corrige problemas de desempenho antes que eles tenham impacto nos usuários.
Ao Experience Manager O é compatível com várias plataformas, o Adobe encontrou o maior suporte para ferramentas nativas no Linux e no Windows, o que contribui para o desempenho ideal e para a facilidade de implementação. Idealmente, você deve implantar um sistema operacional de 64 bits para atender aos altos requisitos de memória de um Experience Manager Implantação de ativos. Como em qualquer Experience Manager , você deve implementar o TarMK sempre que possível. Embora o TarMK não possa ser dimensionado além de uma única instância de autor, ele tem um desempenho melhor do que o MongoMK. Você pode adicionar instâncias de descarregamento do TarMK para aumentar o poder de processamento do workflow de sua Experience Manager Implantação de ativos.
Para melhorar os tempos de upload do ativo, use armazenamento de alto desempenho para o diretório temporário Java. No Linux e no Windows, uma unidade RAM ou SSD pode ser usada. Em ambientes baseados em nuvem, um tipo de armazenamento de alta velocidade equivalente pode ser usado. Por exemplo, no Amazon EC2, uma unidade efêmera pode ser usada para a pasta temporária.
Supondo que o servidor tenha ampla memória, configure uma unidade RAM. No Linux, execute estes comandos para criar uma unidade RAM de 8 GB:
mkfs -q /dev/ram1 800000
mkdir -p /mnt/aem-tmp
mount /dev/ram1 /mnt/aem-tmp
df -H | grep aem-tmp
No sistema operacional Windows, seria necessário usar um driver de terceiros para criar uma unidade RAM ou apenas usar armazenamento de alto desempenho, como SSD.
Quando o volume temporário de alto desempenho estiver pronto, defina o parâmetro da JVM -Djava.io.tmpdir. Por exemplo, você pode adicionar o parâmetro da JVM abaixo à variável CQ_JVM_OPTS no script bin/start de AEM:
-Djava.io.tmpdir=/mnt/aem-tmp
Como o Oracle interrompeu o lançamento de atualizações para o Java 7 a partir de abril de 2015, a Adobe recomenda implantar Experience Manager Ativos no Java 8. Em alguns casos, ele demonstrou um melhor desempenho.
Você deve definir os seguintes parâmetros da JVM:
-XX:+UseConcMarkSweepGC
-Doak.queryLimitInMemory
=500000-Doak.queryLimitReads
=100000-Dupdate.limit
=250000-Doak.fastQuerySize
=verdadeiroÉ recomendável separar o armazenamento de dados do armazenamento de segmentos para todos Experience Manager Usuários do Assets. Além disso, configurar o maxCachedBinarySize
e cacheSizeInMB
os parâmetros podem ajudar a maximizar o desempenho. Definir maxCachedBinarySize
ao menor tamanho de arquivo que pode ser mantido no cache. Especifique o tamanho do cache na memória a ser usado para o armazenamento de dados no cacheSizeInMB
. O Adobe recomenda que você defina esse valor entre 2 e 10% do tamanho total do heap. No entanto, o teste de carga/desempenho pode ajudar a determinar a configuração ideal.
Ao fazer upload de grandes quantidades de ativos no Adobe Experience Manager, para permitir picos inesperados no consumo de memória e para evitar que a JVM falhe com OutOfMemoryErrors, reduza o tamanho máximo configurado do cache de imagem em buffer. Considere um exemplo de que você tem um sistema com um heap máximo (- Xmx
param) de 5 GB, um Oak BlobCache definido em 1 GB e um cache de documento definido em 2 GB. Nesse caso, o cache em buffer levaria no máximo 1,25 GB e a memória, o que deixaria apenas 0,75 GB de memória para picos inesperados.
Configure o tamanho do cache em buffer no console OSGi da Web. Em https://host:port/system/console/configMgr/com.day.cq.dam.core.impl.cache.CQBufferedImageCache
, defina a propriedade cq.dam.image.cache.max.memory
em bytes. Por exemplo, 1073741824 é 1 GB (1024 x 1024 x 1024 = 1 GB).
De Experience Manager 6.1 SP1, se você estiver usando um sling:osgiConfig
para configurar essa propriedade, defina o tipo de dados como Long. Para obter mais detalhes, consulte CQBufferedImageCache consome heap durante o upload de ativos.
A implementação de um S3 ou armazenamento de dados de arquivos compartilhados pode ajudar a economizar espaço em disco e aumentar o throughput da rede em implementações de grande escala. Para obter mais informações sobre os prós e contras de usar um armazenamento de dados compartilhado, consulte Guia de dimensionamento de ativos.
A seguinte configuração do Armazenamento de dados S3 ( org.apache.jackrabbit.oak.plugins.blob.datastore.S3DataStore.cfg
) ajudou o Adobe a extrair 12,8 TB de objetos grandes binários (BLOBs) de um armazenamento de dados de arquivo existente em um armazenamento de dados S3 em um site do cliente:
accessKey=<snip>
secretKey=<snip>
s3Bucket=<snip>
s3Region=us-standard
s3EndPoint=<a href="https://s3.amazonaws.com/">s3.amazonaws.com</a>
connectionTimeout=120000
socketTimeout=120000
maxConnections=80
writeThreads=60
concurrentUploadsThreads=30
asyncUploadLimit=30
maxErrorRetry=1000
path=/opt/author/crx-quickstart/repository/datastore
s3RenameKeys=false
s3Encryption=SSE_S3
proactiveCaching=true
uploadRetries=1000
migrateFailuresCount=400
O Adobe recomenda habilitar o HTTPS porque muitas empresas têm firewalls que detectam tráfego HTTP, o que afeta negativamente os uploads e corrompe arquivos. Para uploads de arquivos grandes, verifique se os usuários conectaram-se à rede por fio, pois uma rede WiFi fica rapidamente saturada. Para obter diretrizes sobre como identificar gargalos de rede, consulte Guia de dimensionamento de ativos. Para avaliar o desempenho da rede analisando a topologia da rede, consulte Considerações de rede do Assets.
Principalmente, sua estratégia de otimização de rede depende da quantidade de largura de banda disponível e da carga em seu Experience Manager instância. Opções comuns de configuração, incluindo firewalls ou proxies, podem ajudar a melhorar o desempenho da rede. Alguns pontos-chave a ter em conta:
Sempre que possível, defina o fluxo de trabalho do Ativo de atualização do DAM como Transitório. A configuração reduz significativamente os custos indiretos necessários para processar workflows, pois, nesse caso, os workflows não precisam passar pelos processos normais de rastreamento e arquivamento.
Por padrão, o fluxo de trabalho do Ativo de atualização do DAM é definido como Transitório em Experience Manager 6.3. Nesse caso, você pode ignorar o procedimento a seguir.
Abrir http://localhost:4502/miscadmin
no Experience Manager instância que você deseja configurar.
Na árvore de navegação, expanda Ferramentas > Fluxo de trabalho > Modelos > dam.
Clique duas vezes Ativo de atualização DAM.
No painel de ferramentas flutuante, alterne para a Página e clique em Propriedades da página.
Selecionar Fluxo de trabalho transitório Clique em OK.
Alguns recursos não suportam fluxos de trabalho transitórios. Se o seu Experience Manager A implantação de ativos requer esses recursos, não configure fluxos de trabalho transitórios.
Nos casos em que fluxos de trabalho transitórios não podem ser usados, execute a limpeza de fluxo de trabalho regularmente para excluir fluxos de trabalho arquivados do Ativo de atualização do DAM para garantir que o desempenho do sistema não diminua.
Normalmente, você deve executar workflows de limpeza semanalmente. No entanto, em cenários que consomem muitos recursos, como durante a assimilação de ativos em larga escala, você pode executá-la com mais frequência.
Para configurar a limpeza do fluxo de trabalho, adicione uma nova configuração Adobe Granite Workflow Purge através do console OSGi. Em seguida, configure e agende o workflow como parte da janela de manutenção semanal.
Se a limpeza for muito longa, o tempo limite expirará. Portanto, você deve garantir que os trabalhos de limpeza sejam concluídos para evitar situações em que os workflows de limpeza não são concluídos devido ao alto número de workflows.
Por exemplo, após executar vários workflows não transitórios (que criam nós de instâncias de workflow), é possível executar Remoção de Fluxo de Trabalho ACS AEM Commons numa base ad hoc. Ele remove instâncias de fluxo de trabalho redundantes e concluídas imediatamente, em vez de aguardar a execução do agendador de limpeza de fluxo de trabalho do Adobe Granite.
Por padrão, Experience Manager executa um número máximo de trabalhos paralelos igual ao número de processadores no servidor. O problema com essa configuração é que, durante períodos de carga pesada, todos os processadores são ocupados por fluxos de trabalho do Ativo de atualização DAM, reduzindo a capacidade de resposta da interface do usuário e evitando Experience Manager da execução de outros processos que salvaguardem o desempenho e a estabilidade do servidor. Como prática recomendada, defina esse valor para metade dos processadores disponíveis no servidor, executando as seguintes etapas:
Definir uma fila para metade dos processadores disponíveis é uma solução viável para começar. No entanto, talvez seja necessário aumentar ou diminuir esse número para atingir a taxa de transferência máxima e ajustá-lo por ambiente. Há filas separadas para fluxos de trabalho transitórios e não transitórios, bem como outros processos, como fluxos de trabalho externos. Se várias filas definidas como 50% dos processadores estiverem ativas simultaneamente, o sistema poderá ficar sobrecarregado rapidamente. As filas amplamente usadas variam muito entre as implementações do usuário. Portanto, talvez seja necessário configurá-los cuidadosamente para obter o máximo de eficiência sem sacrificar a estabilidade do servidor.
Para alto volume de workflows ou workflows que consomem muitos recursos, como a transcodificação de vídeo, você pode descarregar os workflows do Ativo de atualização do DAM para uma segunda instância do autor. Geralmente, o problema com a descarga é que qualquer carga salva ao descarregar o processamento do workflow é compensada pelo custo de replicar o conteúdo entre instâncias.
Em Experience Manager 6.2 e com um pacote de recursos para Experience Manager 6.1, é possível realizar o descarregamento com replicação sem binários. Nesse modelo, as instâncias de autor compartilham um armazenamento de dados comum e enviam apenas os metadados para frente e para trás por meio da replicação direta. Embora essa abordagem funcione bem com um armazenamento de dados de arquivo compartilhado, pode haver problemas com um armazenamento de dados S3. Como os threads de escrita em segundo plano podem induzir latência, é possível que um ativo não tenha sido gravado no armazenamento de dados antes que o trabalho de descarregamento inicie.
O fluxo de trabalho do Ativo de atualização DAM contém um conjunto completo de etapas configuradas para tarefas, como a geração do Dynamic Media Classic PTIFF e a integração do InDesign Server. No entanto, a maioria dos usuários pode não exigir várias dessas etapas. O Adobe recomenda criar uma cópia personalizada do modelo de fluxo de trabalho Ativo de atualização DAM e remover todas as etapas desnecessárias. Nesse caso, atualize os inicializadores do Ativo de atualização do DAM para apontar para o novo modelo.
A execução intensiva do fluxo de trabalho do Ativo de atualização do DAM pode aumentar consideravelmente o tamanho do armazenamento de dados do arquivo. Os resultados de um experimento realizado pelo Adobe mostraram que o tamanho do armazenamento de dados pode aumentar em aproximadamente 400 GB se cerca de 5500 workflows forem executados em 8 horas.
É um aumento temporário e o armazenamento de dados é restaurado para seu tamanho original após executar a tarefa de coleta de lixo do armazenamento de dados.
Normalmente, a tarefa de coleta de lixo do armazenamento de dados é executada semanalmente, juntamente com outras tarefas de manutenção programadas.
Se você tiver um espaço em disco limitado e executar os workflows do Ativo de atualização do DAM intensamente, considere agendar a tarefa de coleta de lixo com mais frequência.
Os clientes usam imagens de vários tamanhos e formatos em seu site ou para distribuição a parceiros comerciais. Como cada representação adiciona ao espaço do ativo no repositório, o Adobe recomenda usar esse recurso criteriosamente. Para reduzir a quantidade de recursos necessários para processar e armazenar imagens, você pode gerar essas imagens em tempo de execução em vez de como representações durante a assimilação.
Muitos clientes do Sites implementam um servlet de imagem que redimensiona e recorta imagens no momento em que são solicitadas, o que impõe carga adicional na instância de publicação. No entanto, enquanto essas imagens puderem ser armazenadas em cache, o desafio poderá ser atenuado.
Uma abordagem alternativa é usar a tecnologia Dynamic Media Classic para facilitar totalmente a manipulação de imagens. Além disso, é possível implantar o Brand Portal, que não somente assume as responsabilidades de geração de representação da Experience Manager infraestrutura, mas também todo o nível de publicação.
Se você personalizar o fluxo de trabalho do Ativo de atualização do DAM para gerar representações usando o ImageMagick, o Adobe recomenda modificar o arquivo policy.xml em /etc/ImageMagick/. Por padrão, o ImageMagick usa todo o espaço em disco disponível no volume do SO e na memória disponível. Faça as seguintes alterações de configuração no policymap
seção de policy.xml para limitar esses recursos.
<policymap>
<!-- <policy domain="system" name="precision" value="6"/> -->
<policy domain="resource" name="temporary-path" value="/ephemeral0/imagemagick_tmp"/>
<policy domain="resource" name="memory" value="1000MiB"/>
<policy domain="resource" name="map" value="1000MiB"/>
<!-- <policy domain="resource" name="area" value="1gb"/> -->
<policy domain="resource" name="disk" value="10000MiB"/>
<!-- <policy domain="resource" name="file" value="768"/> -->
<policy domain="resource" name="thread" value="1"/>
<policy domain="resource" name="throttle" value="50"/>
<!-- <policy domain="resource" name="time" value="3600"/> -->
</policymap>
Além disso, defina o caminho da pasta temporária do ImageMagick no configure.xml (ou definindo a variável de ambiente MAGIC_TEMPORARY_PATH
) para uma partição de disco que tenha espaço suficiente e IOPS.
Uma configuração incorreta pode tornar o servidor instável se o ImageMagick utilizar todo o espaço em disco disponível. As alterações de política necessárias para processar arquivos grandes usando o ImageMagick podem afetar o Experience Manager desempenho. Para obter mais informações, consulte instalar e configurar o ImageMagick.
O ImageMagick policy.xml
e configure.xml
os arquivos podem ser encontrados em /usr/lib64/ImageMagick-*/config/
em vez de /etc/ImageMagick/
. Consulte Documentação do ImageMagick para obter detalhes sobre os locais do arquivo de configuração.
Se estiver usando Experience Manager no Adobe Managed Services (AMS), entre em contato com o Suporte ao cliente do Adobe se você planeja processar muitos arquivos grandes do PSD ou PSB. O Experience Manager pode não processar arquivos PSB de resolução muito alta com mais de 30.000 x 23.000 pixels.
XMP write-back atualiza o ativo original sempre que os metadados são modificados no AEM, o que resulta no seguinte:
Os resultados listados consomem recursos consideráveis. Portanto, o Adobe recomenda desabilitando XMP Writeback, se não for obrigatório.
Importar uma grande quantidade de metadados pode resultar em atividade de write-back de XMP que consome muitos recursos se o sinalizador de workflows de execução estiver marcado. Planeje essa importação durante o uso do servidor simplificado para que o desempenho para outros usuários não seja afetado.
Ao replicar ativos para um grande número de instâncias de publicação, por exemplo, em uma implementação de Sites, o Adobe recomenda usar a replicação em cadeia. Nesse caso, a instância do autor é replicada para uma única instância de publicação que, por sua vez, é replicada para as outras instâncias de publicação, liberando a instância do autor.
O Adobe não recomenda a ativação automática de ativos. No entanto, se necessário, o Adobe recomenda fazer isso como a etapa final em um fluxo de trabalho, geralmente o DAM Update Asset.
Certifique-se de implementar os service packs mais recentes e hotfixes relacionados ao desempenho, pois eles frequentemente incluem atualizações nos índices do sistema. Consulte Dicas para ajuste de desempenho | 6.x para algumas otimizações de índice que podem ser aplicadas, dependendo da sua versão do AEM.
Crie índices personalizados para consultas executadas com frequência. Para obter detalhes, consulte metodologia para analisar consultas lentas e criação de índices personalizados. Para obter informações adicionais sobre as práticas recomendadas de consulta e índice, consulte Práticas recomendadas para consultas e indexação.
Algumas otimizações podem ser feitas nas configurações do índice Oak que podem ajudar a melhorar Experience Manager Desempenho dos ativos:
Atualize a configuração do LuceneIndexProvider:
Atualize as configurações de índice para melhorar o tempo de reindexação:
(Somente AEM6.1 e 6.2) Atualize o índice ntBaseLucene para melhorar o desempenho de exclusão e movimentação de ativos:
Navegue até /oak:index/ntBaseLucene/indexRules/nt:base/properties
Adicionar dois nós nt:unstructured slingResource e damResolvedPath under /oak:index/ntBaseLucene/indexRules/nt:base/properties
Defina as propriedades abaixo nos nós (onde as propriedades ordered e propertyIndex são do tipo Booleano:
slingResource
name="sling:resource"
ordered=false
propertyIndex= true
type="String"
damResolvedPath
name="dam:resolvePath"
ordered=false
propertyIndex=true
type="String"
No nó /oak:index/ntBaseLucene , defina a propriedade reindex=true
Clique em Salvar tudo
Monitore o error.log para ver quando a indexação é concluída:
Reindexação concluída para índices: [/oak:index/ntBaseLucene]
Você também pode ver que a indexação é concluída atualizando o nó /oak:index/ntBaseLucene no CRXDe, pois a propriedade reindex retornaria para false
Uma vez concluída a indexação, volte para o CRXDe e defina a variável type propriedade a ser desativada nesses dois índices
Clique em Salvar tudo
Desative a extração de texto do Lucene:
Se os usuários não precisarem pesquisar o conteúdo dos ativos, por exemplo, pesquisar o texto contido nos documentos do PDF, você poderá melhorar o desempenho do índice ao desabilitar esse recurso.
Ao criar queries que geram grandes conjuntos de resultados, use o guessTotal
para evitar a utilização de memória pesada ao executá-los.
Há dois problemas conhecidos principais relacionados a arquivos grandes no AEM. Quando os arquivos atingem tamanhos maiores que 2 GB, a sincronização de espera passiva pode ocorrer em uma situação de falta de memória. Em alguns casos, impede a execução da sincronização de standby. Em outros casos, isso causa falha na instância primária. Esse cenário se aplica a qualquer arquivo em Experience Manager maior que 2 GB, incluindo pacotes de conteúdo.
Da mesma forma, quando os arquivos atingem 2 GB ao usar um armazenamento de dados S3 compartilhado, pode levar algum tempo para que o arquivo seja totalmente persistente do cache para o sistema de arquivos. Como resultado, ao usar a replicação sem binário, é possível que os dados binários não tenham sido persistentes antes da conclusão da replicação. Essa situação pode levar a problemas, especialmente se a disponibilidade de dados for importante, por exemplo, em cenários de descarregamento.
Para cada Experience Manager implantação, estabelecer um regime de testes de desempenho que possa identificar e resolver rapidamente os gargalos. Aqui estão algumas áreas-chave para se concentrar.
Para todas as preocupações de desempenho de rede do cliente, execute as seguintes tarefas:
Para minimizar a latência e alcançar alta throughput por meio de utilização eficiente da CPU e compartilhamento de carga, monitore o desempenho de sua Experience Manager instância regularmente. Em especial:
guessTotal
para otimizar o desempenho do query.