当我使用SOLR查询所有文档时,为什么CPU使用率接近100%

时间:2011-04-20 19:00:33

标签: solr cpu-usage

我有一个应用程序使用SOLR来查询200万个文档并按时间排序。 查询URL参数如此/select?sort=p_review_date desc&rows=10&start=0&q=*:*,参数start是变量值,每个请求增加10。 当我进行性能压力测试时,SOLR服务器CPU使用率接近100%。

问题: 1.什么原因导致高CPU使用率? 2.有没有办法降低CPU使用率,例如缓存或其他配置。

这是solrconfig.xml中查询缓存配置的一部分     1024     

<queryResultCache
    class="solr.LRUCache"
    size="40960"
    initialSize="10240"
    autowarmCount="512"/>

<documentCache
    class="solr.FastLRUCache"
    size="40960"
    initialSize="10240"
    autowarmCount="0"/>

<enableLazyFieldLoading>true</enableLazyFieldLoading>

<queryResultWindowSize>10</queryResultWindowSize>

<queryResultMaxDocsCached>500</queryResultMaxDocsCached>

2 个答案:

答案 0 :(得分:3)

我管理像你这样的大型索引(使用Autonomy搜索引擎)的经验是,预计会有100%的CPU。因为您的索引存储在RAM中,所以没有I / O活动来减慢搜索操作的速度,CPU将尝试尽可能快地读取RAM,这意味着接近100%的CPU。

为什么你希望你的搜索使用50%的CPU,这需要2倍的时间,对吗?

有一个名为nmon的AIX性能监视工具。在FAQ for nmon中,作者提醒我们

  

如果你继续使用更短更短的时间   你最终会看到的时期   CPU是100%忙或100%   闲置所有其他号码只是一个   人类没有快速思考的特征   足够,不得不平均   CPU使用时间较长。

即使你没有使用AIX作为你的操作系统,nmon常见问题解答中有很多关于系统/应用程序性能监控和测量的好信息。我推荐它,或者你更多地了解如何诊断系统中的性能问题。

此外,您可能希望在发布中添加一些标签。在SO进行基准测试和测试时,有相当多的活动。

我希望这会有所帮助。

答案 1 :(得分:0)

编辑您的solrconfig.xml并更改maxWarmingSearchers的值:

<maxWarmingSearchers>50</maxWarmingSearchers>