Wir haben eine Solr 3.4-Instanz unter Windows 2008 R2 mit Oracle Java 6 Hotspot JDK, die nicht mehr reagiert. Als wir uns die Maschine ansahen, bemerkten wir, dass der verfügbare physische Speicher auf Null ging.
Der Tomcat7.exe-Prozess verwendete ~ 70Gigs (Privater Arbeitssatz), aber der Arbeitssatz (Speicher) verwendete den gesamten Speicher des Systems. Es gab keine Fehler in den Tomcat / Solr-Protokollen. Wir haben mit VMMap festgestellt, dass der Speicher für die Speicherzuordnung der Solr-Segement-Dateien verwendet wurde.
Ein Neustart von Tomcat hat das Problem vorübergehend behoben, aber es kam irgendwann zurück.
Wir haben dann versucht, die JVM-Größe zu verringern, um mehr Speicherplatz für die Speicherabbilddateien zu geben, aber dann reagiert der Solr schließlich mit der alten Generation bei 100% nicht mehr. Erneutes Zurücksetzen behebt das Problem, aber vor dem Zurücksetzen hat es keine Ausnahmebedingung ausgelöst.
Momentan sagt uns unser spitzköpfiger Sinn, dass der Cache bei Speicherdruck nicht schrumpft, und dass möglicherweise zu viele MappedByteBuffers herumliegen, so dass das Betriebssystem den Speicher nicht aus Speicherabbilddateien freigeben kann.
Es gibt zu viele Parameter und zu wenig Informationen, um bei Details zu helfen. Diese Antwort ist ebenso alt wie die erwähnten Systeme.
Hier sind einige Dinge, die in meiner Erfahrung geholfen haben:
Das liegt wahrscheinlich an der neuen Standard-Richtlinie, die SOLR für Verzeichnisse verwendet (es versucht, sie dem RAM oder etwas Ähnlichem zuzuordnen).
Lesen Sie dies:
Ссылка
Tags und Links memory-leaks jvm solr mmap