2014-12-24 57 views
2

我有一個12核心,2.4GHz和64GB內存的服務器。我有8個碎片,每個碎片在同一臺機器上大約有400GB大小。總索引佔用4TB SSD大約3TB的空間。Solr在同一臺機器上分片是否有用?

我使用像突出,刻面,分組和查詢性能Solr的一些複雜的操作是很慢(幾秒到分鐘)

如果我增加碎片的數量,並提高性能?無論如何改善性能,而不會在多臺機器上分割碎片?

回答

0

增加碎片的數量,可能會根據使用情況,降低性能。例如,每個分片可能必須檢索N個文檔才能夠滿足「給我N行」要求(因爲一個分片可能包含結果集中的所有文檔),所以存在使用分片的開銷成本。面對這將不得不在每個碎片上生成方面,然後將它們加入到回答查詢的碎片上,從而創建另一個開銷因素。

您可能還需要尋找到高速緩存的性能,看看你彈出每一次高速緩存(..並記住,你必須爲每個碎片一個高速緩存)。

爲您的要求,唯一可用的答案是「試試看」(實驗用不同的大小)。如果可能的話,我儘量避免創建人爲的本地碎片。 Sharding對於在一臺服務器上分配索引是非常有用的,而不是在一臺服務器上進行內部分發(儘管也有用例 - 但它並不像我所知的那樣是性能)。

SolrPerformanceProblemsSolrPerformanceFactors

+0

感謝。但是不是,如果我有很多小碎片,那麼它們很容易適合RAM(這會提高性能),而不是具有一個不適合RAM的巨大碎片? –

0

固態硬盤與隨機IO是Solr的需要有極大的幫助,但他們並不神奇。假設你也更新你的分片,對於3TB索引的64GB內存似乎不足以支持我。我猜測你的大部分內存只是用來運行Solr實例?

我們有一個多TB Solr的設置與磁盤高速緩存相對較少的可用內存。我們進行了一些測試,發現磁盤緩存中的索引從0.5%下降到0.1%時性能大幅下降。您設置的限制很可能是不同的,但如果你的盒子具有非常小的可用內存(我將手一揮,說10GB),我的猜測是,增加的RAM相對溫和的量(比方說32或64GB)會幫助很多。

相關問題