2016-12-16 41 views
0

我們對我們的應用程序使用Elastic Search Nest客戶端,我們在將文檔插入Elastic Search數據庫時進行負載測試測試,發現存在性能問題。使用彈性搜索嵌套插入數據時的性能問題

指數2KB容量,碎片數5,副本1,單實例DB(無集羣)

最終結果統計針鋒相對,我們可以能夠插入每秒只有3條記錄..這是預期的結果?

當我們增加客戶端線程,結果變成了2條每秒,好心建議

測試用例

5並行線程,。它花了約50分鐘,每次線程同步推記錄(10000)(每個線程),每秒插入3條記錄。

我在應用程序啓動時創建了N個(此測試用例爲5個)客戶端,並將其重用於所有請求。

服務器詳細信息: 16GB內存,64位操作系統,英特爾酷睿i7處理器,在Windows Server 2008 R2,500 GB硬盤

客戶機: 16GB內存,64位操作系統,英特爾酷睿i7處理器,Windows 7專業版

回答

1

如果您未使用批量API,則無法獲得良好的性能。 從5.0開始,我們fsync磁盤上的每一個請求。

可以包含例如10 000個索引請求的批量請求將是fsync一次。 10 000個索引請求將生成10 000個fsync操作。

例如,在我的數據集,從2.X切換到5.x我觀察到以下結果:

  • 單索引操作:

    • 2.X:200文檔/秒
    • 5.0:20文檔/秒
  • 批量操作:

    • 2.X:12000-15000文檔/秒
    • 5.0:12000-16000文檔/秒

你可以,如果你想改變index.translog.durability指數設置爲async,但是如果出現問題,您將冒數據丟失的風險。

查看更多about Translog