Datastax Enterprise 5.0.3 Solr在一个节点上具有高CPU和高I / O使用率,而其他节点处于空闲状态

时间:2016-11-11 23:47:15

标签: performance solr datastax datastax-enterprise

我的Solr Datacenter中的一个solr ode导致高CPU和高I / O.在某种程度上,它会影响我对其他solr节点的solr查询。当我停止节点导致高CPU时,我的查询在正常时间响应。

感谢此链接https://github.com/patric-r/jvmtop我能够获取该数据。我也看到节点索引的东西,但solr数据中的其他节点没有负载。负载为0-2,而故障节点有20负载。

   1273 http-serveripaddress-8983-5           RUNNABLE 51.16%     1.87%
   3821 http-serveripaddress-8983-14          RUNNABLE 50.41%     0.95%
   1259 http-serveripaddress-8983-2           RUNNABLE 48.68%     2.49%
   1295 http-serveripaddress-8983-7           RUNNABLE 48.10%     1.87%
   3825 http-serveripaddress-8983-18          RUNNABLE 14.15%     0.75%
   1308 http-serveripaddress-8983-9           RUNNABLE 14.13%     4.44%
   3486 http-serveripaddress-8983-11          RUNNABLE 13.38%     1.04%
   1258 http-serveripaddress-8983-1           RUNNABLE 12.52%     2.03%
   1264 http-serveripaddress-8983-4           RUNNABLE 12.07%     1.68%
   1296 http-serveripaddress-8983-8           RUNNABLE 12.04%     3.75%
    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<schema name="autoSolrSchema" version="1.5">
<types>
<fieldType class="org.apache.solr.schema.StrField" name="StrField"/>
<fieldType class="org.apache.solr.schema.TrieDoubleField" name="TrieDoubleField"/>
<fieldType class="org.apache.solr.schema.TrieIntField" name="TrieIntField"/>
<fieldType class="org.apache.solr.schema.TrieDateField" name="TrieDateField"/>
<fieldType class="org.apache.solr.schema.TrieLongField" name="TrieLongField"/>
</types>
<fields>
<field indexed="true" multiValued="false" name="st" stored="true" type="StrField"/>
<field indexed="true" multiValued="false" name="twd" stored="true" type="TrieDoubleField"/>
<field indexed="true" multiValued="false" name="ctr" stored="true" type="StrField"/>
<field indexed="true" multiValued="false" name="us" stored="true" type="StrField"/>
<field indexed="true" multiValued="false" name="tsb" stored="true" type="TrieDoubleField"/>
<field indexed="true" multiValued="false" name="btrg" stored="true" type="TrieIntField"/>
<field indexed="true" multiValued="false" name="cty" stored="true" type="StrField"/>
<field indexed="true" multiValued="false" name="hc" stored="true" type="TrieIntField"/>
<field indexed="true" multiValued="false" name="isp" stored="true" type="StrField"/>
<field indexed="true" multiValued="false" name="cnt" stored="true" type="StrField"/>
<field indexed="true" multiValued="false" name="scid" stored="true" type="StrField"/>
<field indexed="true" multiValued="false" name="cip" stored="true" type="StrField"/>
<field indexed="true" multiValued="false" name="sid" stored="true" type="StrField"/>
<field indexed="true" multiValued="false" name="pd" stored="true" type="TrieDateField"/>
<field indexed="true" multiValued="false" name="uid" stored="true" type="StrField"/>
<field indexed="true" multiValued="false" name="lfn" stored="true" type="StrField"/>
<field indexed="true" multiValued="false" name="devg" stored="true" type="StrField"/>
<field indexed="true" multiValued="false" name="str" stored="true" type="StrField"/>
<field indexed="true" multiValued="false" name="tcc" stored="true" type="TrieLongField"/>
<field indexed="true" multiValued="false" name="strg" stored="true" type="StrField"/>
<field indexed="true" multiValued="false" name="dev" stored="true" type="StrField"/>
<field indexed="true" multiValued="false" name="lfs" stored="true" type="StrField"/>
<field indexed="true" multiValued="false" name="cid" stored="true" type="TrieIntField"/>
<field indexed="true" multiValued="false" name="btr" stored="true" type="TrieIntField"/>
</fields>
<uniqueKey>(cid,pd,scid,lfn,lfs,uid,sid,cip,strg,str,st,btrg,btr,hc,us,devg,dev,cnt,ctr,cty,isp)</uniqueKey>
</schema>

1 个答案:

答案 0 :(得分:0)

我猜你的分区会导致你的数据出现热点。一个常见的例子是在加载时间序列数据时按天或小时进行填充。实际效果是在桶期间一次只能使用一个节点。

要看的另一件事是max_solr_concurrency_per_core的值。默认值可能太高 - 我通常建议将其降至2 - 然后逐渐增加,直到服务器最大化。在内存,cpus和磁盘方面,您的服务器硬件规格是什么?