我刚刚从 apache 网站下载了 solr 4.8.0 到我的 ubuntu 12.04、64 位、3GB 内存 VPS 服务器并解压。然后我使用以下命令安装了 openjdk-7-jre:
sudo apt-get install openjdk-7-jre
当我尝试使用示例start.jar(/solr/example/start.jar)启动solr时
java -jar start.jar
我在控制台中得到很多输出,但大约 15 秒后,进程退出并显示最后几行:
2941 [coreLoadExecutor-4-thread-1] INFO org.apache.solr.core.CoreContainer ? registering core: collection1
2942 [main] INFO org.apache.solr.servlet.SolrDispatchFilter ? user.dir=/usr/local/solr/example
2943 [main] INFO org.apache.solr.servlet.SolrDispatchFilter ? SolrDispatchFilter.init() done
2967 [main] INFO org.eclipse.jetty.server.AbstractConnector ? Started [email protected]:8983
2972 [searcherExecutor-5-thread-1] INFO org.apache.solr.core.SolrCore ? [collection1] webapp=null path=null params={event=firstSearcher&q=static+firstSearcher+warming+in+solrconfig.xml&distrib=false} hits=0 status=0 QTime=30
2972 [searcherExecutor-5-thread-1] INFO org.apache.solr.core.SolrCore ? QuerySenderListener done.
2972 [searcherExecutor-5-thread-1] INFO org.apache.solr.handler.component.SpellCheckComponent ? Loading spell index for spellchecker: default
2972 [searcherExecutor-5-thread-1] INFO org.apache.solr.handler.component.SpellCheckComponent ? Loading spell index for spellchecker: wordbreak
2972 [searcherExecutor-5-thread-1] INFO org.apache.solr.handler.component.SuggestComponent ? Loading suggester index for: mySuggester
2972 [searcherExecutor-5-thread-1] INFO org.apache.solr.spelling.suggest.SolrSuggester ? reload()
2973 [searcherExecutor-5-thread-1] INFO org.apache.solr.spelling.suggest.SolrSuggester ? build()
2991 [searcherExecutor-5-thread-1] INFO org.apache.solr.core.SolrCore ? [collection1] Registered new searcher Searcher@3803cdb4[collection1] main{StandardDirectoryReader(segments_5:15:nrt _3(4.8):C42)}
Killed
root@myawsmhostname:/usr/local/solr/example#
它只是说被剛剛在最后一行,但我没有做任何事情,并且在运行时我也没有触摸键盘。
顺便说一句:我能够通过端口 8983 访问 Web UI。我甚至可以浏览该 UI,但 15-30 秒后——baam 进程就被终止了。_________。
有人知道这个问题或者知道解决方法吗?
我搜索了整个网络但没有找到解决方案,所以我认为这不是 solr 或 jetty 错误,而是 Java 或 Ubuntu 的问题。
答案1
检查启动应用程序的 Java 命令行上的 Java 内存设置。例如,您使用的-Xms
最小堆大小、 -Xmx
最大堆大小和-XX:MaxPermSize
“永久代”堆(不同的内存池)。如果您在此 3GB 服务器上不运行任何其他程序,则合理的值如下:
-Xms1024m -Xmx2048m -XX:MaxPermSize=256m
如果您不了解您的应用和 Java 内存调优的更多信息,您会发现这是一个反复试验的过程。您可能可以稍微增加 -Xmx 而不会耗尽内存。