Elasticsearch集群性能优化:减副本增写入速度实践

版权申诉
5星 · 超过95%的资源 9 下载量 105 浏览量 更新于2024-09-10 收藏 650KB PDF 举报
"Elasticsearch进阶(一)写入性能基准测试写入性能优化" 本文主要探讨了Elasticsearch集群的写入性能优化,通过一系列基准测试来确定最佳配置。在进行性能测试前,首先确认了集群的工作状态,观察了不同节点的数据分布情况,强调了多分片和副本在分布式搜索中的重要性。 测试环境描述如下: 操作系统:macOS 10.13.4 处理器:2.3 GHz Intel Core i5 内存:8 GB 2133 MHz LPDDR3 存储设备:SSDs 作者引用了jamesjxin博客的建议,提到性能测试应持续30分钟以上,以充分观察segment合并和垃圾回收(GC)对性能的影响,但作者由于时间限制并未执行长时间测试。 优化的背景是需要将约5亿条数据(总计约1TB)导入Elasticsearch集群,初步测试显示这可能需要大约56小时。作者首先在单台机器上进行基准测试,该机器配置为: 操作系统:CentOS 6.9 处理器:Intel(R) Xeon(R) CPU E5-2620 v2 @ 2.10GHz 内存:48 GB 测试包括以下几个方面: 1. 创建索引diglab_1,设置副本数,观察用时。发现副本数增加会导致存储占用增加,但对写入速度影响不大。 2. 创建索引diglab_2,使用默认设置,与diglab_1相比,写入速度提高了约12%。 3. 进一步降低副本数(diglab_3),设置为1,写入速度提高了20%,表明副本复制可能是性能瓶颈。 4. 测试分片数对写入速度的影响(diglab_4)。发现分片数增加会导致写入速度变慢,但考虑到对查询性能的影响,决定将后续测试的分片数设为默认值5。 5. 调整bulk批量提交的大小,增大chunk_size。测试显示,增大到8000和50000条记录时,写入速度有所提升,但提升并不显著。 为了更准确地评估性能改进,作者将测试数据集扩大为之前的三倍,并继续基于之前的测试结果进行调整。测试数据包括10万条和20万条数据的文件。 这篇文章讨论了Elasticsearch集群中影响写入性能的关键因素,如副本数量、分片数以及bulk批量提交的大小,并通过实际测试提供了关于如何优化这些参数以提高写入速度的见解。