1. 背景
前段時間,爲了降低用戶使用ElasticSearch的存儲成本,我們做了數據的冷熱分離。爲了保持集羣磁盤利用率不變,我們減少了熱節點數量。ElasticSearch集羣開始出現寫入瓶頸,節點產生大量的寫入rejected,大量從kafka同步的數據出現寫入延遲。我們深入分析寫入瓶頸,找到了突破點,最終將Elasticsearch的寫入性能提升一倍以上,解決了ElasticSearch瓶頸導致的寫入延遲。這篇文章介紹了我們是如何發現寫入瓶頸,並對瓶頸進行深入分析,最終進行了創新性優化,極大的提升了寫入性能。
2. 寫入瓶頸分析
2.1 發現瓶頸
我們去分析這些延遲問題的時候,發現了一些不太好解釋的現象。之前做性能測試時,ES節點cpu利用率能超過80%,而生產環境延遲索引所在的節點cpu資源只使用了不到50%,集羣平均cpu利用率不到40%,這時候IO和網絡帶寬也沒有壓力。通過提升寫入資源,寫入速度基本沒增加。於是我們開始一探究竟,我們選取了一個索引進行驗證,該索引使用10個ES節點。從下圖看到,寫入速度不到20w/s,10個ES節點的cpu,峯值在40-50%之間。
爲了確認客戶端資源是足夠的,在客戶端不做任何調整的情況下,將索引從10個節點,擴容到16個節點,從下圖看到,寫入速度來到了30w/s左右。
原文鏈接:【https://www.infoq.cn/article/A4UPdRLSGeVVO8kpMAJZ】。未經作者許可,禁止轉載。