Pulizia revisioni revision-cleanup
Introduzione introduction
Ogni aggiornamento del repository crea una revisione del contenuto. Di conseguenza, con ogni aggiornamento, le dimensioni dell’archivio aumentano. Le precedenti revisioni devono essere pulite per liberare le risorse su disco. Questo è importante per evitare una crescita incontrollata dell’archivio. Questa funzionalità di manutenzione è denominata Pulizia revisioni. È disponibile come routine offline a partire da Adobe Experience Manager (AEM) 6.0.
Con AEM 6.3 e versioni successive, è stata introdotta una versione online di questa funzionalità chiamata Online Revision Cleanup (Pulizia delle revisioni online). Rispetto alla funzione di pulizia delle revisioni offline, in cui l'istanza AEM deve essere chiusa, la funzione di pulizia delle revisioni online può essere eseguita mentre l'istanza AEM è online. La funzione Pulizia revisioni online è attivata per impostazione predefinita ed è la modalità consigliata per eseguire la pulizia delle revisioni.
Nota: Guarda il video per un'introduzione e per scoprire come utilizzare la funzione di pulizia delle revisioni in linea.
Il processo di pulizia delle revisioni è costituito da tre fasi: stima, compattazione e pulizia. La stima determina se eseguire la fase successiva (compattazione) o meno in base alla quantità di rifiuti raccolti. Durante la fase di compattazione, i segmenti e i file tar vengono riscritti lasciando fuori il contenuto inutilizzato. La fase di pulizia rimuove quindi i vecchi segmenti, inclusi eventuali rifiuti in essi contenuti. La modalità offline può in genere recuperare più spazio, perché la modalità online deve tenere conto del working set dell’AEM che impedisce la raccolta di segmenti aggiuntivi.
Per ulteriori dettagli sulla pulizia delle revisioni, consulta i seguenti collegamenti:
Inoltre, puoi leggere la documentazione ufficiale di Oak.
Quando utilizzare la pulizia revisioni in linea anziché la pulizia revisioni non in linea? when-to-use-online-revision-cleanup-as-opposed-to-offline-revision-cleanup
Pulizia revisioni in linea è la modalità consigliata per eseguire la pulizia revisioni. La pulizia delle revisioni offline deve essere utilizzata solo in casi eccezionali, ad esempio prima della migrazione al nuovo formato di archiviazione o se richiesto dall'Assistenza clienti Adobe.
Eseguire la pulizia delle revisioni online how-to-run-online-revision-cleanup
La funzione di pulizia delle revisioni online è configurata per impostazione predefinita per essere eseguita automaticamente una volta al giorno sia sulle istanze AEM Author che Publish. È sufficiente definire la finestra di manutenzione durante un periodo con l’attività utente meno intensa. È possibile configurare l'attività Pulizia revisioni in linea come indicato di seguito:
-
Nella finestra principale dell'AEM, vai a Strumenti - Operazioni - Dashboard - Manutenzione o punta il browser a:
https://serveraddress:serverport/libs/granite/operations/content/maintenance.html
-
Passa il puntatore del mouse su Finestra di manutenzione giornaliera e fai clic sull'icona Impostazioni.
-
Immettere i valori desiderati (ricorrenza, ora di inizio e di fine) e fare clic su Salva.
In alternativa, se si desidera eseguire manualmente l'attività di pulizia delle revisioni, è possibile:
-
Vai a Strumenti - Operazioni - Dashboard - Manutenzione o passa direttamente a
https://serveraddress:serverport/libs/granite/operations/content/maintenance.html
-
Fare clic sulla finestra Manutenzione giornaliera.
-
Passa il puntatore sull'icona Pulizia revisioni.
-
Fare clic su Esegui.
Esecuzione della pulizia delle revisioni in linea dopo la pulizia delle revisioni non in linea running-online-revision-cleanup-after-offline-revision-cleanup
Il processo di pulizia delle revisioni consente di recuperare le precedenti revisioni per generazioni. Ciò significa che ogni volta che si esegue la pulizia delle revisioni, viene creata e mantenuta una nuova generazione sul disco. Esiste tuttavia una differenza tra i due tipi di pulizia delle revisioni: la pulizia delle revisioni offline mantiene una generazione mentre la pulizia delle revisioni online ne mantiene due. Pertanto, quando si esegue la pulizia delle revisioni online dopo la pulizia delle revisioni offline si verifica quanto segue:
- Dopo la prima esecuzione della pulizia della revisione online, le dimensioni dell’archivio raddoppiano. Questo accade perché ora ci sono due generazioni che vengono tenute su disco.
- Durante le esecuzioni successive, l’archivio aumenterà temporaneamente durante la creazione della nuova generazione e quindi si stabilizzerà di nuovo alle dimensioni che aveva dopo la prima esecuzione, mentre il processo di pulizia della revisione online recupera la generazione precedente.
Inoltre, tieni presente che a seconda del tipo e del numero di commit, ogni generazione può variare in termini di dimensioni rispetto alla precedente, pertanto la dimensione finale può variare da un’esecuzione all’altra.
Per questo motivo, si consiglia di ridimensionare il disco almeno due o tre volte più grande della dimensione dell'archivio inizialmente stimata.
Modalità Di Compattazione Completa E Coda full-and-tail-compaction-modes
AEM 6.5 introduce due nuove modalità per la fase compattazione del processo di pulizia revisioni in linea:
- La modalità compattazione completa riscrive tutti i segmenti e i file tar nell'intero archivio. La successiva fase di pulizia può quindi rimuovere la quantità massima di oggetti inattivi dall’archivio. Poiché la compattazione completa interessa l'intero archivio, richiede una quantità considerevole di risorse di sistema e tempo per il completamento. La compattazione completa corrisponde alla fase di compattazione nell'AEM 6.3.
- La modalità compattazione tail riscrive solo i segmenti e i file tar più recenti nell'archivio. I segmenti e i file tar più recenti sono quelli che sono stati aggiunti dall’ultima esecuzione della compattazione completa o di coda. La successiva fase di pulizia può quindi rimuovere solo i rifiuti contenuti nella parte recente dell’archivio. Poiché la compattazione finale interessa solo una parte dell’archivio, richiede notevolmente meno risorse di sistema e meno tempo rispetto alla compattazione completa.
Queste modalità di compattazione rappresentano un compromesso tra efficienza e consumo di risorse: mentre la compattazione di coda è meno efficace, ha anche un impatto minore sul normale funzionamento del sistema. Al contrario, la compattazione completa è più efficace, ma ha un impatto maggiore sul normale funzionamento del sistema.
AEM 6.5 introduce inoltre un meccanismo di deduplicazione dei contenuti più efficiente durante la compattazione, che riduce ulteriormente l'ingombro su disco dell'archivio.
I due grafici seguenti, presentano i risultati dei test di laboratorio interni che illustrano la riduzione dei tempi medi di esecuzione e l'impronta media su disco nel AEM 6.5 rispetto al AEM 6.3:
Come configurare la compattazione completa e finale how-to-configure-full-and-tail-compaction
La configurazione predefinita esegue la compattazione finale nei giorni feriali e la compattazione completa nelle domeniche. È possibile modificare la configurazione predefinita utilizzando il nuovo valore di configurazione full.gc.days
dell'RevisionCleanupTask
attività di manutenzione.
Quando si configura il valore full.gc.days
, la compattazione completa viene eseguita nei giorni definiti nel valore e la compattazione finale viene eseguita nei giorni non definiti nel valore. Ad esempio, se configuri la compattazione completa per l’esecuzione la domenica, la compattazione finale viene eseguita dal lunedì al sabato. Ad esempio, se configuri la compattazione completa in modo che venga eseguita ogni giorno della settimana, la compattazione finale non viene eseguita affatto.
Inoltre, considera che:
- La compattazione della coda è meno efficace e ha un impatto minore sulle normali operazioni di sistema. Esso è pertanto destinato a essere utilizzato nelle giornate lavorative.
- La compattazione completa è più efficace, ma ha anche un impatto maggiore sulle normali operazioni di sistema. Esso deve pertanto essere utilizzato al di fuori dei giorni lavorativi.
- La compattazione della coda e la compattazione completa devono essere programmate per l'esecuzione nelle ore di minore utilizzo.
Risoluzione dei problemi troubleshooting
Quando utilizzate le nuove modalità di compattazione, tenete presente quanto segue:
- È possibile monitorare l'attività di input/output (I/O), ad esempio: operazioni di I/O, CPU in attesa di I/O, dimensione coda commit. Questo aiuta a determinare se il sistema sta diventando legato all'I/O e richiede un upsize.
RevisionCleanupTaskHealthCheck
indica lo stato di integrità complessivo di Pulizia revisioni in linea. Funziona allo stesso modo di AEM 6.3 e non distingue tra compattazione completa e di coda.- I messaggi di registro contengono informazioni rilevanti sulle modalità di compattazione. Ad esempio, all'avvio di Pulizia revisioni in linea, i messaggi di registro corrispondenti indicano la modalità di compattazione. Inoltre, in alcuni casi d'angolo, il sistema ripristina la compattazione completa quando era pianificata l'esecuzione di una compattazione finale e i messaggi di registro indicano questa modifica. I campioni di log riportati di seguito indicano la modalità di compattazione e il passaggio dalla coda alla compattazione completa:
TarMK GC: running tail compaction
TarMK GC: no base state available, running full compaction instead
Limitazioni note known-limitations
A volte, l'alternanza tra la modalità di coda e la modalità di compattazione completa ritarda il processo di pulizia. Più precisamente, l’archivio crescerà dopo una compattazione completa (raddoppia in dimensioni). Lo spazio aggiuntivo viene recuperato nella successiva compattazione finale, quando l’archivio scende al di sotto della dimensione di compattazione pre-completa. È inoltre necessario evitare l’esecuzione di attività di manutenzione parallele.
Si consiglia di ridimensionare il disco almeno due o tre volte più grande della dimensione del repository inizialmente stimata.
Domande frequenti sulla pulizia delle revisioni online online-revision-cleanup-frequently-asked-questions
Considerazioni sull’aggiornamento a AEM 6.5 aem-upgrade-considerations
Migrazione a Oak Segment Tar migrating-to-oak-segment-tar
Esecuzione della pulizia delle revisioni in linea running-online-revision-cleanup
Monitoraggio della pulizia delle revisioni online monitoring-online-revision-cleanup
Risoluzione dei problemi di pulizia delle revisioni online troubleshooting-online-revision-cleanup
Risoluzione Dei Problemi In Base Ai Messaggi Di Errore troubleshooting-based-on-error-messages
Il file error.log è dettagliato se si verificano problemi durante il processo di pulizia delle revisioni online. La seguente matrice mira a spiegare i messaggi più comuni e a fornire possibili soluzioni:
Eseguire la pulizia delle revisioni offline how-to-run-offline-revision-cleanup
L'Adobe fornisce uno strumento denominato Oak-run per eseguire la pulizia delle revisioni. Può essere scaricato nella seguente posizione:
https://repo1.maven.org/maven2/org/apache/jackrabbit/oak-run/
Lo strumento è un file jar eseguibile che può essere eseguito manualmente per compattare l’archivio. Il processo viene chiamato pulizia revisione offline perché è necessario chiudere l'archivio per eseguire correttamente lo strumento. Assicurati di pianificare la pulizia in base alla finestra di manutenzione.
Per suggerimenti su come migliorare le prestazioni del processo di pulizia, vedere Aumento delle prestazioni di pulizia revisioni non in linea.
-
Assicurati sempre di avere un backup recente dell’istanza AEM.
Chiudi AEM.
-
(Facoltativo) Usate lo strumento per trovare i punti di controllo precedenti:
code language-xml java -jar oak-run.jar checkpoints install-folder/crx-quickstart/repository/segmentstore
-
(Facoltativo) Quindi, elimina i punti di controllo senza riferimento:
code language-xml java -jar oak-run.jar checkpoints install-folder/crx-quickstart/repository/segmentstore rm-unreferenced
-
Eseguire la compattazione e attenderne il completamento:
code language-xml java -jar -Dsun.arch.data.model=32 oak-run.jar compact install-folder/crx-quickstart/repository/segmentstore
Aumento delle prestazioni della pulizia delle revisioni offline increasing-the-performance-of-offline-revision-cleanup
Lo strumento oak-run introduce diverse funzioni che mirano ad aumentare le prestazioni del processo di pulizia delle revisioni e a ridurre il più possibile la finestra di manutenzione.
L’elenco include diversi parametri della riga di comando, come descritto di seguito:
-
-mmap. È possibile impostarlo come true o false. Se è impostato su true, viene utilizzato l'accesso mappato alla memoria. Se impostato su false, viene utilizzato l’accesso ai file. Se non specificato, l'accesso mappato alla memoria viene utilizzato su sistemi a 64 bit e l'accesso ai file viene utilizzato su sistemi a 32 bit. In Windows, l’accesso regolare ai file viene sempre applicato e questa opzione viene ignorata. Questo parametro ha sostituito il parametro -Dtar.memoryMapped.
-
-Dupdate.limit. Definisce la soglia per lo scaricamento su disco di una transazione temporanea. Il valore predefinito è 10000.
-
-Dcompress-interval. Numero di voci di mappa di compattazione da mantenere fino alla compressione della mappa corrente. Il valore predefinito è 1000000. Se è disponibile una quantità sufficiente di memoria heap, è necessario aumentare questo valore a un numero ancora più alto per una velocità effettiva più rapida. Questo parametro è stato rimosso in Oak versione 1.6 e non ha alcun effetto.
-
-Dcompaction-progress-log. Numero di nodi compattati registrati. Il valore predefinito è 150000, il che significa che durante l'operazione vengono registrati i primi nodi compattati 150000. Utilizzalo con il parametro successivo documentato di seguito.
-
-Dtar.PersistCompactionMap. Impostare questo parametro su true per utilizzare spazio su disco anziché memoria heap per la persistenza della mappa di compattazione. Richiede lo strumento oak-run versioni 1.4 e successive. Per ulteriori dettagli, vedi la domanda 3 nella sezione Domande frequenti sulla pulizia delle revisioni offline. Questo parametro è stato rimosso in Oak versione 1.6 e non ha alcun effetto.
-
—forza. Forza la compattazione e ignora una versione dell'archivio segmenti non corrispondente.
--force
, l'archivio segmenti viene aggiornato alla versione più recente, incompatibile con le versioni precedenti di Oak. Inoltre, considera che non è possibile effettuare alcun downgrade. In genere, questi parametri devono essere utilizzati con cautela e solo se si è esperti di come utilizzarli.Un esempio dei parametri in uso:
java -Dupdate.limit=10000 -Dcompaction-progress-log=150000 -Dlogback.configurationFile=logback.xml -Xmx8g -jar oak-run-*.jar checkpoints <repository>
Metodi aggiuntivi per attivare la pulizia delle revisioni additional-methods-of-triggering-revision-cleanup
Oltre ai metodi descritti in precedenza, puoi anche attivare il meccanismo di pulizia delle revisioni utilizzando la console JMX come segue:
- Apri la console JMX da http://localhost:4502/system/console/jmx
- Fai clic sull'RevisionGarbageCollection MBean.
- Nella finestra successiva, fai clic su startRevisionGC() e quindi su Invoke per avviare il processo Revision Garbage Collection.