Unix solr/tomcat7不';撞车后我不能回来
我的服务器上不断出现Solr崩溃的问题。这几乎不是一个繁忙的网站,所以我很困惑为什么它一直这样做 无论如何,作为一个中介,我编写了一个shell脚本,作为根用户在cron上运行:Unix solr/tomcat7不';撞车后我不能回来,unix,solr,tomcat7,Unix,Solr,Tomcat7,我的服务器上不断出现Solr崩溃的问题。这几乎不是一个繁忙的网站,所以我很困惑为什么它一直这样做 无论如何,作为一个中介,我编写了一个shell脚本,作为根用户在cron上运行: #!/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 ))
#!/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
…然后这个cron(作为根)
cron本身似乎运行得很好:
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!!!
…而Tomcats的地位似乎还不错:
root@domain:~# 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.
…但我的脚本无法连接到Solr:
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.
如果我手动运行“重启”:
…然后它又开始工作了。这几乎就像我的shell脚本中的第二部分不起作用一样
有什么建议吗
我的Solr版本如下:
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
更新:我读到,有时更新maxThreads会有助于解决崩溃问题,因此我将其改为10000:
<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"
maxThreads="10000" SSLEnabled="true" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" />
我想时间会证明一切,看看这是否解决了问题。好吧,我从来没有弄清楚为什么它不能重新启动。。。但我已经弄明白了它为什么会崩溃。以前,我们在2048mb RAM Linode服务器上安装了它,但当我们转到Apache2时,我安装了一台1024Mb的服务器,并打算将其升级到2048mb的服务器,我们让它一切正常。然而,我们把它上线了——但是我忘了将它更新到2048mb服务器,所以Nginx/Apache2/Tomcat/MySQL等都试图在一个相当慢的服务器上运行 我们发现索尔死于一个OOM(内存不足)错误,这给了我们线索
希望这有助于其他人,他们可能会遇到这种情况。当Solr崩溃时,日志会怎么说?Solr的哪个版本?我在进入管理面板时遇到了一些问题。我输入:mysite.net:8080/solr,但它只是挂起(并最终给出一个“连接已超时”错误)。有点让人困惑,因为通过“lynx”在SSH中访问它,它工作正常(只是不是很漂亮或者很容易使用!)。我实际上无法计算出版本号,因为它只是一堆未格式化的文本:(@MatsLindh-我刚刚用新版本更新了我的帖子。Solr端口被阻止,这就是我无法进入管理面板的原因:)@TMBT-我不确定在何处查找日志文件,以找出答案:)
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
<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"
maxThreads="10000" SSLEnabled="true" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" />