一 前言
目前生產系統由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...