AEM 인덱싱 문제 분석
이 문서에서는 느린 쿼리 분석, 비동기 인덱스 리인덱싱 및 Adobe Experience Manager의 인덱싱 문제 해결에 대한 지침을 제공합니다.
설명 description
환경
Adobe Experience Manager
문제/증상
모든 일반적인 색인화 문제를 해결하는 방법
해결 방법 resolution
느린 쿼리 분석
도구 >
작업 >
대시보드 >
진단 >
쿼리 성능(으)로 이동하면 느린 쿼리 목록이 표시됩니다.
느린 쿼리 분석에 대한 자세한 내용은 이 문서를 참조하십시오.
비프로덕션 환경에서 ACS(Adobe Consulting 서비스) AEM 도구 패키지를 설치하여 디버깅 기능을 추가할 수 있는 설명 쿼리 도구를 제공할 수 있습니다.
비동기 인덱스 리인덱싱
참고: 다시 인덱싱해도 일반적으로 올바른 결과를 반환하지 않는 쿼리와 같은 쿼리 문제는 해결되지 않습니다. 또한 리인덱싱하는 데 시간이 오래 걸릴 수 있으며, 나열된 이유에 해당되지 않는 한 리인덱싱하는 것을 피해야 합니다.
비동기 인덱스를 다시 인덱싱하는 방법
-
AEM 인스턴스에 로그인
-
http://aemhost:port/crx/de/index.jsp 열기
-
/oak:index 아래의 인덱스 정의로 이동합니다.
-
인덱스에서 부울 속성 reindex=true 를 설정하여 다시 인덱싱한 다음 저장합니다. 인덱싱이 시작되면 다음과 같은 로그 메시지가 표시됩니다.
code language-none 23.06.2015 14:26:23.070 *INFO* [ FelixStartLevel] org.apache.jackrabbit.oak.plugins.index.IndexUpdate Reindexing will be performed for following indexes: [ /oak:index/cqAcUUID, /oak:index/nodetype, /oak:index/deviceIdentificationMode, /oak:index/campaignpath, /oak:index/active, /oak:index/jcrFrozenMixinTypes]
-
리인덱싱이 진행 중인 동안 IndexStatsMBean의 status 특성 값은 running 입니다.
code language-none 23.06.2015 14:26:23.517 *INFO* [ FelixStartLevel] org.apache.jackrabbit.oak.plugins.index.IndexUpdate Reindexing Traversed #10000 /jcr:system/jcr:versionStorage/c8/5f... 23.06.2015 14:28:51.999 *INFO* [ pool-8-thread-1] org.apache.jackrabbit.oak.plugins.index.IndexUpdate Indexing report - /oak:index/counter (708) - /oak:index/authorizables (159) - /oak:index/cqPageLucene (1913) - /oak:index/ntBaseLucene (444) - /oak:index/cqTagLucene (512) - /oak:index/workflowDataLucene*(116)
-
인덱스 정의 노드를 확인하여 인덱싱이 완료되었고, reindexCount 속성이 증분되었고, reindex 부울이 false(으)로 설정되었는지 확인할 수 있습니다.
로그 파일에서 인덱싱이 성공적으로 완료되면 다음 항목이 표시됩니다.
code language-none 23.06.2015 14:28:52.009 *INFO* [ pool-8-thread-1] org.apache.jackrabbit.oak.plugins.index.AsyncIndexUpdate Reindexing (async) completed for indexes: [ /oak:index/counter*(708), /oak:index/authorizables*(159), /oak:index/cqPageLucene*(1913), /oak:index/ntBaseLucene*(444), /oak:index/cqTagLucene*(512), /oak:index/workflowDataLucene*(116)] in 30.36 s
-
리인덱싱이 완료되지 않고 루프로 이동한 경우 아래의 실패한 리인덱싱 분석 섹션을 참조하십시오.
-
비동기 인덱스 활동은 그레핑을 통해 INFO 수준에서 식별할 수 있습니다.
code language-none org.apache.jackrabbit.plugins.index.IndexUpdate, and org.apache.jackrabbit.plugins.index.AsyncIndexUpdate
비동기 인덱싱 성능 문제
-
로깅을 활성화하여 타이밍 확인:
추적 수준(Oak 1.0.17 이상에서만):
code language-none org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexEditorContext.perf
디버그 수준:
code language-none org.apache.jackrabbit.oak.plugins.index.AsyncIndexUpdate org.apache.jackrabbit.oak.plugins.index.IndexUpdate org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexEditor org.apache.jackrabbit.oak.plugins.index.lucene.IndexTracker org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexEditorContext org.apache.jackrabbit.oak.plugins.index.lucene.IndexCopier
인덱싱 타이밍을 보여 주는 다음과 같은 로그가 생성됩니다.
code language-none 09.07.2015 08:13:38.401 *TRACE* [ 192.168.193.1 [ 1436444018387] POST /content/dam/site/test.createasset.html HTTP/1.1] org.apache.jackrabbit.oak.jcr.operations.writes [ session-101777] Adding node [ /content/dam/site/test/jackrabbit-oak7.png] 09.07.2015 08:13:38.583 *TRACE* [ 192.168.193.1 [ 1436444018387] POST /content/dam/site/test.createasset.html HTTP/1.1] org.apache.jackrabbit.oak.jcr.operations.writes [ session-101777] save 09.07.2015 08:13:42.823 *DEBUG* [ pool-9-thread-1] org.apache.jackrabbit.oak.plugins.index.AsyncIndexUpdate Running background index task async 09.07.2015 08:13:42.963 *TRACE* [ pool-9-thread-1] org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexEditor [ /oak:index/lucene] Indexed document for /content/dam/site/test/jackrabbit-oak7.png/jcr:content/related is Document<stored,indexed,omitNorms,indexOptions=DOCS_ONLY<:path:/content/dam/site/test/jackrabbit-oak7.png/jcr:content/related> indexed,tokenized<:fulltext:related>> 09.07.2015 08:13:43.579 *DEBUG* [ pool-9-thread-1] org.apache.jackrabbit.oak.plugins.index.IndexUpdate Indexing report - /oak:index/siteDamIndex(2) - /oak:index/lucene(15) 09.07.2015 08:13:43.779 *TRACE* [ oak-lucene-0] org.apache.jackrabbit.oak.plugins.index.lucene.IndexTracker.perf [ /oak:index/siteDamIndex] Index found to be updated. Reopening the IndexNode [ took 150ms] 09.07.2015 08:13:45.248 *TRACE* [ oak-lucene-0] org.apache.jackrabbit.oak.plugins.index.lucene.IndexCopier.perf [ /oak:index/lucene] Copied 0 files totaling 0 B [ took 1465ms] 09.07.2015 08:13:45.248 *TRACE* [ oak-lucene-0] org.apache.jackrabbit.oak.plugins.index.lucene.IndexCopier [ /oak:index/lucene] opening remote only file segments.gen 09.07.2015 08:13:45.361 *TRACE* [ oak-lucene-0] org.apache.jackrabbit.oak.plugins.index.lucene.IndexTracker.perf [ /oak:index/lucene] Index found to be updated. Reopening the IndexNode [ took 1581ms]
-
일련의 스레드 덤프를 가져와 스택의 AsyncIndexUpdate가 포함된 스레드를 검색하면 인덱싱 시간 대부분이 사용된 위치를 확인하거나 인덱싱이 다른 스레드에서 대기 중인지 확인할 수 있습니다. 스레드 덤프를 가져오려면 이 문서를 참조하십시오.
-
부울 속성 saveDirectoryListing=true(Oak 1.0.16을 사용하는 경우에만, 이후 버전이 필요하지 않은 경우에)를 설정한 다음 /oak:index/lucene OOTB 인덱스에서 property excludedPaths=
[
/var, /etc/workflow/instances, /jcr:system]
을(를) 설정하여 최적화할 수 있습니다. -
모두 저장 을 클릭합니다.
-
사용자 지정 lucene 속성 인덱스를 만들 때 Oak 1.0.16을 사용하는 경우 saveDirectoryListing=true(부울)로 설정하고 includedPaths(문자열
[
]
) 속성을 설정하여 특정 경로만 인덱싱하도록 인덱스를 제한해야 합니다. -
이 URL
/system/console/configMgr/org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexProviderService
읽기 시 복사, 쓰기 시 복사(Oak 1.0.18 이상에서만 안전하게 사용) 및 "인덱스 파일 미리 가져오기"(Oak 1.0.18 이상에서만 사용)로 이동합니다.
실패한 리인덱싱 분석
-
비동기 인덱싱이 실패하고 비동기 인덱서 통계 JMX UI(아래 링크)를 확인하는 경우 LastIndexedTime이 이전 날짜 및 시간입니다.
http://localhost:4502/system/console/jmx/org.apache.jackrabbit.oak%3Aid%3D11%2Cname%3D"async"%2Ctype%3D"IndexStats"
-
리인덱싱이 실패하면 다음과 같은 루프로 이동합니다.
code language-none 08.01.2015 01:22:04.474 *INFO* [ pool-9-thread-2] org.apache.jackrabbit.oak.plugins.index.IndexUpdate Reindexing will be performed for following indexes [ /oak:index/damFileSize, /oak:index/lucene, /oak:index/cqLastModified] 08.01.2015 01:52:08.365 *INFO* [ pool-9-thread-5] org.apache.jackrabbit.oak.plugins.index.IndexUpdate Reindexing will be performed for following indexes [ /oak:index/damFileSize, /oak:index/lucene, /oak:index/cqLastModified] 08.01.2015 09:33:23.306 *INFO* [ pool-9-thread-5] org.apache.jackrabbit.oak.plugins.index.IndexUpdate Reindexing will be performed for following indexes [ /oak:index/damFileSize, /oak:index/lucene, /oak:index/cqLastModified]
-
이 경우
org.apache.jackrabbit.oak.plugins.index
에 대해 디버그 수준 로깅을 사용하도록 설정해야 합니다. -
다음에 인덱싱이 디버그 로그 메시지 위의 로그 메시지와 함께 반복되면 인덱싱이 실패한 이유에 대해 구체적으로 설명합니다. 그런 다음 손상된 노드, 누락된 Blob 또는 기타 문제 여부에 관계없이 문제를 해결할 수 있습니다.