ES容易忽視的集羣配置

一 前言緩存

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

2、配置curl

一、ES的段合併是限速設置ui

默認是20MB/s ,若是是SSD磁盤建議增大:
```
PUT /_cluster/settings
{
"persistent" : {
"indices.store.throttle.max_bytes_per_sec" : "100mb"
}
}
```
若是臨時導入數據先能夠不要合併,再打開的時候合併:
```
PUT /_cluster/settings
{
"transient" : {
"indices.store.throttle.type" : "none"
}
}
```
導入數據完成none改爲merge。url

 二、fieldData 數據緩存限制排序

ES配置中提到的FieldData指的是字段數據。當排序(sort),統計(aggs)時,ES把涉及到的字段數據所有讀取到內存(JVM Heap)中進行操做。至關於進行了數據緩存,提高查詢效率,並且默認是不清除的,容易形成OOM。索引

![網上借來圖](https://upload-images.jianshu.io/upload_images/1737506-22b96a5bd4aec67d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
參考網上說明:
***上圖是ES的JVM Heap中的情況,能夠看到有兩條界限:驅逐線 和 斷路器。當緩存數據到達驅逐線時,會自動驅逐掉部分數據,把緩存保持在安全的範圍內。當用戶準備執行某個查詢操做時,斷路器就起做用了,緩存數據+當前查詢須要緩存的數據量到達斷路器限制時,會返回Data too large錯誤,阻止用戶進行這個查詢操做。 ***ip

```
PUT _cluster/settings
{
"persistent" :
{
"indices.breaker.fielddata.limit":"50%",
"indices.breaker.request.limit":"40%",
"indices.breaker.total.limit":"70%"
}
}
```內存

###三、去掉操做索引匹配符號
```
PUT /_cluster/settings
{
"persistent" : {
"action.destructive_requires_name":true
}
}it

```
禁止使用通配符,禁止的目的是爲了誤刪除。

默認狀況下,能夠經過如下方法刪除全部的索引:
```
curl -XDELETE http://localhost:9200/_all
curl -XDELETE http://localhost:9200/*
```
_all ,* 通配全部的索引 。
若是須要一次刪除多個索引 能夠經過將兩個索引名都寫進去,中間用逗號分隔。
好比:
``` curl -XDELETE http://localhost:9200/twitter,my_index ```

 3其餘說明 

   ES關閉一個索引的速度很是快,嘗試過關閉一個1T大小的索引,耗時只要十幾秒,打開也差很少的時間,只是在打開的時候回存在着集羣瞬間變紅,由於分片的分配須要過程。

相關文章
相關標籤/搜索