ElastiStack成本优化策略降低开支的方法

在ElastiStack的使用过程中,成本优化是必不可少的一部分。以下是火车头采集器伪原创插件工具网小编的整理结果总结出的成本优化策略,可以帮助降低开支。1

在ElastiStack的使用过程中,成本优化是必不可少的一部分。以下是火车头采集器伪原创插件工具网小编的整理结果总结出的成本优化策略,可以帮助降低开支。

ElastiStack成本优化策略降低开支的方法

1. 磁盘I/O优化

磁盘I/O的性能直接影响到ElastiStack的稳定性和吞吐量。以下是一些优化磁盘I/O的技巧:

  • 使用SSD:固态硬盘(SSD)比机械磁盘快2倍。
  • 使用RAID0:条带化RAID会提高磁盘I/O,但需要注意的是,当一块硬盘故障时整个RAID就故障了。不应使用镜像或者奇偶校验RAID因为副本已经提供了这个功能。
  • 多块硬盘:使用多块硬盘,并允许ElastiStack通过多个path.data 目录配置把数据条带化分配到它们上面。
  • 避免远程挂载的存储:如NFS或SMB/CIFS,因为这会引入额外的延迟,对性能产生负面影响。

2. 分片策略

合理的分片策略对于控制成本和提高性能至关重要:

  • 合理设置分片数:分片和副本的设计为ElastiStack提供了支持分布式和故障转移的特性,但并不意味着分片和副本可以无限分配。需要考虑索引的总容量和每个分片占用的硬盘容量。一般来说,我们遵循的原则是控制每个分片占用的硬盘容量不超过ES的最大JVM的堆空间设置(一般设置不超过32G),因此,如果索引的总容量在500G左右,那分片大小在16个左右即可。
  • 考虑节点数量:如果分片数过多,大大超过了节点数,可能会导致一个节点上存在多个分片,一旦该节点故障,即使保持了1个以上的副本,同样有可能会导致数据丢失,集群无法恢复。
  • 推迟分片分配:对于节点瞬时中断的问题,可以通过修改参数delayed_timeout,可以延长再均衡的时间,可以全局设置也可以在索引级别进行修改。

3. 写入性能优化

写入操作也是影响成本的重要因素:

ElastiStack成本优化策略降低开支的方法

  • 加大TranslogFlush:目的是降低IOPS、Writeblock。
  • 增加IndexRefresh间隔:目的是减少SegmentMerge的次数。
  • 调整Bulk线程池和队列:优化节点间的任务分布。
  • 优化Lucene层的索引建立:目的是降低CPU及IO。

4. 集群节点规划

合理的节点规划有助于降低成本:

  • 数据节点:node.master=false, node.data=true ,该node服务器只作为一个数据节点,只用于存储索引数据。使该node服务器功能单一,只用于数据存储和数据查询,降低其资源消耗率。
  • 主节点:node.master=true, node.data=false ,该node服务器只作为一个主节点,但不存储任何索引数据。该node服务器将使用自身空闲的资源,来协调各种创建索引请求或者查询请求,讲这些请求合理分发到相关的node服务器上。
  • 负载均衡节点:node.master=false, node.data=false ,该node服务器既不会被选作主节点,也不会存储任何索引数据。该服务器主要用于查询负载均衡。

5. 机器设置

机器的内存设置也是一个重要的成本控制因素:

  • 预留一半内存给Lucene使用:一个常见的问题是配置堆太大。虽然有一个64GB的机器,觉得JVM内存越大越好,想给Elasticsearch所有64GB的内存。但是还需要留给Lucene一部分内存。标准的建议是把50%的内存给elasticsearch,剩下的50%也不会没有用处的,Lucene会很快吞噬剩下的这部分内存。
  • 避免大内存配置:即使有足够的内存,也尽量不要超过32G,因为它浪费了内存,降低了CPU的性能,还要让GC应对大内存。

以上策略可以帮助降低ElastiStack的成本开支。

原创文章,作者:Ur47000,如若转载,请注明出处:https://wyc.retuba.cn/26067.html

(0)
Ur47000Ur47000
上一篇 2024年6月16日 下午8:30
下一篇 2024年6月16日 下午8:30

相关推荐