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

本文涉及的产品
应用实时监控服务-应用监控,每月50GB免费额度
应用实时监控服务-可观测链路OpenTelemetry版,每月50GB免费额度
性能测试 PTS,5000VUM额度
简介: Kindling-agent作为数据采集器,其性能如何想必是很多使用者关心的问题,本文将通过实际的压测数据来说明Kindling的性能。

背景

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下的资源开销和性能表现。

1.png

在资源使用上,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使用,并下调了请求压力,使该场景更接近于生产环境下的常规压力。

2.png

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

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

总结

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


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

KINDLING项目地址:KINDLING

欢迎对云可观测性感兴趣的小伙伴与我们联系:Kindling官网

相关实践学习
通过性能测试PTS对云服务器ECS进行规格选择与性能压测
本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
目录
相关文章
|
2月前
|
API 数据库 决策智能
基于百炼平台qwen-max的api 打造一套 检索增强 图谱增强 智能工具调用决策的智能体
本文介绍了一种基于阿里云百炼平台的`qwen-max` API构建的智能体方案,该方案集成了检索增强、图谱增强及智能工具调用决策三大模块,旨在通过结合外部数据源、知识图谱和自动化决策提高智能回答的准确性和丰富度。通过具体代码示例展示了如何实现这些功能,最终形成一个能灵活应对多种查询需求的智能系统。
197 11
|
2月前
|
自然语言处理 NoSQL API
基于百炼平台qwen-max的api 打造一套 检索增强 图谱增强 基于指令的智能工具调用决策 智能体
基于百炼平台的 `qwen-max` API,设计了一套融合检索增强、图谱增强及指令驱动的智能工具调用决策系统。该系统通过解析用户指令,智能选择调用检索、图谱推理或模型生成等工具,以提高问题回答的准确性和丰富性。系统设计包括指令解析、工具调用决策、检索增强、图谱增强等模块,旨在通过多种技术手段综合提升智能体的能力。
206 5
|
2月前
|
数据采集 人工智能 自动驾驶
VSI-Bench:李飞飞谢赛宁团队推出视觉空间智能基准测试集,旨在评估多模态大语言模型在空间认知和理解方面的能力
VSI-Bench是由李飞飞和谢赛宁团队推出的视觉空间智能基准测试集,旨在评估多模态大型语言模型(MLLMs)在空间认知和理解方面的能力。该基准测试集包含超过5000个问题-答案对,覆盖近290个真实室内场景视频,涉及多种环境,能够系统地测试和提高MLLMs在视觉空间智能方面的表现。
73 16
VSI-Bench:李飞飞谢赛宁团队推出视觉空间智能基准测试集,旨在评估多模态大语言模型在空间认知和理解方面的能力
|
2月前
|
监控 Linux Windows
如何在主机安装主机管理工具WGCLOUD的agent端
WGCloud 是一款用于主机监控的工具,通过在目标主机上部署 agent 实现监控。无论是 server 主机还是被监控主机,均需运行 agent。安装包中包含 server 和 agent,只需启动相应 agent 即可。支持多种部署方式,包括压缩包复制、一键部署脚本等。确保 server 和 agent 版本一致,并正确配置 `application.properties` 中的 `serverUrl` 和 `wgToken`。
|
3月前
|
机器学习/深度学习 人工智能 算法
BALROG:基准测试工具,用于评估 LLMs 和 VLMs 在复杂动态环境中的推理能力
BALROG 是一款用于评估大型语言模型(LLMs)和视觉语言模型(VLMs)在复杂动态环境中推理能力的基准测试工具。它通过一系列挑战性的游戏环境,如 NetHack,测试模型的规划、空间推理和探索能力。BALROG 提供了一个开放且细粒度的评估框架,推动了自主代理研究的进展。
60 3
BALROG:基准测试工具,用于评估 LLMs 和 VLMs 在复杂动态环境中的推理能力
|
3月前
|
测试技术 API 微服务
性能测试并发量评估新思考
性能测试并发量评估新思考
81 5
性能测试并发量评估新思考
|
3月前
|
机器学习/深度学习 算法 UED
在数据驱动时代,A/B 测试成为评估机器学习项目不同方案效果的重要方法
在数据驱动时代,A/B 测试成为评估机器学习项目不同方案效果的重要方法。本文介绍 A/B 测试的基本概念、步骤及其在模型评估、算法改进、特征选择和用户体验优化中的应用,同时提供 Python 实现示例,强调其在确保项目性能和用户体验方面的关键作用。
55 6
|
3月前
|
机器学习/深度学习 算法 UED
在数据驱动时代,A/B 测试成为评估机器学习项目效果的重要手段
在数据驱动时代,A/B 测试成为评估机器学习项目效果的重要手段。本文介绍了 A/B 测试的基本概念、步骤及其在模型评估、算法改进、特征选择和用户体验优化中的应用,强调了样本量、随机性和时间因素的重要性,并展示了 Python 在 A/B 测试中的具体应用实例。
41 1
|
3月前
|
传感器 机器学习/深度学习 自然语言处理
智能代理(Agent)在工具调用与协作中的应用实践
随着人工智能技术的飞速发展,智能代理(Agent)技术已成为解决复杂任务的关键手段。本文深入探讨了如何设计灵活的工具调用机制和构建高效的单/多Agent系统以提升任务执行效率。文章不仅涵盖了相关的理论知识,还提供了丰富的实践案例和代码实现,旨在帮助读者深入理解和应用智能代理技术。
308 2
|
3月前
|
人工智能 Cloud Native 算法

相关产品

  • 性能测试