Show Menu
ARGOMENTI×

Best practice per il test delle prestazioni

Introduzione

Il test delle prestazioni è una parte importante di qualsiasi implementazione di AEM. A seconda delle esigenze del cliente, è possibile che vengano eseguiti test delle prestazioni sulle istanze di pubblicazione, di creazione o su entrambi.
La presente documentazione illustra le strategie e le metodologie generali per l'esecuzione dei test di prestazioni, nonché alcuni degli strumenti resi disponibili da Adobe per assistere il processo. Infine, analizzeremo alcuni degli strumenti disponibili in AEM 6 per fornire assistenza nell’ottimizzazione delle prestazioni, sia dal punto di vista dell’analisi del codice che della configurazione del sistema.

Simulazione della realtà

La cosa più importante nell'esecuzione dei test di performance è assicurarsi che l'ambiente di produzione venga riprodotto il più vicino possibile. Anche se questo può essere spesso difficile, è indispensabile garantire la precisione di tali prove. Durante la progettazione di test di prestazioni, è importante tenere conto dei seguenti punti:
  • Contenuto simile alla produzione
Molte misurazioni delle prestazioni in AEM, come il tempo di risposta alle query, possono essere influenzate dalle dimensioni del contenuto presente nel sistema. È importante assicurarsi che l'ambiente di prova disponga del più vicino possibile di una copia dei dati di produzione.
  • Codice produzione
La versione di AEM e gli hotfix implementati in produzione devono corrispondere nell'ambiente di prova. È inoltre importante verificare la versione del codice distribuito in produzione.
  • Configurazione hardware e di rete simile a quella della produzione
I test saranno senza senso senza un ambiente che assomigli il più possibile alla produzione. Idealmente, le specifiche hardware, le interfacce di rete, i bilanciatori del carico e la CDN dovrebbero essere identici alla produzione nell'ambiente di prova.
  • Carico di produzione
Molti problemi di prestazioni non vengono visti finché il sistema non è sotto carico. Buone prove di prestazioni dovrebbero simulare il carico che i sistemi di produzione saranno sotto al loro picco.

Impostazione degli obiettivi

Prima di iniziare il test delle prestazioni, è necessario impostare requisiti non funzionali per specificare i tempi di caricamento e risposta. Se state eseguendo la migrazione da un sistema esistente, accertatevi che il tempo di risposta sia simile ai valori di produzione correnti. Per il caricamento, è meglio prendere il carico di picco corrente e raddoppiarlo. In questo modo, il sito Web continuerà a funzionare correttamente e a crescere.

Strumenti

Sono disponibili sul mercato numerosi strumenti di test delle prestazioni disponibili in commercio. Quando si esegue uno strumento di generazione del carico, è importante garantire che i computer che eseguono i test dispongano di larghezza di banda sufficiente. In caso contrario, quando la macchina di prova raggiunge i limiti della sua connessione, non verrà generato alcun carico aggiuntivo sull'ambiente in fase di test.

Strumenti di test

  • Lo strumento Adobe Hard Day può essere utilizzato per generare il carico sulle istanze AEM e raccogliere i dati sulle prestazioni. Il team tecnico di Adobe AEM utilizza effettivamente lo strumento per eseguire il test del carico del prodotto AEM stesso. Gli script eseguiti nel giorno di prova sono configurati tramite file di proprietà e file XML JMX. Per ulteriori informazioni, consulta la documentazione " Difficile".
  • AEM fornisce strumenti integrati per visualizzare rapidamente query, richieste e messaggi di errore problematici. Per ulteriori informazioni, consulta la sezione Strumenti di diagnostica della documentazione del Pannello operazioni.
  • Apache fornisce un prodotto denominato JMeter che può essere utilizzato per il test delle prestazioni e del carico, nonché per il comportamento funzionale. È un software open source e gratuito da usare, ma ha un set di funzioni più piccolo rispetto ai prodotti aziendali e una curva di apprendimento più ampia. JMeter è disponibile sul sito web di Apache all'indirizzo https://jmeter.apache.org/
  • Load Runner è un prodotto di test del carico di livello Enterprise. È disponibile una versione di valutazione gratuita. Ulteriori informazioni sono disponibili all'indirizzo https://www.microfocus.com/en-us/products/loadrunner-load-testing/overview
  • Possono essere utilizzati anche strumenti di test del carico basati su cloud come Neustar .
  • Quando si tratta di testare siti Web mobili o reattivi, è necessario utilizzare un set di strumenti separato. Funzionano rallentando la larghezza di banda della rete, simulando connessioni mobili lente come 3G o EDGE. Tra gli strumenti più diffusi:
    • Condizionatore ​di collegamento di rete: fornisce un'interfaccia utente facile da usare e funziona a un livello abbastanza basso nello stack di rete. Include versioni per OS X e iOS;
    • **Charles ** - un'applicazione proxy di debug Web che oltre a diversi altri usi, fornisce la limitazione della rete. Sono disponibili versioni per Windows, OS X e Linux.

Strumenti di ottimizzazione

Monitoraggio
La documentazione Monitoring Performance è una buona risorsa per strumenti e metodi che possono essere utilizzati per diagnosticare le aree problematiche e individuare le aree da sottoporre a tuning.
Modalità Sviluppatore nell’interfaccia utente touch
Una delle nuove funzioni dell’interfaccia touch di AEM 6 è la modalità Sviluppatore. Così come gli autori possono passare dalle modalità di modifica a quella di anteprima, gli sviluppatori possono passare alla modalità di sviluppo nell’interfaccia utente dell’autore per visualizzare il tempo di rendering di ciascuno dei componenti sulla pagina e per visualizzare le tracce degli stack di eventuali errori. Per ulteriori informazioni sulla modalità di sviluppo, consultate questa presentazione aem-6-0-developer-mode.htmlCQ Gems.
Utilizzo di rlog.jar per leggere i registri delle richieste
Per un'analisi più completa dei registri di richiesta di un sistema AEM, rlog.jar request.log potete cercare e ordinare i file generati da AEM. Questo file JAR è incluso con un’installazione AEM nella /crx-quickstart/opt/helpers cartella. Per ulteriori informazioni sullo strumento di registro e sul registro delle richieste in generale, consulta la documentazione Monitoraggio e manutenzione .
Lo strumento Spiega query
Lo strumento Spiega query Spiega query in ACS AEM Tools può essere utilizzato per visualizzare gli indici utilizzati durante l'esecuzione di una query. Questo può essere molto utile quando si ottimizzano query in esecuzione lenta.
Strumenti PageSpeed
Gli strumenti PageSpeed di Google offrono un’analisi del sito per garantire il rispetto delle best practice per le prestazioni delle pagine, nonché un plug-in che può essere installato insieme al dispatcher in un’istanza Apache per ulteriori ottimizzazioni. Per ulteriori informazioni, vedere il sito Web PageSpeed Tools .

Ambiente di authoring

Esecuzione di test

Per eseguire test delle prestazioni nell’ambiente di authoring è necessario simulare l’esperienza degli autori di produzioni. Ciò significa che le installazioni dell’autore devono contenere tutti i componenti, i bundle OSGi, la personalizzazione dell’interfaccia utente, gli indici personalizzati e qualsiasi altra aggiunta disponibile per le istanze dell’autore della produzione.
Sono disponibili molti framework di automazione progettati per il test delle prestazioni e del carico. Gli script personalizzati possono essere registrati in questi strumenti e quindi riprodotti per simulare un numero elevato di autori che eseguono contemporaneamente attività simili di creazione e attivazione dei contenuti. È consigliabile utilizzare lo strumento Giorno difficile per simulare attività quali il caricamento di migliaia di risorse o l’attivazione di un numero elevato di pagine.
Per i tipi di ambienti che richiedono un carico di risorse o un’authoring intensivo delle pagine, è fondamentale utilizzare strumenti come Tough Day per garantire che l’ambiente funzioni in modo efficiente sotto il carico di picco. WebDAV è uno strumento che non richiede script e può essere utilizzato anche per caricare grandi quantità di risorse.

Passaggi specifici di MongoDB

Sui sistemi con back-end MongoDB, AEM fornisce diversi MBeans JMX che devono essere monitorati durante l'esecuzione di test di carico o prestazioni:
  • MBean Consolidated Cache Statistics . È accessibile direttamente da:
https://server:port/system/console/jmx/org.apache.jackrabbit.oak%3Aid%3D6%2Cname%3D%22Consolidated+Cache+statistics%22%2Ctype%3D%22ConsolidatedCacheStats%22
Per la cache denominata Document-Diff , la frequenza di hit deve essere superiore .90 . Se la percentuale di hit è inferiore al 90%, è probabile che sarà necessario modificare la DocumentNodeStoreService configurazione. Il supporto dei prodotti Adobe può consigliare impostazioni ottimali per il vostro ambiente.
  • Le Statistiche Del Repository Oak. È accessibile direttamente da:
https://server:port/system/console/jmx/org.apache.jackrabbit.oak%3Aid%3D16%2Cname%3D%22Oak+Repository+Statistics%22%2Ctype%3D%22RepositoryStats%22
La sezione ObservationQueueMaxLength mostrerà il numero di eventi nella coda di osservazione di Oak nelle ultime ore, minuti, secondi e settimane. Trovate il maggior numero di eventi nella sezione "per ora". Questo numero deve essere confrontato con l’ oak.observation.queue-length impostazione disponibile nel componente SlingRepositoryManager nella console Console Web OSGi. Se il numero più alto indicato per la coda di osservazione supera l' queue-length impostazione, contattate il supporto Adobe per assistenza nell'aumentare l'impostazione. L'impostazione predefinita è 1.000, ma la maggior parte delle distribuzioni deve in genere portarla a 20.000 o 50.000.

Ambiente di pubblicazione

Esecuzione di test

La parte più importante di una distribuzione che deve essere sottoposta a test di carico è l’ambiente di pubblicazione o dispatcher che l’utente finale deve affrontare.
Gli strumenti di test automatizzati di terze parti possono essere utilizzati per verificare le prestazioni del sito Web. Questi strumenti consentono di registrare i passaggi che gli utenti passeranno attraverso il sito ed eseguire contemporaneamente molte di queste sessioni per simulare il carico tipico di un sito Web di produzione.
La maggior parte dei siti Web di produzione dispone di ottimizzazioni come il caching dei dispatcher e la creazione di una rete di distribuzione dei contenuti. Durante il test, dovete assicurarvi che queste ottimizzazioni siano disponibili anche per l'ambiente di test. Oltre a monitorare i tempi di risposta per gli utenti finali, è necessario monitorare le metriche di sistema sui server e sui dispatcher di pubblicazione per garantire che il sistema non sia vincolato dalle risorse hardware.
In un sistema che non richiede un livello elevato di personalizzazione, il dispatcher deve memorizzare la maggior parte delle richieste nella cache. Di conseguenza, il carico sull’istanza di pubblicazione deve rimanere relativamente piatto. Se è necessario un elevato livello di personalizzazione, si consiglia di utilizzare tecnologie quali iFrames o richieste AJAX per il contenuto personalizzato, in modo da consentire il maggior numero possibile di cache del dispatcher.
Per i test di base, Apache Bench può essere utilizzato per misurare i tempi di risposta dei server web e aiutare a creare il carico per misurare cose come perdite di memoria. Per ulteriori informazioni, consulta l’esempio nella documentazione di monitoraggio.

Risoluzione dei problemi di prestazioni

Dopo aver eseguito i test delle prestazioni sull’istanza di creazione, eventuali problemi dovranno essere analizzati, diagnosticati e risolti. Potete utilizzare diversi strumenti e tecniche per eseguire analisi e risolvere i problemi:
  • Potete esaminare il registro Prestazioni richieste nel Pannello operazioni. Questo strumento può essere utilizzato per identificare le richieste di pagina lenta
  • Analizzare query in esecuzione lente con lo strumento Query Performance
  • Controllate l'elenco degli errori per eventuali errori o avvisi. For more information, see Logging
  • Monitorare le risorse hardware del sistema come la memoria e l'utilizzo della CPU, l'I/O del disco o l'I/O della rete. Tali risorse sono spesso la causa di colli di bottiglia delle prestazioni
  • Ottimizzate l'architettura delle pagine e come vengono indirizzate per ridurre al minimo l'uso dei parametri URL per consentire il maggior numero possibile di cache
  • Se sono presenti problemi durante la modifica di determinate pagine o componenti in istanze di autori, utilizzate la modalità TouchUI Developer per ispezionare la pagina in questione. Questo fornisce un'analisi approfondita di ciascuna area di contenuto della pagina e del relativo tempo di caricamento
  • Riducete tutti i file JS e CSS presenti sul sito. Per ulteriori informazioni su come eseguire questa operazione, consultate questo post di blog.
  • Elimina CSS e JS incorporati dai componenti. Devono essere inclusi e ridotti con le librerie lato client per ridurre al minimo il numero di richieste necessarie per eseguire il rendering della pagina
  • Utilizzate gli strumenti del browser come la scheda Rete di Chrome per esaminare le richieste del server e vedere quali richiedono il tempo più lungo.
Una volta identificate le aree problematiche, il codice dell'applicazione può essere analizzato per verificare la disponibilità di ottimizzazioni delle prestazioni. Tutte le funzioni AEM incluse che non funzionano correttamente possono essere gestite con il supporto Adobe.