Guia de ajuste de desempenho de ativos assets-performance-tuning-guide
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.
Platform platform
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.
Pasta Temp temp-folder
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
Configuração do Java java-configuration
Versão do Java java-version
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.
Parâmetros da JVM jvm-parameters
Você deve definir os seguintes parâmetros da JVM:
-XX:+UseConcMarkSweepGC
-Doak.queryLimitInMemory
=500000-Doak.queryLimitReads
=100000-Dupdate.limit
=250000-Doak.fastQuerySize
=verdadeiro
Armazenamento de dados e configuração de memória data-store-and-memory-configuration
Configuração do armazenamento de dados de arquivo file-data-store-configuration
É 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.
Configurar o tamanho máximo do cache de imagem em buffer configure-the-maximum-size-of-the-buffered-image-cache
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.
Armazenamento de dados compartilhados shared-data-stores
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.
Armazenamento de dados S3 s-data-store
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
Otimização de rede network-optimization
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:
- Dependendo do tipo de instância (pequena, moderada, grande), verifique se você tem largura de banda de rede suficiente para sua Experience Manager instância. A alocação de largura de banda adequada é especialmente importante se Experience Manager é hospedada no AWS.
- Se o seu Experience Manager estiver hospedada no AWS, você pode se beneficiar com uma política de dimensionamento versátil. Atualize a instância se os usuários esperarem carga alta. Faça o download para moderar/baixo carregamento.
- HTTPS: A maioria dos usuários tem firewalls que detectam tráfego HTTP, o que pode afetar negativamente o upload de arquivos ou até mesmo arquivos corrompidos durante a operação de upload.
- Uploads de arquivo grande: Certifique-se de que os usuários tenham conexões com fio à rede (as conexões WiFi se saturam rapidamente).
Fluxos de trabalhos workflows
Fluxos de trabalho transitórios transient-workflows
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.
-
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.
note note NOTE 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.
Máximo de trabalhos paralelos maximum-parallel-jobs
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:
- Ligado Experience Manager Autor, vá para http://localhost:4502/system/console/slingevent.
- Clique em Editar em cada fila de workflow relevante para sua implementação, por exemplo, Granite Transient Workflow Queue.
- Altere o valor de Máximo de Trabalhos Paralelos e clique em Salvar.
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.
Descarregamento offloading
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.
Configuração do Ativo de atualização DAM dam-update-asset-configuration
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.
Geração de renderização em tempo de execução runtime-rendition-generation
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.
ImageMagick imagemagick
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.
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.
Writeback XMP xmp-writeback
XMP write-back atualiza o ativo original sempre que os metadados são modificados no AEM, o que resulta no seguinte:
- O próprio ativo é modificado
- Uma versão do ativo é criada
- O DAM Update Asset é executado no ativo
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.
Replicação replication
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.
Configurar replicação em cadeia configure-chain-replication
- Escolha para qual instância de publicação você deseja usar para encadear as replicações
- Nessa instância de publicação, adicione agentes de replicação que apontem para as outras instâncias de publicação
- Em cada um desses agentes de replicação, habilite Ao receber no Triggers guia
Índices de pesquisa search-indexes
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.
Configurações do índice Lucene lucene-index-configurations
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:
- Navegue até /system/console/configMgrorg.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexProviderService
- Habilitar Arquivos de índice CopyOnRead , CopyOnWrite e Prefetch em versões anteriores a Experience Manager 6.2. Esses valores são ativados por padrão no Experience Manager 6.2 e versões posteriores.
Atualize as configurações de índice para melhorar o tempo de reindexação:
- Abra o CRXDe /crx/de/index.jsp e faça logon como um usuário administrativo
- Navegue até /oak:index/lucene
- Adicionar uma cadeia de caracteres[] propriedade com nome excludedPaths com valores "/var", "/etc/workflow/instances" e "/etc/replication"
- Navegue até /oak:index/damAssetLucene
- Adicionar uma cadeia de caracteres[] propriedade com nome includedPaths com um valor "/content/dam"
- Salvar
(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
- /oak:index/slingResource
- /oak:index/damResolvedPath
-
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.
- Vá para o Experience Manager gerenciador de pacotes /crx/packmgr/index.jsp
- Carregue e instale o pacote abaixo
Adivinhe total guess-total
Ao criar queries que geram grandes conjuntos de resultados, use o guessTotal
para evitar a utilização de memória pesada ao executá-los.
Problemas conhecidos known-issues
Arquivos grandes large-files
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.
Teste de desempenho performance-testing
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.
Teste de rede network-testing
Para todas as preocupações de desempenho de rede do cliente, execute as seguintes tarefas:
- Testar o desempenho da rede na rede do cliente
- Teste o desempenho da rede dentro da rede Adobe. Para clientes do AMS, trabalhe com seu CSE para testar dentro da rede do Adobe.
- Testar o desempenho da rede a partir de outro ponto de acesso
- Usando uma ferramenta de benchmark de rede
- Testar em relação ao dispatcher
Experience Manager teste de instância aem-instance-testing
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:
- Execute testes de carga em relação à Experience Manager instância
- Monitore o desempenho de upload e a capacidade de resposta da interface do usuário
Experience Manager Lista de verificação de desempenho de ativos aem-assets-performance-checklist
- Ative o HTTPS para contornar qualquer farejador de tráfego HTTP corporativo.
- Use uma conexão com fio para fazer upload de ativos pesados.
- Defina os parâmetros ideais da JVM.
- Configure um DataStore do Sistema de Arquivos ou um S3 DataStore.
- Desative a geração de subativos. Se estiver ativado, AEM fluxo de trabalho cria um ativo separado para cada página em um ativo de várias páginas. Cada uma dessas páginas é um ativo individual que consome espaço em disco adicional, requer controle de versão e processamento adicional de fluxo de trabalho. Se você não precisar de páginas separadas, desative as atividades de geração de subativos e extração de página.
- Habilite fluxos de trabalho transitórios.
- Ajuste as filas do fluxo de trabalho do Granite para limitar os trabalhos simultâneos.
- Configure o ImageMagick para limitar o consumo de recursos.
- Remova etapas desnecessárias do fluxo de trabalho Ativo de atualização do DAM .
- Configure a limpeza de fluxo de trabalho e versão.
- Otimize a configuração do índice Lucene.
- Otimize índices com os service packs e hotfixes mais recentes. Consulte o Suporte ao cliente do Adobe para obter outras otimizações de índice que possam estar disponíveis.
- Use
guessTotal
para otimizar o desempenho do query. - Se você configurar Experience Manager para detectar tipos de arquivos a partir do conteúdo dos arquivos (configurando Serviço de Tipo Mime Day CQ DAM no Experience Manager Console da Web), faça upload de muitos arquivos em massa durante horas que não sejam de pico, pois a operação consome muitos recursos.