ES容易忽視的集群配置

2022-02-04 04:28:15 字數 1158 閱讀 9912

一 前言

目前生產系統由solr轉es了,在這邊就記錄下在使用過程中容易忽視的配置吧,其實我也是才用,如果有什麼錯誤的地方,多指正。

二、配置

1、es的段合併是限速設定

預設是20mb/s ,如果是ssd磁碟建議增大:

```put /_cluster/settings

}```

如果臨時匯入資料先可以不要合併,再開啟的時候合併:

```put /_cluster/settings

}```

匯入資料完成none改成merge。

2、fielddata 資料快取限制

es配置中提到的fielddata指的是字段資料。當排序(sort),統計(aggs)時,es把涉及到的字段資料全部讀取到記憶體(jvm heap)中進行操作。相當於進行了資料快取,提公升查詢效率,而且預設是不清除的,容易造成oom。

![網上借來圖](

參考網上說明:

***上圖是es的jvm heap中的狀況,可以看到有兩條界限:驅逐線 和 斷路器。當快取資料到達驅逐線時,會自動驅逐掉部分資料,把快取保持在安全的範圍內。當使用者準備執行某個查詢操作時,斷路器就起作用了,快取資料+當前查詢需要快取的資料量到達斷路器限制時,會返回data too large錯誤,阻止使用者進行這個查詢操作。 ***

```put _cluster/settings

}```

###3、去掉操作索引匹配符號

```put /_cluster/settings

}```

禁止使用萬用字元,禁止的目的是為了誤刪除。

預設情況下,可以通過以下方法刪除所有的索引:

```_all ,* 通配所有的索引 。

如果需要一次刪除多個索引 可以通過將兩個索引名都寫進去,中間用逗號分隔。

比如:``` curl -xdelete http://localhost:9200/twitter,my_index ```

3其他說明 

es關閉乙個索引的速度非常快,嘗試過關閉乙個1t大小的索引,耗時只要十幾秒,開啟也差不多的時間,只是在開啟的時候回存在著集群瞬間變紅,因為分片的分配需要過程。

MyISAM幾個容易忽視的配置選項

為什麼80 的碼農都做不了架構師?myisam在讀操作佔主導的情況下是很高效的。可一旦出現大量的讀寫併發,同innodb相比,myisam的效率就會直線下降,而且,myisam和innodb的資料儲存方式也有顯著不同 通常,在myisam裡,新資料會被附加到資料檔案的結尾,可如果時常做一些updat...

ES 集群配置

需要確認其它es節點中的data目錄,一定要清空,不能有資料。修改elasticsearch.yml這個配置檔案如下 配置集群名稱,保證每個節點的名稱相同,如此就能都處於乙個集群之內了 cluster.name es cluster 每乙個節點的名稱,必須不一樣 node.name es node1...

Linux C 容易忽視的錯誤

在使用pthread attr setstacksize函式時發現公司的專案全部設定錯誤,且全部沒有檢查返回值,這樣導致了建立執行緒時棧大小設定失敗,系統使用預設的棧大小來進行建立執行緒。手冊中明確指出,當設定的棧小於16k時,pthread attr setstacksize函式可以返回einva...