Elasticsearch写入性能优化:减副本增批量

0 下载量 129 浏览量 更新于2024-08-31 收藏 650KB PDF 举报
"Elasticsearch集群的正确工作状态验证,以及针对写入性能的基准测试和优化策略。" 本文主要探讨了如何确保Elasticsearch集群的正常运行,并进行了写入性能的基准测试,以优化大量数据的上传效率。在进行性能优化前,作者首先验证了集群的状态,通过观察各节点的数据分布情况,确认了数据目录的工作状态以及数据的一致性。在IP10、IP12和IP13节点上的数据分布和副本设置被详细分析,而IP11则被识别为非master候选节点且不存储数据。 在测试环境中,作者使用了一台配备了特定硬件配置的macOS系统,包括2.3GHz的Intel Core i5处理器和8GB的内存,以及固态硬盘。尽管推荐性能测试应持续30分钟以上,但由于时间限制,作者采用了更简洁的测试方法。 测试的目的是优化近1TB(约5亿条)数据的上传到Elasticsearch集群的过程。初始测试显示,如果按照当前速度,预计需要大约56小时才能完成。为了提高效率,作者选取了不同的参数进行调整,包括索引设置、副本数量、分片数以及bulk批量提交的大小。 首先,创建索引diglab_1,用时33秒,副本占用103.5mb,总存储量为副本数乘以该大小。接着,创建diglab_2,与前一个索引相比,没有显著速度提升,但节省了12%的时间。当副本数减少到1(diglab_3)时,写入速度提升了20%,表明复制操作可能是性能瓶颈。为了探索分片数的影响,创建了diglab_4,结果显示分片数增加会降低写入速度,但考虑到对检索性能的影响,决定将分片数设置为默认值5。 在批量提交大小的测试中,增大chunk_size从2000到8000,再到50000,发现速度有所提升,但差异不大。因此,后续测试采用了三倍的数据集,并继续从第4次测试的设置开始,使用10万和20万条数据的文件。 通过tail命令而非head命令来处理数据集,可能是为了更全面地模拟实际生产环境中的数据处理情况,从而获取更准确的性能指标。 总结来说,本文重点在于Elasticsearch集群的写入性能优化,包括副本数量、分片数和批量提交大小的调整。通过一系列的测试,作者得出了初步的优化策略,以提高大规模数据导入的效率。然而,实际的优化方案还需要根据具体应用场景、硬件配置和性能需求进行进一步的调整和验证。