ES集群调优
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ES集群调优相关的知识,希望对你有一定的参考价值。
参考技术A 64GB RAM的机器是最理想的,少于8GB往往适得其反(你最终需要许多,许多小机器),大于64GB可能会有问题低延迟有助于确保节点可以轻松地进行通信,避免跨越多个数据中心的群集
可以临时设置sysctl -w vm.max_map_count=655300或者在/etc/sysctl.conf下永久设置vm.max_map_count。查看设置cat /proc/sys/vm/max_map_count
Elasticsearch 默认启动的集群名字叫 elasticsearch你最好给你的生产环境的集群改个名字,改名字的目的很简单, 就是防止某人的笔记本电脑加入了集群这种意外.
lasticsearch.yml 文件中修改:
每个节点设置一个有意义的、清楚的、描述性的名字
默认情况下,Elasticsearch 会把插件、日志以及你最重要的数据放在安装目录下。这会带来不幸的事故, 如果你重新安装 Elasticsearch 的时候不小心把安装目录覆盖了。如果你不小心,你就可能把你的全部数据删掉了。
minimum_master_nodes (还有一些其它配置)允许通过 API 调用的方式动态进行配置。 当你的集群在线运行的时候,你可以这样修改配置
防止集群节点重启后启动时间节点差异导致的数据迁移
集群节点有8个才可以对外服务
集群有10个节点,等待 5 分钟,或者10 个节点上线后,才进行数据恢复,这取决于哪个条件先达到。
设置堆的大小
bootstrap.memory_lock: true
node.master: true
node.data: true
action.destructive_requires_name: true
indices.query.bool.max_clause_count: 10240
http.cors.enabled: true
http.cors.allow-origin: "*"
indices.fielddata.cache.size: 30%
cat>>/etc/security/limits.conf<<EOF
echo "fs.file-max = 1000000" >> /etc/sysctl.conf
echo "vm.max_map_count = 262144" >> /etc/sysctl.conf
echo "vm.swappiness=10" >> /etc/sysctl.conf
echo "net.ipv4.tcp_max_tw_buckets = 262144" >> /etc/sysctl.conf
echo "vm.min_free_kbytes=1048576" >> /etc/sysctl.conf
echo "net.ipv4.ip_local_port_range = 51000 65000" >> /etc/sysctl.conf
sysctl -p
修改文件 /etc/systemd/system.conf
DefaultLimitNOFILE=65536
DefaultLimitNPROC=32000
DefaultLimitMEMLOCK=infinity
systemctl daemon-reload
ES集群性能调优链接汇总
ES集群稳定性:
1. 集群稳定性的一些问题(一定量数据后集群变得迟钝)
https://elasticsearch.cn/question/84
2.ELK 性能(2) — 如何在大业务量下保持 Elasticsearch 集群的稳定
http://www.cnblogs.com/richaaaard/p/6117089.html
以上是关于ES集群调优的主要内容,如果未能解决你的问题,请参考以下文章
elasticsearch 了解多少,说说你们公司 es 的集群架构,索 引数据大小,分片有多少,以及一些调优手段 。
elasticsearch 了解多少,说说你们公司 es 的集群架构,索 引数据大小,分片有多少,以及一些调优手段 ?