ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
### Elasticsearch优化 - 数据目录单独磁盘分区存放 - 最好RAID 10或RAID 0 ### JVM配置 /etc/elasticsearch/jvm.options ```shell -Xms2g #是指设定程序启动时占用内存大小 -Xmx2g #是指设定程序运行期间最大可占用的内存大小 ``` #### 建议设置一样大小,避免JVM的垃圾回收和内存的申请 ### 配置Elasticsearch内存锁 /etc/elasticsearch/elasticsearch.yml ```shell # 内存锁配置,避免使用swap分区 # 5.x开启还需要配置Elasticsearch的启动选项,否则启动失败 bootstrap.memory_lock: true ``` /usr/lib/systemd/system/elasticsearch.service ```shell #允许使用无限大的内存 LimitMEMLOCK=infinity ``` 修改elasticsearch.service需要重新加载 ```shell systemctl daemon-reload systemctl restart elasticsearch.service ``` >[官方文档](https://www.elastic.co/guide/en/elasticsearch/reference/5.5/setting-system-settings.html#systemd "官方文档") ### Elasticsearch数据迁移到新集群 #### 场景介绍 1台ES服务器hostA,一组新ES集群hostB,hostC,想讲hostA中的数据迁移至新集群,版本无变化 ##### 将hostB,hostC加入到hostA中 可行,但hostA想废弃,次方案放弃 ##### 将hostA中的数据目录拷贝到新集群 可行,但有以下注意事项 1.如hostA中的数据只能复制到新集群中的一台,因为数据目录保存了节点信息,如果hostB和hostC数据一样, 会冲突 ```shell [2017-09-07T10:35:22,521][INFO ][o.e.d.z.ZenDiscovery ] [node-1] failed to send join request to master [{master-1}{DJsZJ1WURqGX_1veHrxVNw}{G-L07qVPQiu9F1_5XTUt4A}{192.168.0.231}{192.168.0.231:9300}], reason [RemoteTransportException[[master-1][192.168.0.231:9300][internal:discovery/zen/join]]; nested: IllegalArgumentException[can't add node {node-1}{DJsZJ1WURqGX_1veHrxVNw}{ll64l0GAQ-ebOrsMSGJ5Cg}{192.168.0.232}{192.168.0.232:9300}, found existing node {master-1}{DJsZJ1WURqGX_1veHrxVNw}{G-L07qVPQiu9F1_5XTUt4A}{192.168.0.231}{192.168.0.231:9300} with the same id but is a different node instance]; ] ``` 2.集群要全部停止,然后先启动有数据的ES ### 故障一例(磁盘超过85%,ES会告警) https://www.elastic.co/guide/en/elasticsearch/reference/5.5/disk-allocator.html 可以选择ES配置中关闭检测 ```shell cluster.routing.allocation.disk.threshold_enabled: false ```