Problemi critici comuni AEM

Descrizione

Questo articolo descrive i problemi critici più comuni AEM e come analizzarli.

  • Prestazioni AEM Sites
  • Prestazioni AEM Assets
  • Problemi di memoria
  • Problemi di indicizzazione
  • Problemi di replica
  • Problemi di corruzione TarMK

Risoluzione

Problemi di prestazioni di AEM Sites
 

Sintomi di un problema di prestazioni

  1. Caricamento lento delle pagine
  2. Creazione o modifica lente delle pagine
  3. I tempi di risposta AEM sono lenti
  4. AEM non risponde per alcune richieste
  5. Il AEM request.log on mostra tempi di risposta lenti

Cosa causa problemi di prestazioni

  1. Contesto dei thread : richieste con esecuzione lunga, ad esempio ricerche lente, lavori in background con scrittura pesante, spostamento di interi rami di contenuto del sito, ecc.
  2. Elevato utilizzo della CPU
  3. Richieste onerose come costose ricerche o codice applicazione inefficiente, componenti, ecc.
  4. Mancanza di una manutenzione adeguata
  5. Memorizzazione in cache del dispatcher insufficiente
  6. Mancanza di CDN
  7. Mancanza di cache del browser
  8. Troppi script caricati sulla pagina e caricati nella parte superiore della pagina
  9. CSS caricati in tutta la pagina invece che nell’intestazione di HTML
  10. Dimensionamento insufficiente del server o architettura errata
  11. Problemi di memoria (vedi sotto)

Come analizzare il problema delle prestazioni

  1. Cattura una serie di immagini thread e analizzarli.
  2. Controlla a livello di sistema operativo se il processo AEM java sta causando un elevato utilizzo della CPU:        Se AEM causa un elevato utilizzo della CPU, esegui lo strumento di profilazione predefinito per alcuni minuti e analizza il risultato.
    • Linux: utilizza il comando superiore per controllare l'utilizzo della CPU.
    • Finestra: utilizzare Gestione attività di Windows
  3. Analizza il file request.log per eventuali richieste lente.
  4. Controlla le procedure di manutenzione del sistema. Vedi questo articolo per informazioni dettagliate sulla manutenzione AEM e assicurarsi di effettuare una manutenzione adeguata su AEM, tra cui:
    • Pulizia delle revisioni (solo per MongoMK e Database DocumentNodeStore): ogni giorno o più frequente
    • Compattazione Tar offline (solo TarMK) - bisettimanale
    • Raccolta rifiuti del Data Store (solo sistemi con FileDataStore o S3 DataStore) - settimanale
    • Pulizia del flusso di lavoro - settimanale
    • Pulizia della versione - settimanale
    • Eliminazione del registro di controllo - settimanale
  5. Rivedere le strategie di caching implementate in Livello del dispatcher AEM.
  6. Rivedi il tuo sito caching.
  7. Utilizza strumenti di analisi del sito lato client come Audit funzionalità nel browser Google Chrome Strumenti per gli sviluppatori pannello.  Questi strumenti ti daranno consigli su miglioramenti delle prestazioni lato client.

Soluzioni ai problemi di prestazioni comuni


 Problemi di prestazioni delle risorse

Sintomi di un problema di prestazioni di Assets

  • Caricamento lento dei file su /assets.html o /damadmin UI
  • Le miniature richiedono troppo tempo per essere generate
  • Le operazioni relative alle risorse, come spostare, eliminare, modificare e aggiornare i metadati, richiedono troppo tempo

Cosa causa problemi con le prestazioni di Assets

  • Mancanza di una manutenzione adeguata
  • Pacchetti correzioni più recenti non applicati
  • Ottimizzazioni non applicate
  • Ridimensionamento inadeguato del server per il caricamento dell'utente

Come analizzare il problema delle prestazioni delle risorse

Soluzioni ai problemi di prestazioni comuni di Assets

Problemi di memoria
 

Sintomi di un problema di memoria

  • AEM si arresta in modo casuale e nei log OutOfMemoryError viene osservato
  • AEM diventa più lento nel tempo e alla fine si blocca
  • AEM non risponde

Come diagnosticare un problema di memoria

  • Cerca nei file di registro per OutOfMemoryError, se trovi delle corrispondenze allora hai un problema di memoria

  • Rivedi http://aem-host:port/system/console/memoryusage screen

    Se l'utilizzo di "Old Generation" (JDK 7 e versioni precedenti) o "Tenured Generation" (JDK8 o versioni successive) è elevato, questo potrebbe essere un segno di un problema di utilizzo della memoria heap.  Fai clic su "Esegui Garbage Collector" per richiedere alla JVM di eseguire una raccolta completa di oggetti inattivi heap.  Se l'elevato utilizzo dell'heap rimane elevato dopo la richiesta di GC, allora c'è probabilmente un problema.  Su un'istanza AEM con archiviazione Oak Tar, se l'utilizzo tenure è superiore a 3 GB, allora potrebbe esserci un problema.  L'elevato utilizzo di heap su un sistema con archiviazione Mongo potrebbe essere dovuto alla configurazione della cache in-memory.

  • Prendere immagini thread e output superiore ed eseguire analisi dei thread.  Controlla se i thread che causano un elevato utilizzo della CPU sono thread nativi JVM Garbage Collection.  Se il thread che utilizza il tempo più elevato della CPU è il "Thread VM" o qualsiasi thread di raccolta degli oggetti inattivi, è probabile che si verifichi un problema di memoria.

Cosa causa problemi di memoria

  • Perdita di memoria dell'applicazione Java
  • Sovrapposizione di Java Finalizer a causa di un uso non corretto della finalizzazione nel codice personalizzato
  • Configurazione max heap insufficiente

Come analizzare la causa del problema di memoria

Vedi articolo per informazioni su come acquisire un’immagine heap.

Il modo migliore per identificare la causa di un problema di memoria è quello di analizzare un’immagine heap.

Una volta catturato un file Heap Dump, aprilo in MAT Eclipse o IBM Memory Analyzer strumento.  In Eclipse MAT, esegui il rapporto Perdita sospette e apri la visualizzazione "Dettagli thread" per vedere le potenziali cause del problema di memoria.

Soluzioni ai problemi di memoria comuni

  • Ottimizza il codice dell'applicazione per utilizzare meno memoria se noti lunghe pause per la raccolta degli oggetti inattivi.  La maggior parte dei problemi di Garbage Collection può essere risolta al meglio ottimizzando l’applicazione rispetto alla messa a punto di JVM.
  • Se hai già ottimizzato la tua applicazione e riscontri ancora lunghe pause GC, allora concentrarsi sulla messa a punto della JVM.

Problema di indicizzazione AEM
 

Sintomi dei problemi di indicizzazione

Di seguito sono riportati i segnali di un problema di indicizzazione AEM/Oak:

  • I risultati della ricerca sono obsoleti di più di 10 minuti
  • Mancano risultati di ricerca
  • Gli errori vengono restituiti nell’interfaccia utente o nei registri durante la ricerca tramite l’interfaccia utente del sito, la ricerca Query Builder o l’esecuzione della query JCR

Come diagnosticare un problema di indicizzazione
Per vedere se l’indicizzazione asincrona è lenta o non riesce, procedi come segue:

  1. Apri questi URL nell'istanza AEM per visualizzare le statistiche sull'indicizzatore asincrono: 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  - This L’URL si applica solo a AEM6.2 e versioni successive

  2. In ciascuna di queste pagine, controlla i campi seguenti:

    FailingSince - Indica quando l'indicizzazione ha iniziato a non funzionare.

    LastError - Questa è la traccia della pila che mostra cosa sta causando il mancato funzionamento dell'indicizzazione.  Se questo è vuoto, l'indicizzazione non genera errori.

    LastErrorTime - Indica l'ultima volta che l'indicizzazione ha generato l'errore.

    LastIndexedTime - Se la data e l'ora di questo campo hanno più di 5 minuti, l'indicizzazione è troppo lenta.

Cosa causa problemi con l'indicizzazione

  • Manutenzione impropria o mancata manutenzione, come Revision Garbage Collection, Pulizia del flusso di lavoro, Pulizia dei controlli, Pulizia delle versioni, ecc.
  • Segmenti corrotti o mancanti nell'archiviazione Tar
  • Revisione della corruzione in un ambiente cluster (DocumentNodeStore - Mongo o Database)
  • Problema con la topologia del cluster in un ambiente cluster

Come analizzare ciò che sta causando problemi di indicizzazione

  • Vedi articolo per l’analisi e la correzione dei problemi di indicizzazione

Problemi di replica
 

Sintomi dei problemi di replica

  • Le richieste di pubblicazione sono in coda nella coda dell’agente di replica
  • Il contenuto pubblicato non viene visualizzato sul server di pubblicazione
  • Impatto sulle prestazioni del sistema

Cosa causa problemi di replica:

  • L'agente di replica non è configurato correttamente e non può connettersi all'agente di pubblicazione
  • Si verifica un errore al momento della replica che blocca la coda di replica
  • Il sistema è lento e le repliche vengono elaborate lentamente
  • La replica avviene come parte di un flusso di lavoro personalizzato e il problema è l’elaborazione del flusso di lavoro.

Come analizzare i problemi di replica:

  1. Controlla la coda di replica status:

    Attivo: quando gli elementi vengono elaborati.

    Inattivo: quando la coda è vuota.

    Bloccato: quando gli elementi sono in coda, ma non possono essere elaborati; ad esempio, quando l'agente punta a un host inattivo o inesistente.

  2. Controlla le configurazioni di replica se il server è clonato o se l’agente è stato configurato di recente. Per maggiori dettagli, vedi qui.

  3. Esamina i registri dell’agente di replica in http://host:port/etc/replication/agents.author/AgentName.log.html#end.  Se non riesci a identificare alcun elemento, raccogli questo registro e presentalo per AEM supporto.

  4. Esamina il server error.log da AEMinstall/crx-quickstart/logs; Se non riesci a identificare alcun elemento, raccogli questo registro e presentalo per AEM supporto.

  5. Se la coda di replica è in stato "inattivo" e non si applica nessuno dei precedenti, in questo caso il problema è probabilmente causato dai flussi di lavoro. Se i flussi di lavoro non vengono elaborati, l’elemento di replica non arriva mai alla coda di replica. Per monitorare lo stato dei flussi di lavoro, puoi controllare il dashboard del flusso di lavoro per controllare il numero di istanze del flusso di lavoro in esecuzione. Informazioni sull’amministrazione dei flussi di lavoro qui.

  6. Le replicazioni rallentano quando il sistema è sotto carico elevato o si verificano altri problemi di prestazioni.

Soluzione ai problemi di replica comuni:

  1. Esamina i problemi della coda di replica.
  2. Se il problema è dovuto a flussi di lavoro che non funzionano in modo efficiente, è possibile rivedere il suggerimenti per l’elaborazione del flusso di lavoro.

Problemi di corruzione TarMK
 

Sintomi di corruzione TarMK

  • L'istanza è inutilizzabile dopo la compattazione offline.
  • Istanza bloccata in Avvio in corso stato.
  • File di registro o rapporto di output del comando di compattazione SegmentNotFoundException.

Cosa causa i problemi di corruzione

  • Il segmento viene rimosso con un intervento manuale (ad esempio rm -rf ).
  • Il segmento viene rimosso dalla revisione della raccolta degli oggetti inattivi o non può essere trovato a causa di alcuni bug nel codice.
  • Non è possibile trovare il segmento a causa di un bug nel codice.
  • Le varie attività di manutenzione non vengono eseguite in tempo, con conseguente crescita dell'archivio e poco spazio su disco.
  • Arrestare con forza AEM uccidendo il processo java.

Come diagnosticare i problemi di corruzione dell’archivio:

  • Rivedi il file error.log e controlla se è presente SegmentNotFoundException o Eccezione IllegalArgument.
  • Per determinare se un segmento è stato rimosso dalla revisione della raccolta degli oggetti inattivi, controlla l'output del logger org.apache.jackrabbit.oak.plugins.segment.file.TarReader-GC (abilita il registro di debug). Il logger registra gli ID segmento di tutti i segmenti rimossi dalla fase di pulizia. Solo quando l’ID del segmento che ha commesso l’errore viene visualizzato nell’output di quel logger, la causa dell’eccezione è la revisione della raccolta degli oggetti inattivi.
  • In caso di corruzione nel datastore esterno, cerca nel file di log tutte le occorrenze di errore Errore durante l'ottenimento di InputStream per blobId. Questo errore significa che mancano i file dalla directory del datastore AEM.

Soluzione per risolvere i problemi di corruzione:

  • Determinare l’ultima revisione valida nota dell’archivio segmenti utilizzando check modalità di esecuzione di oak-run.  Ripristina manualmente l’archivio dei segmenti corrotti alla sua ultima revisione valida. Questa operazione ripristina l’archivio Oak in uno stato precedente nel tempo.  È necessario eseguire il backup completo dell'archivio prima di eseguire questa operazione.
    • Per eseguire il controllo e il ripristino, segui i passaggi indicati in articolo.
    • Se il controllo non riesce con ConsistencyChecker - Non sono state trovate revisioni valide quindi implementa i passaggi della parte B di articolo.
  • Se non utilizzi un archivio dati, utilizza un file esterno, S3 o Azure datastore, invece dell’archivio segmenti predefinito.
    • L'utilizzo di un datastore fornisce prestazioni migliori.
    • Esegui la migrazione dell’istanza a una con un datastore utilizzando crx2oak.
  • Applica l'ultimo Service Pack e Cumulative Fix Pack e Oak Cumulative Fix Pack.

In questa pagina