elasticsearch 配置篇
配置
在es啟動之前可以通過設定啟動命令列啟動引數、環境變數、檔案等方式優化和配置es進行引數
環境變數
名稱 | 示例 | 說明 |
---|---|---|
ES_MIN_MEM | 256M | 用於配置java程式分配的最小記憶體 |
ES_MAX_MEM | 1G | 用於配置java程式佔用的最大記憶體 |
ES_HEAP_SIZE | 32G | 設定ES_MIN_MEM,ES_MAX_MEM使用相同大小,ES推薦該配置並啟用mlockall |
ES_DIRECT_SIZE | 2G | 直接記憶體並不是虛擬機器執行時資料區的一部分,在nio中引入了基於通道和緩衝區的I/O方式,它可以使用native函式直接分配堆外記憶體,然後通過儲存在java堆中的DirectByteBuffer物件作為這塊記憶體的引用進行操作 |
ES_USE_IPV4 | not empty/empty | 表示只使用IPV4, 若定義且值不為空則表示true |
系統配置
- 設定系統允許開啟的檔案描述符數量,建議設定為32k或64k, 可通過命令ulimit -n進行查詢,示例:
ulimit -n 65535
後重啟服務
可以在啟動時新增引數-Des.max-open-files=true檢視允許開啟的檔案描述符數量
也可以通過RESTAPI檢視nodes資訊,輸入:GET /_nodes/process?pretty
輸出:
{
"cluster_name": "elasticsearch",
"nodes": {
"eE4eHSOWTK-j6IO7JJzcDQ": {
"name": "Specialist",
"transport_address": "inet[silence/192.168.1.111:9300]",
"host": "silence",
"ip": "192.168.1.111",
"version": "1.6.0",
"build": "cdd3ac4",
"http_address": "inet[/192.168.1.111:9200]",
"process": {
"refresh_interval_in_millis": 1000,
"id": 6212,
"max_file_descriptors": -1,
"mlockall": false
}
}
}
}
虛擬記憶體設定
es採用混合的mmapfs/niofs目錄預設儲存索引,在mmap計數太低時可能導致儲存器異常,可通過sysctl vm.max_map_count查詢,需要設定使用命令sysctl -w vm.max_map_count=262144
或者在/etc/sysctl.conf中進行永久設定
記憶體設定
在作業系統為儘量多的使用記憶體,會將不用的應用程式記憶體換出儲存在swap檔案系統中,交換會降低系統的效能和節點的穩定性,需要禁止,可通過三種方法進行設定:
禁用swap分割槽
在linux中可通過swapoff -a
或在/etc/fstab中註釋所有行中swap的內容
在windows中在"系統屬性"->"高階"->"效能"->"高階"->"虛擬記憶體"中設定配置swappiness
通過sysctl vim.swappiness=0減少核心進行的swap交換mlockall
在*nux上使用mlockall或者在window上使用VirtualLocx儘量鎖定程式的地址空間到RAM,防止es記憶體被換出,可通過elasticsearch.yml進行配置
在es配置檔案中新增:bootstrap.mlockall: true
並重啟服務即可
通過RESTAPI檢視nodes資訊,輸入:GET /_nodes/process?pretty
在*nux系統下可能有兩個原因導致mlockall設定失敗:
1.es程式所屬使用者不具有鎖定記憶體的許可權,需要使用ulimit -l進行設定
2./tmp目錄設定了noexec選項,可通過在啟動es時設定-Djna.tmpdir=/path/to/new/dir解決
es配置
在ES_HOME/conf目錄下兩個配置檔案分別為elasticsearch.yml和logging.yml, elasticsearch.yml為es所有模組提供配置, logging.yml為日誌記錄提供配置
- elasticsearch.yum解讀
1.network設定
network.host: 設定bind host和publish
2.path設定
path.logs: 設定日誌儲存目錄
path.data: 設定資料儲存目錄
3.cluster設定
cluster.name: 設定叢集標識
4.node設定
node.name: 設定節點標識
5.index設定
es支援建立儲存到記憶體中的索引,可以在建立索引或者在程式啟動時指定預設儲存方式
a.在yum配置檔案中配置index.store.type:memory
b.在es程式啟動時通過引數-Des.index.store.type=memory設定
c.在建立index時通過引數提交,輸入:
PUT http://localhost:9200/m_index_test2/
{
"index" :{
"store": {
"type": "memory"
}
}
}
說明:儲存在記憶體中的索引在重啟伺服器後資料會丟失
6.在yum配置檔案中可設定為環境變數的引用,比如在環境變數中定義節點的名稱ES_NODE_NAME, 則可在yum配置檔案中設定node.name=${ES_NODE_NAME}
7.可在es程式啟動時通過程式啟動引數進行設定,如-Des.node.name=silence
8.可以在es程式啟動時通過-Des.config=/path/to/config/file重新指定config檔案
- logging.yum配置可參考log4j
相關文章
- 寫了一篇 Elasticsearch 的配置教程Elasticsearch
- Elasticsearch 第九篇:叢集配置與搭建Elasticsearch
- ElasticSearch(提高篇)Elasticsearch
- elasticsearch 入門篇Elasticsearch
- Debezium kafka elasticsearch 配置KafkaElasticsearch
- elasticsearch配置注入索引Elasticsearch索引
- Elasticsearch第五篇:PlainElastic.Net 操作 ElasticsearchElasticsearchAI
- Docker Elasticsearch 叢集配置DockerElasticsearch
- ElasticSearch之網路配置Elasticsearch
- Elasticsearch開篇-環境搭建Elasticsearch
- 【ElasticSearch篇】--ElasticSearch從初識到安裝和應用Elasticsearch
- elasticsearch.yml 配置說明Elasticsearch
- Elasticsearch 引數配置說明Elasticsearch
- 【ElasticSearch】給ElasticSearch資料庫配置慢查詢日誌Elasticsearch資料庫
- Elasticsearch的配置學習筆記Elasticsearch筆記
- ElasticSearch(單節點)環境配置Elasticsearch
- Elasticsearch7.x配置檔案Elasticsearch
- Elasticsearch 9200自動配置Elasticsearch
- Elasticsearch常用配置及效能引數Elasticsearch
- Elasticsearch 近義詞詞庫配置Elasticsearch
- elasticsearch 6.x 與elasticsearch 7.x 配置與使用(Java)ElasticsearchJava
- ElasticSearch必知必會-進階篇Elasticsearch
- ElasticSearch第二篇:視覺化頁面進階Kibana,windows下安裝,配置Elasticsearch視覺化Windows
- Elasticsearch 的安裝和簡單配置Elasticsearch
- Elasticsearch 索引的對映配置詳解Elasticsearch索引
- Elasticsearch分散式搜尋叢集配置Elasticsearch分散式
- Elasticsearch學習,請先看這一篇!Elasticsearch
- Laravel 54 配置 Elasticsearch 時的報錯提示LaravelElasticsearch
- Centos7下安裝配置elasticsearch 6.3.1CentOSElasticsearch
- Elasticsearch Lucene 資料寫入原理 | ES 核心篇Elasticsearch
- Elasticsearch 第六篇:聚合統計查詢Elasticsearch
- 某行日誌平臺 Elasticsearch 運維基礎篇Elasticsearch運維
- ElasticSearch生命週期管理-索引策略配置與操作Elasticsearch索引
- Centos 7安裝和配置 ElasticSearch入門小白CentOSElasticsearch
- docker安裝elasticsearch+kibana+密碼配置DockerElasticsearch密碼
- Elasticsearch 7.x 安裝及配置指導Elasticsearch
- Elasticsearch 的配置與使用,為了全文搜尋Elasticsearch
- 《ElasticSearch入門》一篇管夠,持續更新Elasticsearch