Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unix solr/tomcat7不';撞车后我不能回来_Unix_Solr_Tomcat7 - Fatal编程技术网

Unix solr/tomcat7不';撞车后我不能回来

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 ))

我的服务器上不断出现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 ))
    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" />