Problem

AEM stürzt mit dem Fehler „Zu viele geöffnete Dateien“ manchmal ab.

Lösung

Führen Sie zuerst die Schritte in diesem Artikel aus, um zu sehen, ob Ihre maximale Begrenzung der geöffneten Datei zu niedrig festgelegt ist.

Wenn Ihr ulimit -n mindestens 8192 ist, dann erfahren Sie möglicherweise ein bekanntes Problem, bei dem Überwachungsskripte im AEM dazu führen, dass Ihr System aufgrund eines Feilenheftlecks abstürzt.

Wenn Sie die Fehler unten in den Protokollen sehen, gehen Sie wie folgt vor:

14.03.2016 02:50:13.498 *ERROR* [Process Executor for diskusage.sh] com.adobe.granite.monitoring.impl.ShellScriptExecutorImpl Error while executing script /opt/publish/crx-quickstart/monitoring/diskusage.sh
java.io.IOException: Cannot run program "/opt/publish/crx-quickstart/monitoring/diskusage.sh" (in directory "/opt/publish/crx-quickstart/monitoring"): error=2, No such file or directory
        at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
        at java.lang.Runtime.exec(Runtime.java:620)
        at com.adobe.granite.monitoring.impl.ShellScriptExecutorImpl$ProcessExecutor.run(ShellScript ExecutorImpl.java:307)
        at java.lang.Thread.run(Thread.java:745)
Caused by: java.io.IOException: error=2, No such file or directory
        at java.lang.UNIXProcess.forkAndExec(Native Method)
        at java.lang.UNIXProcess.<init>(UNIXProcess.java:248)
        at java.lang.ProcessImpl.start(ProcessImpl.java:134)
        at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
        ... 3 common frames omitted
14.03.2016 02:50:13.500 *ERROR* [Shell Script Executor Thread for cpu.sh] com.adobe.granite.monitoring.impl.ShellScriptExecutorImpl Unable to extract script 'cpu.sh' to '/opt/publish/crx-quickstart/monitoring/cpu.sh'
java.io.FileNotFoundException: cpu.sh
        at com.adobe.granite.monitoring.impl.ShellScriptExecutorImpl.extractScript(ShellScriptExecut orImpl.java:177)
        at com.adobe.granite.monitoring.impl.ShellScriptExecutorImpl.execute(ShellScriptExecutorImpl .java:112)
        at com.adobe.granite.monitoring.impl.ScriptMBean.invoke(ScriptMBean.java:99)
        at com.adobe.granite.monitoring.impl.ScriptMBean.invoke(ScriptMBean.java:158)
        at com.adobe.granite.monitoring.impl.ScriptConfigImpl$ExecutionThread.run(ScriptConfigImpl.j ava:209)
        at java.lang.Thread.run(Thread.java:745)


Die Überwachungsskripte sind zusätzliche Threads in CQ (mit der Bezeichnung „Shell Script Executor Thread for ...“) die durch werkseitige Konfigurationen des „Adobe Granite Monitor“ gestartet/gestoppt werden.
Es gibt 2 gebrauchsfertig definierte Konfigurationen (cpu.sh- und diskusage.sh-Skripte).

Um dieses Problem zu beheben, können die Konfigurationen gelöscht werden:

AEM 6.x:

1. Als Administrator einloggen

2. Auf http://host:port/system/console/configMgr gehen

3. Nach com.adobe.granite.monitoring.impl.ScriptConfigImpl suchen. Es gibt auf Adobe Granite Monitor Handler zwei standardmäßige Konfigurationsknoten.

4. Löschen Sie diese beiden Konfigurationen

CQ5.x- CQ5.6.1:

Installieren Sie entweder das angehängte Paket oder führen Sie folgende Schritte aus:

  1. Melden Sie sich unter http://localhost:4502/crxde als Admin-Benutzer an.
  2. Navigieren Sie zu /libs/granite/monitoring/config
  3. Klicken Sie die rechte Maustaste und löschen Sie jeden Unterknoten von /libs/granite/monitoring/config.
  4. Klicken Sie auf „Alle Speichern“.
  5. Starten Sie CQ neu

Dies sollte die Konfigurationen entfernen und somit die Überwachung von Threads stoppen.

Hinweis:

Wenn die Konfigurationen über die Felix-Konsole geändert wurden, bleiben die Konfigurationen im Dateisystem bestehen.  In diesem Fall reicht das Löschen der Sling: wie oben beschrieben, reichen OsgiConfig-Knoten nicht aus, um die Konfiguration zu entfernen.
Öffnen Sie die Felix-Konsole (http://host:port/system/console/configMgr) und löschen Sie die werkseitigen Konfigurationen unter „Adobe Granite Monitor Handler“.

 

Gilt für

CQ5.5 und höher, AEM 6.x

Herunterladen

Dieses Werk unterliegt den Bedingungen der Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.  Twitter™- und Facebook-Beiträge fallen nicht unter die Bedingungen der Creative Commons-Lizenz.

Rechtliche Hinweise   |   Online-Datenschutzrichtlinie