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
    

비동기 인덱싱 성능 문제

  1. 로깅을 활성화하여 타이밍 확인:

    추적 수준(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]
    
  2. 일련의 스레드 덤프를 가져와 스택의 AsyncIndexUpdate가 포함된 스레드를 검색하면 인덱싱 시간 대부분이 사용된 위치를 확인하거나 인덱싱이 다른 스레드에서 대기 중인지 확인할 수 있습니다. 스레드 덤프를 가져오려면 이 문서를 참조하십시오.

  3. 부울 속성 saveDirectoryListing=true(Oak 1.0.16을 사용하는 경우에만, 이후 버전이 필요하지 않은 경우에)를 설정한 다음 /oak:index/lucene OOTB 인덱스에서 property excludedPaths=[ /var, /etc/workflow/instances, /jcr:system]을(를) 설정하여 최적화할 수 있습니다.

  4. 모두 저장 을 클릭합니다.

  5. 사용자 지정 lucene 속성 인덱스를 만들 때 Oak 1.0.16을 사용하는 경우 saveDirectoryListing=true(부울)로 설정하고 includedPaths(문자열[ ] ) 속성을 설정하여 특정 경로만 인덱싱하도록 인덱스를 제한해야 합니다.

  6. 이 URL /system/console/configMgr/org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexProviderService 읽기 시 복사, 쓰기 시 복사(Oak 1.0.18 이상에서만 안전하게 사용) 및 "인덱스 파일 미리 가져오기"(Oak 1.0.18 이상에서만 사용)로 이동합니다.

실패한 리인덱싱 분석

  1. 비동기 인덱싱이 실패하고 비동기 인덱서 통계 JMX UI(아래 링크)를 확인하는 경우 LastIndexedTime이 이전 날짜 및 시간입니다. http://localhost:4502/system/console/jmx/org.apache.jackrabbit.oak%3Aid%3D11%2Cname%3D"async"%2Ctype%3D"IndexStats"

  2. 리인덱싱이 실패하면 다음과 같은 루프로 이동합니다.

    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]
    
  3. 이 경우 org.apache.jackrabbit.oak.plugins.index에 대해 디버그 수준 로깅을 사용하도록 설정해야 합니다.

  4. 다음에 인덱싱이 디버그 로그 메시지 위의 로그 메시지와 함께 반복되면 인덱싱이 실패한 이유에 대해 구체적으로 설명합니다. 그런 다음 손상된 노드, 누락된 Blob 또는 기타 문제 여부에 관계없이 문제를 해결할 수 있습니다.

recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f