2016-11-11 6 views
1

Solr Datacenterのsolr odeの1つが、高いCPUと高いI/Oを引き起こします。何らかの形で、それは他のsolrノードへの私のsolr問合せに影響します。私がノードを停止させるとCPUが高くなるので、通常の時間内にクエリが応答します。Datastax Enterprise 5.0.3 Solr高いCPUと高いI/O使用率で1つのノードで他のアイドル中

このリンクのおかげで、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> 

答えて

0

私はあなたのパーティショニングは、データ上のホットスポットにつながっていることを推測します。一般的な例は、時系列データをロードするときに、1日または1時間分バケットをつけることです。正味の効果は、一度に1つのノードだけがバケット期間中に使用されることです。

もう1つは、max_solr_concurrency_per_coreの値です。デフォルトは高すぎる可能性があります - 私は通常2に落とすことをお勧めします - そして、サーバーが最大になるまで徐々に増加します。メモリ、CPU、ディスクの面でのサーバーハードウェアの仕様はどうですか?

+0

私はsolrデータのための1つ、cassandraデータのための1つ、コミットログのためのssd、ハイパースレッドを持つ32コアの2つのraid1ディスクを持っています。確かに、私のmax_solr_concurrency_per_core = 2と私は非常にほとんどのユーザーがsolrを照会しています。 @nom de plume –

+0

私は通常、solrデータのためにssdsを取得しようとします。 次にデータモデルを調べることをおすすめします。スキーマを持っていますか?データの挿入方法を教えてください。 –

+0

私はssdの使用を検討していますが、Opscenterによると1つのノードに150GBのデータがありますが、solrディスクをチェックすると1.5TBのスペースが使われています。私は自分のスキーマの1つを入れます。他の人は同じスキーマを使います。 @Nom de plume –