2016-03-26 4 views
0

Ich bekomme Probleme mit Solr Absturz auf meinem Server. Es ist kaum eine geschäftige Seite, also bin ich verblüfft, warum es so weiter macht.solr/tomcat7 kommt nicht wieder nach einem Absturz

Wie auch immer, als Vermittler - Ich bin ein Shell-Skript geschrieben, das auf einem cron als root läuft:

#!/bin/bash 

declare -a arr=(tomcat7 nginx mysql); 

for i in "${arr[@]}" 
do 
    echo "Checking $i" 
    if (($(ps -ef | grep -v grep | grep $i | wc -l) > 0)) 
    then 
    echo "$i is running!!!" 
    else 
    echo "service $i start\n" 
    service $i start 
    fi 
done 

# re-run, but this time do a restart if its still not going! 
for i in "${arr[@]}" 
do 
    echo "Checking $i" 
    if (($(ps -ef | grep -v grep | grep $i | wc -l) > 0)) 
    then 
    echo "$i is running!!!" 
    else 
    service $i restart 
    fi 
done 

..then diese cron (als root)

*/5 * * * * bash /root/script-checks.sh 

Die cron selbst scheint ganz gut zu laufen:

Checking tomcat7 
service tomcat7 start\n 
Checking nginx 
nginx is running!!! 
Checking mysql 
mysql is running!!! 
Checking tomcat7 
Checking nginx 
nginx is running!!! 
Checking mysql 
mysql is running!!! 

... und Tomcats Status scheint ok:

[email protected]:~# service tomcat7 status 
â tomcat7.service - LSB: Start Tomcat. 
    Loaded: loaded (/etc/init.d/tomcat7) 
    Active: active (exited) since Mon 2016-03-21 06:33:28 GMT; 4 days ago 
    Process: 2695 ExecStart=/etc/init.d/tomcat7 start (code=exited, status=0/SUCCESS) 

Warning: Journal has been rotated since unit was started. Log output is incomplete or unavailable. 

... doch mein Skript kann nicht auf Solr verbinden:

Could not parse JSON response: malformed JSON string, neither tag, array, object, number, string or atom, at character offset 0 (before "Can't connect to loc...") at /srv/www/domain.net/www/cgi-bin/admin/WebService/Solr/Response.pm line 42. Can't connect to localhost:8080 Connection refused at /usr/share/perl5/LWP/Protocol/http.pm line 49. 

Wenn ich manuell einen "Neustart" laufen:

service tomcat7 restart 

... es dann zu arbeiten beginnt nochmal. Es ist fast wie der zweite Teil in meinem Shell-Skript funktioniert nicht.

Irgendwelche Vorschläge?

Meine Solr Versionen sind wie folgt:

Solr Specification Version: 3.6.2.2014.10.31.18.33.47 
Solr Implementation Version: 3.6.2 debian - pbuilder - 2014-10-31 18:33:47 
Lucene Specification Version: 3.6.2 

UPDATE: Ich habe manchmal gelesen, dass die maxThreads Aktualisierung mit Abstürzen helfen kann, so habe ich es auf 10.000 geändert:

<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol" 
      maxThreads="10000" SSLEnabled="true" scheme="https" secure="true" 
      clientAuth="false" sslProtocol="TLS" /> 

Ich denke, die Zeit wird es zeigen, um zu sehen, ob dies das Problem behebt.

+1

Was sagen die Protokolle über Solr, wenn es abstürzt? – TMBT

+0

Welche Version von Solr? – MatsLindh

+0

Ich habe ein Problem mit dem Admin-Panel. Ich gebe ein: mysite.net:8080/solr, aber es hängt nur (und gibt schließlich einen "* Die Verbindung hat Zeitüberschreitung *" Fehler). Etwas verwirrend, wenn man in SSH über "lynx" darauf zugreift, funktioniert es ok (einfach nicht sehr schön oder einfach zu benutzen!). Ich kann die Versionsnummer eigentlich nicht herausfinden, da es nur eine Ladung Text nicht schön formatiert :( –

Antwort

0

Ok, nun, ich bin nie auf den Grund gekommen, warum es nicht neu starten würde ... aber ich habe herausgefunden, warum es abgestürzt ist. Vorher hatten wir es auf 2048mb RAM Linode Server, aber als wir zu Apache2 übergingen, habe ich einen 1024Mb Server eingerichtet und wollte ihn auf 2048Mb upgraden, wovon wir alle funktionierten. Allerdings haben wir es live gestellt - aber ich habe vergessen, es auf den 2048mb Server zu aktualisieren, also Nginx/Apache2/Tomcat/MySQL usw., alle versuchten auf einem ziemlich langsamen Server zu laufen.

Wir fanden, dass Solr mit einem OOM-Fehler (nicht genügend Speicher) starb, was uns den Schlüssel dazu gab.

Hoffentlich hilft das jemand anderem, der auf dieses stoßen kann.

Verwandte Themen