Struttura delle prestazioni

Ambito

Il diagramma seguente fornisce indicazioni sui passaggi da intraprendere per risolvere i problemi di prestazioni. È suddiviso in 5 sezioni per facilitarne la lettura.

Ogni passaggio nel diagramma è collegato a una risorsa della documentazione o a una raccomandazione.

Prerequisiti e supposizioni

Il presupposto è che un problema di prestazioni venga osservato in una determinata pagina (una console AEM o una pagina web) e possa essere riprodotto in modo coerente. La possibilità di testare o monitorare le prestazioni è un requisito preliminare prima di avviare l'indagine.

L’analisi inizia al passaggio 0. L’obiettivo è quello di determinare quale entità (dispatcher, host esterno o AEM) è responsabile del problema di prestazioni, quindi determinare quale area (server o rete) deve essere esaminata.

Sezione 1

chlimage_1-103

Sezione 2

chlimage_1-104

Sezione 3

chlimage_1-105

Sezione 4

chlimage_1-106

Sezione 5

chlimage_1-107

Incremento Titolo Riferimenti
Passaggio 0 Analizza flusso di richieste

Puoi utilizzare l’analisi standard delle richieste HTTP nel browser per analizzare il flusso delle richieste. Per ulteriori informazioni su come eseguire questa operazione su Chrome, vedi:

https://developers.google.com/web/tools/chrome-devtools/profile/network-performance/resource-loading
https://developers.google.com/web/tools/chrome-devtools/profile/network-performance/understanding-resource-timing

Passaggio 2 Le richieste provengono da host esterni? Puoi utilizzare l’analisi standard delle richieste HTTP nel browser per analizzare il flusso delle richieste. Vedi i collegamenti di cui sopra su come eseguire questa operazione su Chrome.
Passaggio 3 Le richieste possono essere memorizzate nella cache? Per ulteriori informazioni sulle richieste memorizzabili nella cache e sui consigli generali per l’ottimizzazione delle prestazioni del dispatcher, vedi Ottimizzazione delle prestazioni del dispatcher.
Passaggio 4 Le richieste vengono dal Dispatcher?

Controlla la Documentazione sul debug di Dispatcher per vedere se le richieste sono memorizzate nella cache correttamente.

Passaggio 5 Dispatcher sta tentando di autenticare ogni richiesta tramite AEM? Controlla se il dispatcher invia HEAD richiede a AEM l’autenticazione prima di distribuire la risorsa in cache. Puoi farlo cercando HEAD richieste in AEM access.log. Per ulteriori informazioni, consulta Registrazione.
Passaggio 6 La posizione geografica del Dispatcher è lontana dagli utenti? Sposta il Dispatcher più vicino agli utenti.
Passaggio 7 Il livello di rete del Dispatcher è OK?
Esaminare il livello di rete per i problemi di saturazione e latenza.

Passaggio 8 La lentezza è riproducibile con un'istanza locale?

Utilizzo Giorno difficile per replicare le condizioni del "mondo reale" dalle istanze di produzione. Se questo non è realistico per lo spazio di sviluppo, assicurati di testare l’istanza di produzione (o una fase di staging identica) in un contesto di rete diverso.

Passaggio 9 La posizione geografica del server è lontana dagli utenti? Sposta il server più vicino agli utenti.
Passaggi 10 e 29 Indagare il livello di rete

Esaminare il livello di rete per i problemi di saturazione e latenza.

Per il livello di authoring, si consiglia di non superare i 100 millisecondi.

Per ulteriori informazioni sui suggerimenti per l'ottimizzazione delle prestazioni, vedi questa pagina.

Passaggio 11 Sposta il server più vicino o aggiungi uno per area geografica
Passaggio 12 Risoluzione dei problemi AEM server Per ulteriori informazioni, consulta i seguenti passaggi secondari nel diagramma.
Passaggio 13 Controllare i requisiti hardware Controlla la documentazione su Linee guida per il dimensionamento dell'hardware.
Passaggio 14 Verifica delle cause frequenti dei problemi di prestazioni
Passaggio 15 Trova richieste lente

Puoi verificare la presenza di richieste lente analizzando la variabile request.log o utilizzando rlog.jar.

Per ulteriori informazioni sull'utilizzo di rlog.jar, consulta questa pagina.

Vedi Utilizzo di rlog.jar per trovare le richieste con tempi lunghi.

Passaggio 16 Server dei profili

Per informazioni sugli strumenti di profilatura utilizzabili con AEM, consulta Strumenti per il monitoraggio e l’analisi delle prestazioni.

Passaggio 17 Trova metodi lenti nel profiling
Passaggio 18 Scenari comuni di profilazione Vedi Analisi di scenari specifici nella sezione Ottimizzazione delle prestazioni .
Passaggio 19 CPU al 100% https://helpx.adobe.com/it/experience-manager/6-3/sites-deploying/monitoring-and-maintaining.html#MonitoringPerformance
Passaggio 20 Memoria esaurita
  1. Memoria esaurita
  2. La mia applicazione genera errori di memoria esaurita
  3. Analizzare i problemi di memoria su Helpx.
Passaggio 21 I/O disco

Consulta la sezione I/O disco nella sezione Monitoraggio e manutenzione.

Passaggi 22 e 22.1 Rapporto cache Vedi Calcolo del rapporto della cache del Dispatcher.

Passaggio 23 Query lente Tecniche consigliate per query e indicizzazione
Passaggio 24 Regolazione del repository
Passaggio 25 Flussi di lavoro in esecuzione

Passaggio 26 Infrastruttura MSM

Best practice per Multi Site Manager

Passaggio 27 Ottimizzazione delle risorse
  1. Servizio di sincronizzazione delle risorse
  2. Più istanze DAM
  3. Articoli per suggerimenti sull’ottimizzazione delle prestazioni qui e qui.
Passaggio 28 Sessioni non chiuse

Verifica di sessioni JCR non chiuse

Passaggio 30 Sposta il dispatcher più vicino (aggiungine uno per "regione"?)
Passaggio 31 Usa CDN di fronte al dispatcher Utilizzo di Dispatcher con una rete CDN
Passaggio 32 Utilizza la gestione delle sessioni a livello di dispatcher per scaricare AEM server

Abilitazione di sessioni sicure

Passaggio 33 Effettuare le richieste in cache
  1. Configurazione generale del Dispatcher
  2. Configurazione della cache del Dispatcher

Come migliorare il rapporto cache; rende le richieste compatibili con la cache (best practice per Dispatcher)

Inoltre, prendi in considerazione le seguenti impostazioni per ottimizzare le configurazioni di memorizzazione in cache

  1. Imposta una regola di no-cache per le richieste HTTP che non sono GET
  2. Configurare le stringhe di query per non essere memorizzabili nella cache
  3. Non memorizzare in cache gli URL con estensioni mancanti
  4. Intestazioni di autenticazione cache (possibile dalla versione 4.1.10 di Dispatcher)
Passaggio 34 Aggiorna la versione del dispatcher

Puoi scaricare la versione più recente di Dispatcher da questa posizione:

Segui il collegamento

Passaggio 35 Configurare il dispatcher Configurazione del Dispatcher
Passaggio 36 Verifica invalidazione della cache
Passaggi 37 e 38 Caricamento pigro Vedi la sessione Gem su Prestazioni Web AEM.
Passaggio 39 Utilizzare la preconnessione per ridurre il sovraccarico di connessione Vedi la Sessione Gem sopra indicata. Inoltre, preconnessione della documentazione aggiuntiva su W3c: https://www.w3.org/TR/resource-hints/#dfn-preconnect
Passaggi 40 e 41
Latenza e tempo di risposta degli host esterni Analizzare la latenza e il tempo di risposta per gli host esterni.
Passaggi 45
e 47

Utilizzo di HTTP/2 Consulta la sessione Gem per i passaggi 37,38 e 39. Inoltre, controlla questo post del forum sul supporto HTTP/2.
Passaggio 49 Riduci dimensioni del payload Abilita Gzip e ridurre le dimensioni dell'immagine.
Passaggi 42 e 43 Mantieni vivo

È Keep-Alive intestazione presente nelle diverse richieste di riutilizzo delle connessioni? In caso contrario, ciò significherebbe che ogni richiesta porta a un altro stabilimento di connessione, il che introduce costi generali superflui. (Analisi delle richieste HTTP standard nel browser)

Puoi controllare la Strumento Server proxy per controllare le connessioni Keep-Alive.

Passaggio 44 Quante richieste vengono effettuate? Esegui l’analisi standard delle richieste HTTP nel browser.
Passaggio 46 Riduzione del numero di richieste
  1. Concatenare risorse (immagini, sprite CSS, JSON, ecc.)
  2. Incorporazione Clientlibs:
    1. Creazione di cartelle della libreria client - vedere Utilizzo dell’incorporamento per ridurre al minimo le richieste
Passaggio 48 Qual è la dimensione del payload? Analisi standard delle richieste HTTP nel browser
Passaggi 50 e 51 Blocco del codice JS Prestazioni Web AEM

In questa pagina