专业的JAVA编程教程与资源

网站首页 > java教程 正文

skywalking agent 本地缓存队列参数设置

temp10 2024-10-25 17:00:48 java教程 10 ℃ 0 评论
坚持原创,共同进步!请关注我,后续分享更精彩!

skywalking是一款优秀的apm应用性能监控软件,属于Apache开源平台顶级项目,以java语言开发。它以jvm虚拟机agent方式随应用一块启动,通过无侵入自动代码埋点来实现应用接口的性能监控。

由于agent代理和监控的业务应用在一块启动,为尽可能地减小对原有业务应用的影响(内存占用、线程cpu资源使用等),skywalking agent的埋点数据收集以及上报,是以队列+异步线程的方式实现。当skywalking server端出现故障,内存队列被占满,新的收集数据将直接丢弃,不会继续往队列里添加,以避免占用过多内存资源对原有业务产生影响。通常情况下,保持agent默认参数配置即可,无需额外修改。针对一些需求特别的场景,用户可以通过参数自行定义,以便最大限度降低agent对原有业务的影响。

skywalking agent 本地缓存队列参数设置

关于skywalking agent的队列模型--无锁环状队列。可以参考文章:https://www.jianshu.com/p/93845a3b4b42,这里不再赘述。


skywalking agent本地缓存队列由两部分组成:缓存通道*通道队列
其中,
缓存通道大小:buffer.channel_size=${SW_BUFFER_CHANNEL_SIZE:5}
缓存队列大小:buffer.buffer_size=${SW_BUFFER_BUFFER_SIZE:300}

上面所列参数,等号左侧为key值,右侧为value值,其中value值中大写字符为环境变量,冒号:后面数字为默认值。即agent的默认缓存通道为5,默认每个通道对应队列大小为300。

我们可以通过以下两种方式实现默认参数的覆盖。

  1. jvm虚拟机-D参数引入
    覆盖的key需统一添加skywalking字符前缀。
    如缓存通道设置为8。对应设置为:-Dskywalking.buffer.channel_size=8

  2. 通过系统环境变量设置
    Linux缓存通道设置为8.对应设置为:export SW_BUFFER_CHANNEL_SIZE=8


本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表