ELK學習筆記之elasticsearch中 refresh 和flush區別
阿新 • • 發佈:2020-12-01
0x00 概述
elasticsearch中有兩個比較重要的操作:refresh 和 flush,兩個操作都涉及到資料操作和磁碟效能。
0x01 refresh操作
當我們向ES傳送請求的時候,我們發現es貌似可以在我們發請求的同時進行搜尋。而這個實時建索引並可以被搜尋的過程實際上是一次es 索引提交(commit)的過程,如果這個提交的過程直接將資料寫入磁碟(fsync)必然會影響效能,所以es中設計了一種機制,即:先將index-buffer中文件(document)解析完成的segment寫到filesystem cache之中,這樣避免了比較損耗效能io操作,又可以使document可以被搜尋。以上從index-buffer中取資料到filesystem cache中的過程叫做refresh。#es預設的refresh間隔時間是1s,這也是為什麼ES可以進行近乎實時的搜尋。refresh操作可以通過API設定: POST /index/_settings {“refresh_interval”: “10s”} # 當我們進行大規模的建立索引操作的時候,最好將將refresh關閉。 POST /index/_settings {“refresh_interval”: “-1″}