개정 정리 revision-cleanup
소개 introduction
저장소에 대한 각 업데이트는 콘텐츠 개정을 만듭니다. 결과적으로 각 업데이트마다 저장소 크기가 커집니다. 디스크 리소스를 확보하기 위해 이전 버전을 정리해야 합니다. 이는 통제되지 않는 저장소 증가를 방지하기 위해 중요합니다. 이 유지 관리 기능을 개정 정리 라고 합니다. Adobe Experience Manager(AEM) 6.0 이후 오프라인 루틴으로 사용할 수 있습니다.
AEM 6.3 이상에서는 온라인 수정 정리 라는 이 기능의 온라인 버전이 도입되었습니다. AEM 인스턴스를 종료해야 하는 오프라인 개정 정리와 비교하여 온라인 개정 정리는 AEM 인스턴스가 온라인 상태에 있는 동안 실행할 수 있습니다. 온라인 개정 정리는 기본적으로 켜져 있으며 개정 정리를 수행하는 데 권장되는 방법입니다.
참고: 비디오 보기에서 소개 및 온라인 수정 정리 사용 방법을 확인하십시오.
수정 정리 프로세스는 estimation, 압축 및 정리 의 세 단계로 구성됩니다. 예상 값은 수집된 가비지 양을 기반으로 다음 단계(압축)를 실행할지 여부를 결정합니다. 압축 단계 세그먼트 및 tar 파일은 사용되지 않은 콘텐츠를 제외하고 다시 작성됩니다. 그런 다음 정리 단계에서는 포함될 수 있는 쓰레기를 포함한 이전 세그먼트를 제거합니다. 오프라인 모드는 추가 세그먼트가 수집되지 않도록 유지하는 AEM의 작업 세트를 고려해야 하므로 일반적으로 더 많은 공간을 확보할 수 있습니다.
개정 정리에 대한 자세한 내용은 다음 링크를 참조하십시오.
또한 공식 Oak 설명서를 읽을 수 있습니다.
오프라인 개정 정리가 아닌 온라인 개정 정리를 사용해야 하는 경우 when-to-use-online-revision-cleanup-as-opposed-to-offline-revision-cleanup
온라인 수정 정리 작업은 수정 정리 작업을 수행하는 데 권장되는 방법입니다. 오프라인 수정 정리 작업은 예외적인 경우에만 사용해야 합니다. 예를 들어, 새 저장소 형식으로 마이그레이션하기 전이나 Adobe 고객 지원 센터에서 요청한 경우 사용해야 합니다.
온라인 개정 정리를 실행하는 방법 how-to-run-online-revision-cleanup
온라인 개정 정리 는 기본적으로 AEM Author 및 Publish 인스턴스 모두에서 하루에 한 번 자동으로 실행되도록 구성됩니다. 사용자 활동이 가장 적은 기간 동안 유지 관리 기간을 정의하기만 하면 됩니다. 다음과 같이 온라인 개정 정리 작업을 구성할 수 있습니다.
-
기본 AEM 창에서 도구 - 작업 - 대시보드 - 유지 관리(으)로 이동하거나 브라우저를 가리킵니다.
https://serveraddress:serverport/libs/granite/operations/content/maintenance.html
-
일별 유지 관리 기간 위로 마우스를 가져간 후 설정 아이콘을 클릭합니다.
-
원하는 값(반복, 시작 시간, 종료 시간)을 입력하고 저장 을 클릭합니다.
또는 개정 정리 작업을 수동으로 실행하려면 다음을 수행할 수 있습니다.
-
도구 - 작업 - 대시보드 - 유지 관리(으)로 이동하거나
https://serveraddress:serverport/libs/granite/operations/content/maintenance.html
(으)로 바로 이동 -
일별 유지 관리 기간 을 클릭합니다.
-
개정 정리 아이콘 위로 마우스를 가져갑니다.
-
실행 을 클릭합니다.
오프라인 개정 정리 후 온라인 개정 정리 실행 running-online-revision-cleanup-after-offline-revision-cleanup
개정 정리 프로세스는 세대별로 오래된 개정을 회수합니다. 즉, 개정 정리를 실행할 때마다 새 생성이 생성되어 디스크에 보관됩니다. 그러나 오프라인 개정 정리가 한 세대를 유지하지만 온라인 개정 정리가 두 세대를 유지한다는 두 가지 개정 정리 유형에는 차이가 있습니다. 따라서 온라인 수정 정리 after 오프라인 수정 정리를 실행하면 다음과 같은 결과가 발생합니다.
- 첫 번째 온라인 수정 버전 정리가 실행된 후 저장소 크기는 두 배가 됩니다. 이 문제는 두 세대가 디스크에 저장되기 때문에 발생합니다.
- 이후 실행 시 저장소는 새 세대가 생성되는 동안 일시적으로 증가하다가 온라인 개정 정리 프로세스가 이전 세대를 재호출함에 따라 첫 번째 실행 후 크기를 다시 유지하면서 안정됩니다.
또한 커밋 유형과 수에 따라 각 세대의 크기가 이전 세대와 비교하여 다를 수 있으므로 최종 크기는 한 실행에서 다른 실행으로 달라질 수 있습니다.
따라서 디스크의 크기를 처음 예상한 저장소 크기보다 최소 2~3배 크게 설정하는 것이 좋습니다.
전체 및 꼬리 압축 모드 full-and-tail-compaction-modes
AEM 6.5 에서 온라인 수정 정리 프로세스의 압축 단계에 대해 두 개의 새 모드 를 도입했습니다.
- 전체 압축 모드는 전체 저장소의 모든 세그먼트와 tar 파일을 다시 작성합니다. 따라서 이후의 정리 단계에서는 저장소의 최대 가비지 양을 제거할 수 있습니다. 전체 압축은 전체 저장소에 영향을 미치므로 완료하는 데 상당한 시스템 리소스와 시간이 필요합니다. 전체 압축은 AEM 6.3의 압축 단계에 해당합니다.
- 테일 압축 모드는 저장소의 가장 최근 세그먼트와 tar 파일만 다시 작성합니다. 가장 최근 세그먼트 및 tar 파일은 마지막으로 전체 또는 테일 압축을 실행한 이후 추가된 파일입니다. 따라서 이후의 정리 단계에서는 저장소의 최근 부분에 포함된 휴지통만 제거할 수 있습니다. 꼬리 압축은 저장소의 일부에만 영향을 주므로 전체 압축보다 시스템 리소스와 완료 시간이 훨씬 적게 필요합니다.
이러한 압축 모드는 효율과 리소스 소비 간의 상충관계를 구성합니다. 테일 압축은 효율성이 떨어지지만 정상적인 시스템 운영에 미치는 영향도 적습니다. 반면 전체 압축은 더 효과적이지만 정상적인 시스템 작동에 더 큰 영향을 미칩니다.
또한 AEM 6.5는 압축 시 더욱 효율적인 콘텐츠 중복 제거 메커니즘을 도입하여 저장소의 디스크 내 풋프린트를 더욱 줄입니다.
아래 두 차트는 AEM 6.3에 비해 AEM 6.5에서 디스크의 평균 실행 시간 및 평균 풋프린트가 감소했음을 보여주는 내부 실험실 테스트 결과를 보여 줍니다.
전체 및 테일 압축 구성 방법 how-to-configure-full-and-tail-compaction
기본 구성은 평일에는 꼬리 압축을 실행하고 일요일에는 전체 압축을 실행합니다. RevisionCleanupTask
유지 관리 작업의 새 구성 값 full.gc.days
을(를) 사용하여 기본 구성을 변경할 수 있습니다.
full.gc.days
값을 구성하면 값에 정의된 기간 동안 전체 압축이 실행되고 값에 정의되지 않은 기간 동안 테일 압축이 실행됩니다. 예를 들어 전체 압축을 일요일에 실행하도록 구성한 경우 꼬리 압축은 월요일에서 토요일까지 실행됩니다. 예를 들어 전체 압축을 구성하여 매일 실행하면 꼬리 압축이 전혀 실행되지 않습니다.
또한 다음 사항을 고려하십시오.
- 꼬리 압축 은(는) 효과성이 떨어지며 정상적인 시스템 작업에 미치는 영향이 적습니다. 따라서 영업일 중에 실행되도록 설계되었습니다.
- 전체 압축 이 더 효과적이지만 정상적인 시스템 작업에 더 큰 영향을 미칩니다. 따라서 영업일 외에도 사용하기 위한 것입니다.
- 꼬리 압축과 전체 압축은 모두 사용량이 적은 시간 동안 실행되도록 예약해야 합니다.
문제 해결 troubleshooting
새 압축 모드를 사용할 때는 다음 사항에 유의하십시오.
- 입출력 작업, 입출력 대기 CPU, 커밋 대기열 크기와 같은 입출력(I/O) 활동을 모니터링할 수 있습니다. 이렇게 하면 시스템이 I/O에 바인딩되고 있으며 업사이징이 필요한지 여부를 확인하는 데 도움이 됩니다.
RevisionCleanupTaskHealthCheck
은(는) 온라인 수정 정리 작업의 전체 상태를 나타냅니다. AEM 6.3에서와 동일한 방식으로 작동하며 전체 압축과 꼬리 압축을 구분하지 않습니다.- 로그 메시지는 압축 모드에 대한 관련 정보를 전달합니다. 예를 들어, 온라인 개정 정리가 시작되면 해당 로그 메시지는 압축 모드를 나타냅니다. 또한, 경우에 따라 시스템에서 꼬리 압축을 실행하도록 예약되었을 때 전체 압축으로 되돌리고 로그 메시지는 이러한 변경을 나타냅니다. 아래의 로그 샘플은 압축 모드와 꼬리에서 전체 압축으로의 변화를 나타냅니다.
TarMK GC: running tail compaction
TarMK GC: no base state available, running full compaction instead
알려진 제한 사항 known-limitations
경우에 따라 꼬리와 전체 압축 모드를 교대로 하면 정리 프로세스가 지연됩니다. 더 정확하게는 전체 압축 후 저장소가 증가합니다(크기가 두 배 증가). 저장소가 사전 전체 압축 크기 아래로 떨어지면 후속 테일 압축에서 추가 공간이 확보됩니다. 병렬 유지 관리 작업 실행도 피해야 합니다.
디스크의 크기를 처음 예상한 저장소의 크기보다 최소 2~3배 크게 설정하는 것이 좋습니다.
온라인 개정 정리 FAQ online-revision-cleanup-frequently-asked-questions
AEM 6.5 업그레이드 고려 사항 aem-upgrade-considerations
Oak Segment Tar로 마이그레이션 migrating-to-oak-segment-tar
온라인 개정 정리 실행 running-online-revision-cleanup
온라인 개정 정리 모니터링 monitoring-online-revision-cleanup
온라인 개정 정리 문제 해결 troubleshooting-online-revision-cleanup
오류 메시지를 기반으로 한 문제 해결 troubleshooting-based-on-error-messages
온라인 개정 정리 프로세스 중에 문제가 발생하면 error.log가 장황합니다. 다음 매트릭스는 가장 일반적인 메시지를 설명하고 가능한 해결책을 제공하는 것을 목표로 합니다.
오프라인 개정 정리를 실행하는 방법 how-to-run-offline-revision-cleanup
Adobe은 수정 버전 정리를 수행하기 위해 Oak-run 이라는 도구를 제공합니다. 다음 위치에서 다운로드할 수 있습니다.
https://repo1.maven.org/maven2/org/apache/jackrabbit/oak-run/
이 도구는 수동으로 실행하여 저장소를 압축할 수 있는 실행 가능한 Jar입니다. 도구를 제대로 실행하려면 저장소를 종료해야 하므로 이 프로세스를 오프라인 수정 정리 라고 합니다. 유지 관리 기간에 따라 정리를 계획해야 합니다.
정리 프로세스의 성능을 높이는 방법에 대한 팁은 오프라인 수정 정리 성능 증가를 참조하십시오.
-
AEM 인스턴스의 최근 백업이 있는지 항상 확인하십시오.
AEM을 종료합니다.
-
(선택 사항) 이전 체크포인트를 찾으려면 도구를 사용합니다.
code language-xml java -jar oak-run.jar checkpoints install-folder/crx-quickstart/repository/segmentstore
-
(선택 사항) 그런 다음 참조되지 않은 체크포인트를 삭제합니다.
code language-xml java -jar oak-run.jar checkpoints install-folder/crx-quickstart/repository/segmentstore rm-unreferenced
-
압축을 실행하고 완료될 때까지 기다립니다.
code language-xml java -jar -Dsun.arch.data.model=32 oak-run.jar compact install-folder/crx-quickstart/repository/segmentstore
오프라인 개정 정리 성능 향상 increasing-the-performance-of-offline-revision-cleanup
oak-run 도구는 개정 정리 프로세스의 성능을 높이고 유지 관리 기간을 최대한 최소화하려는 몇 가지 기능을 소개합니다.
이 목록에는 아래 설명된 대로 여러 명령줄 매개 변수가 포함되어 있습니다.
-
-mmap입니다. true 또는 false로 설정할 수 있습니다. true로 설정하면 메모리 매핑 액세스가 사용됩니다. false로 설정하면 파일 액세스가 사용됩니다. 지정하지 않으면 64비트 시스템에서 메모리 매핑 액세스가 사용되고 32비트 시스템에서 파일 액세스가 사용됩니다. Windows에서는 항상 일반 파일 액세스가 적용되며 이 옵션은 무시됩니다. 이 매개 변수는 -Dtar.memoryMapped 매개 변수를 대체했습니다.
-
-Dupdate.limit. 디스크에 대한 임시 트랜잭션의 플러시에 대한 임계값을 정의합니다. 기본값은 10000입니다.
-
-Dcompress-interval. 현재 맵을 압축할 때까지 유지할 압축 맵 항목 수입니다. 기본값은 1000000입니다. 사용 가능한 힙 메모리가 충분하다면 이 값을 더 높은 숫자로 늘려야 더 빠른 처리량을 얻을 수 있습니다. 이 매개 변수는 Oak 버전 1.6에서 제거되었으며 영향을 주지 않습니다.
-
-Dcompaction-progress-log. 기록된 압축 노드 수입니다. 기본값은 150000이며, 이는 첫 번째 150000 압축된 노드가 작업 중에 기록됨을 의미합니다. 아래 설명된 다음 매개 변수와 함께 사용하십시오.
-
-Dtar.PersistCompactionMap. 압축 맵 지속성을 위해 힙 메모리 대신 디스크 공간을 사용하려면 이 매개 변수를 true로 설정합니다. oak 실행 도구 버전 1.4 이상이 필요합니다. 자세한 내용은 오프라인 개정 정리 FAQ 섹션에서 질문 3을 참조하십시오. 이 매개 변수는 Oak 버전 1.6에서 제거되었으며 영향을 주지 않습니다.
-
—강제. 압축을 적용하고 일치하지 않는 세그먼트 저장소 버전을 무시합니다.
--force
매개 변수를 사용하면 세그먼트 저장소가 이전 Oak 버전과 호환되지 않는 최신 버전으로 업그레이드됩니다. 또한 다운그레이드는 불가능합니다. 일반적으로 이러한 매개 변수는 사용 방법에 대해 잘 알고 있는 경우에만 주의해서 사용해야 합니다.사용 중인 매개 변수의 예:
java -Dupdate.limit=10000 -Dcompaction-progress-log=150000 -Dlogback.configurationFile=logback.xml -Xmx8g -jar oak-run-*.jar checkpoints <repository>
개정 정리를 트리거하는 추가 방법 additional-methods-of-triggering-revision-cleanup
위에 제시된 방법 외에도 다음과 같이 JMX 콘솔을 사용하여 개정 정리 메커니즘을 트리거할 수도 있습니다.
- http://localhost:4502/system/console/jmx(으)로 이동하여 JMX 콘솔 열기
- RevisionGarbageCollection MBean을 클릭합니다.
- 다음 창에서 startRevisionGC() 을(를) 클릭한 다음 Invoke 을(를) 클릭하여 수정 가비지 수집 작업을 시작합니다.