我有一个使用 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>
我在管理像您这样的大型索引(使用 Autonomy 搜索引擎)方面的经验是,100% CPU 是正常的。因为索引存储在 RAM 中,所以没有 I/O 活动来减慢搜索操作,CPU 将尝试尽快读取 RAM,这意味着接近 100% CPU。
为什么你希望你的搜索使用 50% 的 CPU,它会花费 2 倍的时间,对吗?
AIX 有一个名为 nmon 的性能监控工具。在里面nmon常见问题解答,作者提醒我们
如果你继续使用越来越短的
你最终会看到
CPU 要么 100% 繁忙,要么 100%
闲置所有其他号码只是一个
人类思维不快的特点
足够并且必须平均
CPU 使用时间较长。
即使您没有使用 AIX 作为操作系统,nmon FAQ 中也有很多关于系统/应用程序性能监控和测量的好信息。我推荐它,或者您更多地谷歌搜索如何诊断系统中的性能问题。
另外,您可能想在您的帖子中添加一些标签。 SO 有大量的基准测试和测试活动。
我希望这有帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)