首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >提高Solr性能

提高Solr性能
EN

Stack Overflow用户
提问于 2011-01-07 16:44:58
回答 2查看 3K关注 0票数 1

我部署了一个5分的基础架构,其中: shard1有3124422个文档shard2有920414个文档shard3有602772个文档shard4有2083492个文档shard5有11915639个文档索引总大小:100 has

操作系统是Linux (Fedora release 8),vMem等于7872420,我使用Jetty (从Solr示例下载)运行服务器: java -Xmx3024M -Dsolr.solr.home=multicore -jar start.jar

查询的响应时间大约为2-3秒。然而,如果我同时执行几个查询,性能会立即下降:1同时查询: 2516ms 2同时查询: 4250,4469 ms 3同时查询: 5781,6219,6219 ms 4同时查询: 6484,7203,7719,7781 ms...

使用JConsole监视服务器的java进程,我检查了堆内存和CPU使用率没有达到上限,所以服务器不应该过载。谁能给我一个方法,我应该如何调优实例,使其不那么依赖于同时查询的数量?

提前感谢

EN

回答 2

Stack Overflow用户

发布于 2011-01-08 12:11:36

您可能想要考虑为每个分片创建从属,以便可以支持更多的读取(请参阅http://wiki.apache.org/solr/SolrReplication),但是,您所获得的性能并不是很合理。

从您看到的响应时间来看,您的磁盘肯定是瓶颈。为每个分片加载足够的内存来容纳完整的索引(每个分片20 It?)可能会更便宜。您可以使用sysstat包中的'sar‘实用程序查看磁盘访问。如果在搜索进行期间,任何盘片上的磁盘利用率始终超过30%,这是一个好兆头,表明您需要添加一些内存,并让操作系统缓存索引。

你已经有一段时间没有运行过优化了吗?也许查找时间过长的部分原因是大量的碎片索引散布在整个盘片上。

票数 2
EN

Stack Overflow用户

发布于 2011-01-10 21:18:31

正如我在Solr mailinglist上所说的,3天前你问了同样的问题,Solr/Lucene从SSD中受益良多,虽然在更多的机器上进行分片或添加引导加载的RAM将适用于I/O,但SSD选项相对便宜且非常容易。

买一台英特尔X25 G2 (在NewEgg上售价409美元,160 G2)或一个新的基于SandForce的固态硬盘,把你现有的100 G2的索引放在上面,看看会发生什么。最多也就是半天的工作。如果它失败了,清理你的工作站的驱动器。你会对它给你带来的性能提升感到非常满意。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4623843

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档