`

ElasticSearch 性能优化

 
阅读更多

GeTrace系统的所有搜索都是用ElasticSearch来做的,在使用ElasticSearch的过程中碰到了一些问题,这里记录一下。

 

一 . 在查找调用链的时候。整体数据量大(每天60G * 7 = 420G),但是结果集比较少(只有几百行)的时候,查询时间经常会超过1分钟,慢的甚至需要5,6分钟.

优化1:经过深入测试发现,是因为batchSize设置过大(一开始设置为Integer.Max),具体原因还未分析过

  SearchRequestBuilder searchRequestBuilder = client.prepareSearch(indices).setTypes(type)
                .setQuery(builderQueryBuilder(matches)).setSearchType(searchType).setScroll(new TimeValue(500000)).setSize(batchSize);

 优化2:业务上做优化,原先查找调用链的时候是查找所有日志的,现在设置为默认查找当天日志,如果当天日志查不到,再查找所有日志。这样查找当天的调用链的时候都是非常快的

优化后大部分查询都在30秒以内

 

二. 在查询应用的接口调用分析数据时,如果搜索的时间跨度很长,并且数据是一次性读入到内存,这样就可能会出现内存不够的情况

优化1: 为了解决这个问题,采用了分批查询接口,每次查询500条数据,因为业务上需要对日志做排序,在查询的时候需要在查询接口上添加排序参数

 

三. 随着调用链日志量的增多,经常会出现Redis日志堆积的情况。调用链日志写入EL的速度在2000-3000行每秒。 经过分析,堆积的原因可能在两方面,一是EL集群本身性能需要优化,二是logstash写入EL时可能发生了阻塞。

优化1:修改了EL的配置,让EL刷新日志的时间变为30分钟

优化2:通过日志分析logstash经常会出现Full GC,因为日志在流过logstash的时候,会创建很多临时对象,如果年轻代过小的话,会导致年轻代很快就被塞满,从发生Yong GC,多次Yong GC之后,本来是很快就会被释放的临时变量也会被迁移到年老代。导致年老代频繁被塞满,从而经常发生Full GC。解决的办法是调大年轻代的比例,让临时变量在年轻代尽量多保留一段时间,这样当Yong GC的时候就可以释放掉很多临时变量。

 

 

 

 

分享到:
评论

相关推荐

    ElasticSearch性能优化策略

    ### ElasticSearch性能优化策略 ElasticSearch是一种广泛应用于日志分析、全文检索、实时数据分析等场景的搜索引擎。随着数据量的增大与业务复杂度的提高,如何高效地使用ElasticSearch变得尤为重要。本文将详细...

    Elasticsearch性能优化汇总.docx

    ### Elasticsearch性能优化详解 #### 一、硬件选择与磁盘I/O优化 Elasticsearch的基础构建于Lucene之上,所有索引及文档数据均存储在本地磁盘中。磁盘性能直接影响Elasticsearch的性能表现,尤其是在高负载情况下...

    es性能优化.docx

    【Elasticsearch 性能优化】 Elasticsearch (ES) 是一个流行的开源全文搜索引擎,用于高效存储和检索大量数据。为了实现最佳性能,我们需要对多个层面进行调优,包括集群规划、Linux 系统参数配置、JVM 参数设置...

    企业级Elasticsearch 8.X技术来临!性能优化与集群部署 基础与进阶全面实战

    性能优化与集群部署 基础与进阶全面实战”旨在帮助学员深入了解Elasticsearch 8.X版本的核心技术,掌握性能优化与集群部署的关键知识,从而能够更好地应对企业级应用中的挑战。 课程亮点: Elasticsearch基础概念...

    elasticsearch 性能测试

    **Elasticsearch 性能测试** Elasticsearch 是一个分布式、全文检索的搜索引擎,广泛应用于数据分析、日志聚合和实时搜索场景。为了确保系统在高负载下仍能保持高效稳定,性能测试是至关重要的。本篇文章将围绕如何...

    阿里云Elasticsearch2.0发布.pdf

    3. Eyoul索引构建性能提升:索引构建是Elasticsearch性能优化的关键一环。阿里云在2.0版本中提升了索引构建的性能,使得索引构建过程更加高效。这将显著提高用户在数据导入和更新时的速度和效率。 4. 支持秒级弹性...

    Elasticsearch优化及升级1

    通过以上优化措施,Elasticsearch能够更好地应对大数据量的搜索和分析任务,提供更稳定的性能和更高的可用性。同时,定期监控和调整这些参数是持续优化的关键,因为系统资源和工作负载可能会随时间变化。

    elasticsearch权威指南-中文

    7. **性能调优**:分享Elasticsearch性能优化技巧,如调整内存设置、优化索引设置、合理分配硬件资源等,提升系统运行效率。 8. **集群管理**:讲解如何搭建和管理Elasticsearch集群,包括跨节点通信、数据路由、...

    百度Elasticsearch实践及优化-高攀

    这包括但不限于贡献代码优化、性能测试工具或最佳实践文档,帮助其他开发者和企业提升Elasticsearch的使用体验。 综上所述,百度在Elasticsearch的实践和优化方面有着深度探索,从数据导入到查询优化,再到集群管理...

    elasticsearch elasticsearch-6.2.2 elasticsearch-6.2.2.zip 下载

    Elasticsearch 6.x系列相较于5.x版本有了显著的改进和增强,尤其是在性能优化和安全性方面。具体到6.2.2版本,它不仅继承了6.x系列的优势,还针对早期版本的一些已知问题进行了修复,提高了系统的稳定性和可靠性。...

    浅入深出ElasticSearch构建高性能搜索架构.docx

    ### 浅入深出ElasticSearch构建高性能搜索...通过以上内容的学习,读者不仅能掌握ElasticSearch的核心技术和实践技巧,还能了解如何构建和优化高性能的搜索架构。这将为处理大规模数据集和复杂查询场景提供坚实的基础。

    elasticsearch-2.3.5.tar.gz

    四、Elasticsearch性能优化 1. **合理分配节点**: 根据硬件资源分配节点,确保负载均衡。 2. **设置合适的分片数量**: 分片过多或过少都会影响性能。 3. **使用合适的数据模型**: 避免过于复杂的数据结构,减少分析...

    elasticSearch(ES)最新版 ik分词插件7.10 elasticsearch-analysis-ik-7.10.0

    Elasticsearch(ES)是一种流行的开源全文搜索引擎,它基于Lucene构建,提供了分布式、RESTful风格的搜索和分析引擎服务。在中文环境下,为了实现精确的分词和搜索,我们需要安装适合版本的分词插件,如“elastic...

    Elasticsearch 存储方式和管理优化细节1

    Elasticsearch 是一个分布式搜索引擎,其数据存储方式和管理优化对于高效检索和稳定运行至关重要。在Elasticsearch中,数据存储的基本单位是段(segment),每个段都是一个倒排索引,由Lucene生成。每次数据写入后,...

    Windows版本(8.11)ElasticSearch、elasticsearch-head、kibana、IK分词

    8.11版本带来了性能优化和新特性,确保在Windows环境下提供更稳定、高效的运行。 **安装与配置** 1. **下载与解压**: 首先,你需要从官方网站下载适用于Windows的Elasticsearch 8.11.3版本,即`elasticsearch-...

    elasticsearch运维实践

    Elasticsearch的性能优化主要包括两个部分:索引性能优化和查询性能优化。索引性能优化可以通过调整索引的参数和使用倒排索引来实现,而查询性能优化可以通过使用Filter和缓存来实现。 10. Elasticsearch的集群规划...

    ElasticSearch官方测试数据

    **Elasticsearch官方测试数据详解** Elasticsearch(ES)是一种流行的开源...通过对Elasticsearch官方测试数据的深入研究和实践,我们可以更好地理解和优化Elasticsearch的性能,为实际应用提供强大且高效的搜索服务。

    elasticsearch-analysis-pinyin-7.4.0 es拼音分词器7.4.0

    在大数据环境下,elasticsearch-analysis-pinyin-7.4.0的性能优化显得尤为重要。随着数据量的增加,高效处理拼音转换和全文检索的能力直接影响到系统的响应速度。因此,理解并合理利用Elasticsearch的索引策略、分片...

Global site tag (gtag.js) - Google Analytics