背景

Kindling-agent是基于eBPF的云原生可观测性开源工具Kindling中采集端的组件,能够通过采集和分析内核事件,获取运行于同一宿主机上的其他服务的业务、网络等指标。其工作模式是在主机上以独立进程的方式收集所需数据,所以只需要我们在应用所在主机部署Kindling-agent即可启动相应能力,随后可以通过prometheus和grafana套件对不同机器上探针采集的数据进行整合分析和查看,当然也可以用其他工具获取数据并进行分析展示。尽管Kindling-agent基于eBPF的方式进行的监控方式减少了对被监控应用的侵入,但始终还是和用户应用共享同一台宿主机的CPU、内存、磁盘、网络等资源。这使得所有想要使用Kindling-agent的用户都想知道该工具在真实环境中的性能表现以及预期资源使用情况。Kindling项目进行了一系列的测试来验证该采集工具的性能表现,这些测试反应了Kindling-agent在不同压力下良好的性能表现和可靠性。

测试目标

  1. 检验高负载(5000 TPS)场景下,Kindling-agent对应用的性能影响和agent本身的资源使用情况。

  2. 检验常规负载(1000 TPS)场景下,Kindling-agent对应用的性能影响和agent本身的资源使用情况。

测试环境

内核版本

3.10.0-1160.53.1

CPU

Intel(R) Xeon(R) Platinum 8269CY CPU @ 2.50GHz,8C

内存

16G

Jmeter和Kindling-agent以K8S工作负载的方式进行部署,测试应用和Jmeter分别运行在两台CentOS7(fedora)上。

结果说明

1. 基线指测试应用在无探针安装时的进行压力测试获得的指标,包括以下信息:

  • machine-cpu: 机器总CPU使用总体百分比

  • machine-mem: 机器总内存使用总体百分比

  • application-cpu: 测试应用CPU使用核数

  • application-memory: 测试应用内存使用

  • application-latency: 测试应用请求延迟

  • application-tps:测试应用每秒事务数

2. 安装探针后的测试应用在压力测试时的性能指标。

3. 探针自身的性能损耗,包括CPU和内存使用,在一些较低内核版本的机器中,Kindling使用内核模块代替eBPF实现了相同的功能,你将会在测试中看到两种实现下不同的性能表现。

测试用例

用例1

为了验证Kindling-agent在高负载下的性能表现,用例1使用了Skywalking的benchmark1程序。该程序为一个常规的Springboot应用,对外提供HTTP服务,其预期TPS为5000,预期延时为85ms。Kindling会捕获该程序的异常/慢的请求数据(即Trace),并统计程序运行时间段内的关键性指标(Metric),如平均响应时间、错误率、请求字节数和请求数等。这些Trace和Metric能够有效的保障程序的可观测性。下面的测试结果中是待测程序在5000TPS下的性能表现,baseline表示未启用agent下的资源开销和性能表现。

​在资源使用上,Kindling-agent 一共消耗了约0.64C来处理并统计 5000 TPS下的关键性能指标,并通过Prometheus暴露在HTTP接口上。对于应用程序的资源使用,在基线测试中,应用程序需要花费2.5C处理现有的业务请求,在部署了探针后,程序需要使用2.6C处理现有的业务请求,即相对于基线增加了4%的额外开销,内存方面则几乎没有影响。对于应用程序的服务表现,可以看到,在5000TPS的负载下,Kindling-agent对应用程序的响应时间和TPS的影响都非常小。大多数正常的业务都包含一定的处理逻辑,单节点吞吐量很少能够达到5000TPS。因此,对于大多数的业务应用来说,不需要担心Kindling-agent对应用本身的处理能力造成影响。

用例2

如之前所述,用例1中的TPS明显高于正常的用户应用。为此,测试用例2增加了处理每个请求时的CPU使用,并下调了请求压力,使该场景更接近于生产环境下的常规压力。

​在资源使用上,Kindling-agent 一共消耗了 0.12C 用于数据处理和统计。

对于应用的资源使用,在1000TPS下,基线使用1.37C 处理现有的请求,安装agent后相较于基线几乎没有额外开销。服务表现方面,在1000TPS下,基线的响应时间为272ms , TPS为 1044 ; 安装agent后相较于基线几乎不变。总的来说,在常规负载下,Kindling-agent对用户应用几乎没有影响。

总结

上述用例说明Kindling可以在较低的资源开销下支持轻量化部署,且易于管理;能够深入分析请求到协议栈在内核执行情况;能够提供语言无关,应用无侵入的监控体验,为您的应用带来新一代的可观测能力。

测试原始数据详见:原始数据

Kindling项目地址:Kindling

在云可观测性方面有任何疑问欢迎与我们联系:Kindling官网

基于eBPF的云原生可观测性开源工具Kindling之Kindling-agent 性能测试评估相关推荐

  1. 基于 eBPF 的云原生可观测性深度实践

    本文整理自云杉网络 DeepFlow 产品负责人向阳在 QCon 2023 的演讲分享,主题为 "基于 eBPF 的云原生可观测性深度实践". 分享从四个方面展开.第一部分回顾分布 ...

  2. 国内首发,这款 Serverless 云原生一体化部署工具正式开源!

    12 月 19 日,腾讯在 2020 Techo Park 开发者大会上集中发布了三大开源项目.其中,云开发 CloudBase Framework 作为腾讯开源的国内首个基于 Serverless ...

  3. 百度工程师眼中的云原生可观测性追踪技术

    作者 | daydreamer 一.概念介绍 在云原生领域,可观测性指从外部输出推断和衡量系统内部状态,描述系统中所发生情况的理解程度.常见的可观测性的三大基础是Metrics.Tracing和Log ...

  4. 云原生网关开源、自研、商业化三位一体战略背后的思考

    *作者:如葑 阿里巴巴三位一体战略解读之云原生网关开源.自研.商业化,目前云原生网关已正式商业化,旨在为用户提供更可靠的.成本更低.效率更高的符合K8s Ingress标准的企业级网关产品,更多详情将 ...

  5. 从基础设施到云原生应用,全方位解读阿里云原生新锐开源项目

    来源 | 阿里巴巴云原生公众号 2020 年 11 月 19 日,由 InfoQ 主办的"2020 中国技术力量年度榜单盛典"隆重召开,并正式揭晓了"开源杰出贡献人物&q ...

  6. 阿里巴巴的云原生应用开源探索与实践

    作者 | 司徒放(姬风) 阿里巴巴技术专家 本文整理自司徒放(姬风)题目为<开源的黄金时代,阿里巴巴云原生开源的探索与实践>的演讲. 关注"阿里巴巴云原生"公众号,回复 ...

  7. 基于Serverless的云原生转型实践

    简介:新一代的技术架构是什么?如何变革?是很多互联网企业面临的问题.而云原生架构则是这个问题最好的答案,因为云原生架构对云计算服务方式与互联网架构进行整体性升级,深刻改变着整个商业世界的 IT 根基. ...

  8. 蚂蚁金服 3 个项目进入 CNCF 云原生全景图 | 开源

    2019 年 6 月 25 日,全球知名开源组织云原生计算基金会 CNCF 宣布,蚂蚁金服正式成为 CNCF 黄金会员,蚂蚁金服表示将持续加大对开源项目的支持,包括 Kubernetes,Servic ...

  9. 腾讯云EMR基于YARN针对云原生容器化的优化与实践

    导语 | 传统HADOOP生态系统使用YARN管理/调度计算资源,该系统⼀般具有明显的资源使⽤周期.实时计算集群资源消耗主要在⽩天,而数据报表型业务则安排在离线计算集群中.离在线业务分开部署的首要问题 ...

最新文章

  1. python逐行读取json_如何用python读取json文件里指定的数据
  2. 8s保留cpu设置_华为Mate 20 Pro的第二彩蛋-开发者人员选项可以这么设置
  3. anaconda安装成功测试_学习笔记120—Win10 成功安装Anaconda 【亲测有效,需注意几点!!!】...
  4. Node.js压缩与解压数据
  5. 从别的网站摘抄的,挺有用的
  6. iptables常用命令
  7. 远程访问用户 Kindle---通过电子书实现控制
  8. 系统集成项目管理之何为系统集成
  9. jsp和jspx的区别
  10. 江苏省计算机二级c语言备考,江苏省计算机二级C语言考试备考指南
  11. 2018年尚硅谷徐靖博老师的分布式电商项目视频
  12. PowerPoint-漂亮表格三招
  13. 曹金明:Zynga大败局--数据控是如何把游戏做败的
  14. Linkflow+微信公众号:如何提升首购率
  15. 解析单总线协议(1-wire)
  16. 将数字转化为千分位形式
  17. php_curl.dll下载,php_curl.dll,下载,简介,描述,修复,等相关问题一站搞定_DLL之家
  18. java HelloWorld
  19. Region Attention Networks for Pose and Occlusion Robust Facial Expression Recognition
  20. 计算机组成原理_在线作业_2,大工18春《计算机组成原理》在线作业2辅导资料.docx...

热门文章

  1. nmap与hydra
  2. WMS仓储系统值得提高的功能点
  3. eclipse将程序打包放到linux运行
  4. loopback回环接口
  5. leetcode:1838. 最高频元素的频数【排序 + 前缀和 + 二分 + 思维】
  6. nginx动态黑名单配置2
  7. 8个3D打印机方案,低成本创造DIY的更多可能性
  8. 2018年诺贝尔物理学奖揭晓:美法加三名科学家因激光物理获奖
  9. [C++实现 设计模式(14)] : 门面模式
  10. html5 比较 特效,8款HTML5特效推荐