2015-12-29 55 views
0

我有一個彈性搜索設置,其中192個活動指標的範圍從幾百MB到5GB不等。我讀到1gb索引的logstash用例,你應該只使用1個碎片。與我的設置不同的是,我將有更多的用戶(估計高達100)預計快速響應時間。我打算擁有1個可靠性副本。小指數Elasticsearch碎片分配

每個索引有1個碎片還是適合我的用例嗎?

+0

如果您擔心的主要問題是搜索性能,您可以輕鬆地添加或刪除副本,無需擔心小型索引搜索性能的分片大小 – vizgne

回答

1

總之:是的。

創建多個主分片的需求源於需要隔離文檔,極端計數(例如,當您處理數十億個文檔時)或提高寫入吞吐量(將文檔寫入更多位置,從而減少個人負擔)。

實際上,您希望基於您的用例分片,除非您是前兩種情況之一(隔離或極端計數)。

  • 你讀得很重嗎?
  • 你寫的很重嗎? (較少見,但它確實發生)

如果你正在讀沉重,因爲大多數用例,則有較少的碎片將幫助您通過限制請求大小(更少的地方看看)。鑑於您的碎片​​大小也相對較小(我認爲5 GB以下的任何碎片都相對較小),您可以輕鬆獲得一個碎片,並且這樣做應該有利於您的搜索性能。

共享相同映射但也很小(「幾百MB」)的索引應該可以結合使用如果您在其中搜索。如果他們是獨立的,那麼它確實沒有什麼區別,隔離聽起來像是一個良好的習慣,代價是略微膨脹你的集羣狀態(每個索引)。

+0

謝謝。是的,我可能會考慮將一些較小的組合在一起。我們打算在滾動的幾個月內關閉它們,但最好將它們作爲一個索引大批量關閉。 –

2

看看這個博客:https://qbox.io/blog/optimizing-elasticsearch-how-many-shards-per-index。他對分片和分片大小有很多好的指導。

然而,你真的應該問自己的問題是:它有多容易改變?當談到規模和可擴展性時,答案通常是「取決於」 - 而真正的問題是:您可以多快地重新配置?

這可以例如意味着你以某種方式設計你的應用程序,它允許將數據快速重新後臺處理到一個新的索引中,並使用別名,以便事實上可以在數據所在的位置更改這些內容(不僅在Elastic中,我希望)等等。

通過構建一個系統 - 從一開始 - 這樣您就可以快速重建索引,使您能夠測試大小 - 更重要的是 - 根據需要更改來更改它們。

+0

是的這是留給我這個問題的文章。我希望能夠建立一個快速的重新索引過程,儘管它在很大程度上取決於我給予的資源。 –