我将我的solr版本从1.4.0更新到4.6.0,现在我们遇到了几个性能问题。
a)如果我使用嵌入式版本,那就很慢了
b)使用http,我有平均时间:
c)我看到JavaBinCodec从版本1更改为2.任何人都知道这可能是问题吗?
注1:由于服务器的热身,我多次测试,第一次丢弃。
注2:返回的文件非常大(XML视图中的3k行,每个文档)
任何帮助都会被贬低。
用于测试的代码,显示代码为solr 4.6
public class Main {
private static HttpSolrServer server;
public static void main(String[] args) throws Exception {
String url = "http://foo.bar/myIndex";
server = new HttpSolrServer(url);
for (int i = 0; i < 10; i++) {
search();
}
}
public static void search() throws Exception {
SolrQuery solrQuery = new SolrQuery();
solrQuery.setQuery("foo:bar");
solrQuery.setStart(0);
solrQuery.setRows(20);
// QUERY
long before = new GregorianCalendar().getTimeInMillis();
server.query(solrQuery);
long after = new GregorianCalendar().getTimeInMillis();
System.out.println(after - before);
}
}
答案 0 :(得分:1)
Solr 4.6在Java 6或更高版本上运行。使用Java 7时,Solr建议至少安装Update 1,并且不鼓励-XX JVM选项的实验用法。最新版本的JVM可能会影响Solr的性能。您可以在下面的链接中概述由于JVM而导致的Solr问题。
http://wiki.apache.org/lucene-java/JavaBugs
CPU,磁盘和内存要求基于实现Solr时所做的许多选择(文档大小,文档数量和检索到的命中数等等)。
但是,如果您使用的是Zookeeper,则可以尝试多种方法来提高Solr的性能。