AEM インデックス作成の問題の分析

この記事では、低速なクエリの分析、非同期インデックスの再インデックスの作成、AEMインデックス作成の問題のトラブルシューティング方法について説明します。

説明 description

環境

Adobe Experience Manager

問題/症状

一般的なインデックス作成の問題をすべてトラブルシューティングする方法を教えてください。

解決策 resolution

処理に時間のかかるクエリの分析

に移動中 ツール  > 運用  > ダッシュボード  > 診断  > クエリパフォーマンス が低速なクエリのリストを表示します。

詳しくは、 このドキュメント を参照してください。

非実稼動環境では、ACS 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. 有効なタイミングでのログを有効にします。

    TRACE Level(Oak 1.0.17 以降のみ):

    code language-none
    org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexEditorContext.perf
    

    DEBUG Level:

    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. Boolean プロパティ saveDirectoryListing=true を設定し(Oak 1.0.16 を使用し、後のバージョンが不要な場合にのみ)、プロパティ excludedPaths=を設定します。[ /var, /etc/workflow/instances, /jcr:system] /oak:index/lucene OOTB インデックス上で最適化します。

  4. すべて保存」をクリックします。

  5. Oak 1.0.16 を使用して includedPaths (String) を設定する場合は、カスタム lucene プロパティインデックスを作成する際に、必ず saveDirectoryListing=true (Boolean) を設定してください[ ] ) プロパティを使用して、特定のパスのインデックスのみを作成するようにインデックスを制限します。

  6. この URL に移動 /system/console/configMgr/org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexProviderService 「Copy on Read」、「Copy on Write」(Oak 1.0.18 以降で安全に使用できる場合のみ)、「Prefetch Index Files」(Oak 1.0.18 以降の場合のみ)

インデックス再作成の失敗を分析中

  1. 非同期インデックス作成が失敗した場合、 Async Indexer stats 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