ES优化参考【分片、路由】

ES优化参考【分片、路由】,第1张

官方建议: Min(32GB,机器内存大小/2)。
磁盘需求最优比例=1:50 256g=12800G=13T
8G内存对应850=400G磁盘
总体内存大小没有具体要求,但肯定是内容越大,检索性能越好。
除了JVM之外的预留内存要充足,否则也会经常OOM。

集群节点数:<=3,建议:所有节点的master:true, data:true。既是主节点也是路由节点。
集群节点数:>3, 根据业务场景需要,建议:逐步独立出Master节点和协调/路由节点。

ES 集群中的数据节点负责对数据进行增、删、改、查和聚合等 *** 作,所以对 CPU、内存和 I/O 的消耗很大。
在搭建 ES 集群时,我们应该对 ES 集群中的节点进行角色划分和隔离。
候选主节点:nodemaster= true node data= false
数据节点:nodemaster= false node data= true

网络异常可能会导致集群中节点划分出多个区域,区域发现没有 Master 节点的时候,会选举出了自己区域内 Maste 节点 r,导致一个集群被分裂为多个集群,使集群之间的数据无法同步,我们称这种现象为脑裂。
为了防止脑裂,我们需要在 Master 节点的配置文件中添加如下参数:
discoveryzenminimum_master_nodes=(master_eligible_nodes /2)+1 //默认值为 1
其中 master_eligible_nodes 为 Master 集群中的节点数。这样做可以避免脑裂的现象都出现,最大限度地提升集群的高可用性。
只要不少于 discoveryzenminimum_master_nodes 个候选节点存活,选举工作就可以顺利进行,即保持至少一半节点存活。

建议根据数据量衡量。经验值:建议每个分片大小不要超过30GB。

单个索引分片数=数据量÷30g
每个节点建议的单个索引分片数<3:因为分片分布在同一个服务器上。请求开始竞争相同的硬件资源时, 性能便会逐步下降。
如果该索引分片数过多可以考虑业务需求是否需要分割索引。周表,天表,月表等划分。

注意:除非reindex *** 作,分片数是不可以修改的。

在Elasticsearch中,每个查询在每个分片的单个线程中执行。然而,可以并行处理多个分片,并可以在相同分片上执行多个查询和聚合。
小分片的利弊这意味着,在不涉及高速缓存时,最小查询延迟将取决于数据、查询的类型、分片的大小。查询大量小分片将使得每个分片的处理速度更快,但是随着更多的任务需要按顺序排队和处理,它不一定要比查询较小数量的更大的分片更快。如果有多个并发查询,则有很多小碎片也会降低查询吞吐量。

除非你对系统的健壮性有异常高的要求,比如:银行系统。可以考虑2个副本以上。否则,1个副本足够。
注意:副本数是可以通过配置随时修改的。

根据业务需要选择合适的类型,有利于节省空间和提升精度。Fetch方法只返回要查询的字段,对每组数据做校验,可以避免使用默认mapping的字段类型,增加写入速度、节省空间。

尽量避免使用nested或 parent/child,能不用就不用;nested query慢, parent/child query 更慢,比nested query慢上百倍;因此能在mapping设计阶段搞定的(大宽表设计或采用比较smart的数据结构),就不要用父子关系的mapping。如果一定要使用nested fields,保证nested fields字段不能过多,目前ES默认限制是50。
indexmappingnested_fieldslimit :50

ES 配置说明
配置文件:elasticsearchyaml。
ES 的配置信息有很多种,大部分配置都可以通过 elasticsearchyaml 和接口的方式进行。
下面我们列出一些比较重要的配置信息:

MySQL的cluster方案有很多官方和第三方的选择,选择多就是一种烦恼,因此,我们考虑MySQL数据库满足下三点需求,考察市面上可行的解决方案:
高可用性:主服务器故障后可自动切换到后备服务器可伸缩性:可方便通过脚本增加DB服务器负载均衡:支持手动把某公司的数据请求切换到另外的服务器,可配置哪些公司的数据服务访问哪个服务器
需要选用一种方案满足以上需求。在MySQL官方网站上参考了几种解决方案的优缺点


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/13507423.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-08-21
下一篇 2023-08-21

发表评论

登录后才能评论

评论列表(0条)

保存