返回顶部
首页 > 资讯 > 精选 >Elasticsearch写入瓶颈导致skywalking大盘空白怎么解决
  • 816
分享到

Elasticsearch写入瓶颈导致skywalking大盘空白怎么解决

2023-06-29 08:06:53 816人浏览 八月长安
摘要

本篇内容主要讲解“elasticsearch写入瓶颈导致skywalking大盘空白怎么解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Elasticsearch写入瓶颈导致skywalkin

本篇内容主要讲解“elasticsearch写入瓶颈导致skywalking大盘空白怎么解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Elasticsearch写入瓶颈导致skywalking大盘空白怎么解决”吧!

    前言

    继上次skywalking出故障《解析Arthas协助排查线上skywalking不可用问题》不到一个月,线上skywalking又出毛病了。又是大盘空白,trace列表最近的数据都查询不出来,但是时间稍久的数据就能查询出来,如一天前的数据有,一个小时前的数据就没有,这个只是表象,最终查明症结是ES的服务写入瓶颈,导致写入写入数据的线程阻塞导致的。下面是排错过程以及解决方案说明。

    问题定位

    工具还是那个工具Arthas,不了解的可以翻阅我之前的博文,这里不多说明Arthas。不过这次我们应用了一个新的进阶指令thread,它可以查看当前线程信息,查看线程的堆栈。当skywalking大盘没有数据时,使用如下指令:

    thread -b

    THREAD -B, 找出当前阻塞其他线程的线程

    有时候我们发现应用卡住了, 通常是由于某个线程拿住了某个, 并且其他线程都在等待这把锁造成的。 为了排查这类问题, arthas提供了thread -b, 一键找出那个罪魁祸首。最后得到如下的结果:

    如上图,相信大家已经看到问题所在了,重点在红色字体箭头指向的部分,不得不说Arthas做的太棒了。症结就是ES的批量写入失败线程阻塞了。后从社区了解到是因为ES写入瓶颈,导致skywalking在批量写入索引的时候线程阻塞了。导致阻塞的那段时间的数据都没有写到ES,然后查询是没有问题的,表象就是skywalking的大盘空白也查询不到近期的数据了。

    解决方案

    临时方案,SKYWALKING参数调优

    skywalking写入ES的操作是使用了ES的批量写入接口。我们可以调整这些批量的维度。尽量降低ES索引的写入频率,如:

    elasticsearch:    clusternodes: 192.168.20.221:9200 indexShardsNumber: 2 indexReplicasNumber: 0 # Batch process setting, refer to https://www.elastic.co/guide/en/elasticsearch/client/java-api/5.5/java-docs-bulk-processor.html bulkActions: 4000 # Execute the bulk every 2000 requests bulkSize: 40 # flush the bulk every 20mb flushInterval: 30 # flush the bulk every 10 seconds whatever the number of requests concurrentRequests: 2 # the number of concurrent requests receiver-reGISter: default:receiver-trace: default:    bufferPath: ../trace-buffer/ # Path to trace buffer files, suggest to use absolute path bufferOffsetMaxFileSize: 500 # Unit is MB bufferDataMaxFileSize: 1000 # Unit is MB bufferFileCleanWhenRestart: false

    调整bulkActions默认2000次请求批量写入一次改到4000次。批量刷新从20M一次到40M一次。这种配置调优确实生效了,重启服务后两三天了都没有出现过ES写入阻塞的问题。不过这种设置只是暂时的,你只能期望流量不突发,或者应用不增加。一旦遇到突发流量和应用的增加,ES写入瓶颈还是会凸显出来。而且参数设置过大带来了一个新的问题,就是数据写入延时会比较大,一次服务交互发生的trace隔好久才能在skywalking页面上查询到。所以最终解决方案是优化ES的写入性能。

    最终方案-优化ES的写入性能

    如果是自建Elasticsearch服务,在基础大数据团队负责搜索引擎 Elasticsearch 优化和开发,博文里分享了很多可调优配置的参数。不过我们这边综合运维人力和支出方面的考虑,决定采用阿里云提供的Elasticsearch,不过这带来了一个新的问题,阿里云的ES服务不论内外网都需要Http Basic认证,但是目前的skywalking并没有提供这种支持。

    到此,相信大家对“Elasticsearch写入瓶颈导致skywalking大盘空白怎么解决”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

    --结束END--

    本文标题: Elasticsearch写入瓶颈导致skywalking大盘空白怎么解决

    本文链接: https://lsjlt.com/news/323636.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    猜你喜欢
    • Elasticsearch写入瓶颈导致skywalking大盘空白
      目录前言问题定位THREAD -B, 找出当前阻塞其他线程的线程解决方案临时方案,SKYWALKING参数调优最终方案-优化ES的写入性能结语前言 继上次skywalking出故障《...
      99+
      2024-04-02
    • Elasticsearch写入瓶颈导致skywalking大盘空白怎么解决
      本篇内容主要讲解“Elasticsearch写入瓶颈导致skywalking大盘空白怎么解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Elasticsearch写入瓶颈导致skywalkin...
      99+
      2023-06-29
    • 因大小写不同导致CSS失效怎么解决
      这篇文章主要介绍“因大小写不同导致CSS失效怎么解决”,在日常操作中,相信很多人在因大小写不同导致CSS失效怎么解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”因大小写不同...
      99+
      2024-04-02
    • Docker容器导致磁盘空间不足无法访问怎么解决
      今天小编给大家分享一下Docker容器导致磁盘空间不足无法访问怎么解决的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。问题:客...
      99+
      2023-06-30
    • MYSQL大小写不敏感导致用户登录异常问题怎么解决
      这篇文章主要介绍“MYSQL大小写不敏感导致用户登录异常问题怎么解决”,在日常操作中,相信很多人在MYSQL大小写不敏感导致用户登录异常问题怎么解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”MYSQL大小...
      99+
      2023-07-06
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作