2
アクセスページが非常に遅く読み込まれ、error.logファイルキャッシュにメモリリーク関連のエラーが表示され、質問に表示されました。AEMインスタンスが処理できるJCRセッションの数。?AEMインスタンスで処理できるJCRセッションの数はいくつですか?
アクセスページが非常に遅く読み込まれ、error.logファイルキャッシュにメモリリーク関連のエラーが表示され、質問に表示されました。AEMインスタンスが処理できるJCRセッションの数。?AEMインスタンスで処理できるJCRセッションの数はいくつですか?
ResourceResolver
インターフェイスを使用し、Session
を使用しないでください。ResourceResolver
が提供されている場合や、アダプテーションを使用して1つのインスタンスを作成した場合は閉じないでください。ResourceResolverFactory
でResourceResolverを手動で作成する必要がある場合は、終了後に有効期限が切れて閉じられる必要があります。Session
に当てはまります。例:
package io.salihovic.florian.examples;
import javax.annotation.CheckForNull;
interface ResourceResolverTemplate {
@CheckForNull ResourceResolver getResourceResolver();
default void usage() {
final ResourceResolver resolver = this.getResourceResolver();
if (resolver != null) {
// do something
resolver.close();
}
}
}
ことが可能返答がないことを、非常に多くの要因に依存します。たとえば、リークの原因は何ですか? –
@FlorianSalihovic私たちはすべてのユーザーが接続され、開発されたコードベースを実行/テストしようとするDEVボックスを持っています。 (ほとんどのコードスニペットでは、データの種類のユースケースを確立して取得するためにJCRセッションが用意されています)、ページのテストにはほとんど負荷がかかりません。それで、JCRセッションを確認する方法があります。確立されているセッションの数とAEMサーバーが処理できる最大限の制限があります。 – VAr
ログに「CacheManager:resizeAll」のようなものがありますか?はいの場合は、次のコマンドを試してください:jmap -histo | grep SessionImplこれはあなたにセッションのリストを与えるはずです。私はそれが2つの主な要因、セッションの閉鎖率とオープン率の比率には下がっていると思う。セッションを閉じない不正なコードです。長時間実行されている操作が多すぎると、よく書かれたコードでもJCRセッションが増加する可能性があります(たとえば、Mongoのインストールが遅いなど)、システムの速度が遅くなります。 –