0

4 台のサーバー (48 GB RAM、24 コア、2.4 GHz のサーバー 2 台 && 64 GB RAM、24 コア、2.4 GHz のサーバー 2 台) があります。4 つのシャードを使用しています (各サーバーに 1 つのシャード)。各シャード インデックスのサイズは約 500 GB です。

edismax パーサー && サラウンド クエリ パーサーを使用して、フレーズ、近接、ワイルド カード検索を処理しています。

単純なワイルドカード/近接検索でも 10 ~ 20 秒かかります。

単一のサーバー (24 コア、64 GB RAM、2.4 GHz) で同じセットアップを行い、8 つのシャード (各シャード インデックス サイズは 250 GB) を使用します。

1 台のサーバーのセットアップのパフォーマンスは、4 台のサーバーのセットアップと比較して、ほぼ 2 倍 (より良い) です。

パフォーマンスを向上させるために 4 サーバーの solr クラウドをセットアップしましたが、パフォーマンスが低下しました。ここで不足している可能性のあるものはありますか?

4

1 に答える 1

1

この質問は、 solr を使用して検索する場合の CPU 使用率の姉妹のように見えますが、問題は同じです。クエリが非常に重いため、CPU バウンドです。クエリはシングル スレッド方式で各シャードに対して照合されるため、4 台のマシンのセットアップは、それぞれ 500 GB のインデックスで動作する 4 つのスレッドを持ち、単一のマシンのセットアップでは、それぞれ 250 GB のインデックスで動作する 8 つのスレッドを持つことを意味します。十分な数の CPU コアがあるため、小さいシャードでのセットアップが最初に終了します。

シャードをさらに分割して、たとえばそれぞれ 50GB にすると、40 個のシャードになります。マシンあたり 10 個のシャードを持つ 4 台のマシンに沿ってそれらを分割すると、フル CPU 速度で 2 つ (実際には 3 つほど) の同時要求をサポートできます。理想的には、1 台のマシンのセットアップの 5 倍の速度が得られるはずです。

于 2015-02-15T18:24:04.820 に答える