背景
Kindling-agent是基于eBPF的云原生可观测性开源工具Kindling中采集端的组件,可能通过采集和剖析内核事件,获取运行于同一宿主机上的其余服务的业务、网络等指标。其工作模式是在主机上以独立过程的形式收集所需数据,所以只须要咱们在利用所在主机部署Kindling-agent即可启动相应能力,随后能够通过prometheus和grafana套件对不同机器上探针采集的数据进行整合剖析和查看,当然也能够用其余工具获取数据并进行剖析展现。只管Kindling-agent基于eBPF的形式进行的监控形式缩小了对被监控利用的侵入,但始终还是和用户利用共享同一台宿主机的CPU、内存、磁盘、网络等资源。这使得所有想要应用Kindling-agent的用户都想晓得该工具在实在环境中的性能体现以及预期资源应用状况。Kindling我的项目进行了一系列的测试来验证该采集工具的性能体现,这些测试反馈了Kindling-agent在不同压力下良好的性能体现和可靠性。
测试指标
- 测验高负载(5000 TPS)场景下,Kindling-agent对利用的性能影响和agent自身的资源应用状况。
- 测验惯例负载(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)上。
后果阐明
- 基线指测试利用在无探针装置时的进行压力测试取得的指标,包含以下信息:
• machine-cpu: 机器总CPU应用总体百分比
• machine-mem: 机器总内存应用总体百分比
• application-cpu: 测试利用CPU应用核数
• application-memory: 测试利用内存应用
• application-latency: 测试利用申请提早
• application-tps:测试利用每秒事务数 - 装置探针后的测试利用在压力测试时的性能指标。
- 探针本身的性能损耗,包含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能够在较低的资源开销下反对轻量化部署,且易于治理;可能深入分析申请到协定栈在内核执行状况;可能提供语言无关,利用无侵入的监控体验,为您的利用带来新一代的可观测能力。
测试原始数据详见:原始数据
对云原生感兴趣的小伙伴欢送分割咱们:
退出咱们
关注咱们