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

提高Solr搜索并发性
EN

Stack Overflow用户
提问于 2015-03-06 12:25:30
回答 1查看 555关注 0票数 1

短篇小说:我不能从同一个客户端进程同时在solr5上运行两个以上的搜索(相同的故事和4.10)。配置文件中是否有我遗漏的标志?这是一个被证实的事实,它不是硬件问题或软件(客户)问题。完整的故事见下文。

说来话长:

我需要构建一个基于单词的搜索引擎(字段通常只包含一个单词/值--即使它是一个多值字段,所有值也只有一个单词),60%-70%的搜索没有通配符。预期的核心尺寸约为50K个文件,平均20个字段。该集合预计每周更新一次(可能更少)--所以我并不真正关心索引时间。我想我们可以安全地假设没有写,只要读-因此,我们可以最小化锁和其他并发问题的可能性。而且,在我的测试中,最“昂贵”的查询是(根据solr的qtime)大约150。我有一批10K随机生成的搜索,无论我在做什么,我不能在不到5分钟内完成它们。不管我在客户端打开了多少线程,无论我在配置文件中设置了什么值.处理器在30-40%的最高,只有30%的内存;

我试过的是:

  1. 基于3GB内存的单核虚拟机上的solr5 + jetty;
  2. solr5 +在具有6GB内存的双核虚拟机上丢弃(java为4GB);
  3. 双核虚拟机上的solr5 + tomcat6,内存为6GB;

对于#1和#2使用netstat -a -n | grep @port,在任何给定时间我只看到2个活动连接(已建立)--但没有更多,而对于#3,我在这2个活动连接之外还有其他10-15个处于TIME_WAIT模式(非活动)的连接。

我不知何故迷失在这..。我不是Java忍者,我也不喜欢java相关的产品及其配置。我使用了两个不同的servlet容器,它们几乎都有相同的问题。海事组织,很明显有人控制了主动的联系--我不知道该怎么做才能找出是谁和为什么。

顺便提一句--我不确定它是否重要--我在另一台机器上复制了同一台工具,同时开始了与机器上的“压力”测试,我注意到活动连接的数量翻了一番(通过netstat),资源仅略高于单机测试中的资源,并且这两台机器的执行时间是:5分钟。

那么,我应该怎么做才能取消这一限制--或者至少增加限制呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-06 13:33:38

和往常一样,问题就在椅子和键盘之间。:(

客户端是在C#中使用普通的旧WebRequest类完成的--它遵守对同一个地址进行并发HTTP调用的系统限制(以避免DOS)。

在阅读了this的文章之后,我意识到问题出在哪里。因此,app.config中的以下调整解决了这个问题:

代码语言:javascript
复制
<system.net>
    <connectionManagement>
        <add address = "*" maxconnection = "300" />
    </connectionManagement>
</system.net>

它用16个打开的线程在大约一分钟内完成了所有这些请求。活动连接在netstats中也是可见的。

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

https://stackoverflow.com/questions/28898752

复制
相关文章

相似问题

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