Q&A问答
1 压测问题的分析是基于调用链监控吗?
调用链路压测问题的分析不只是基于将调用链路,调用链路的监控只是其中一部分数据,还包括其他数据,比如说监控到的日志报错的数据、CPU内存的数据, 这些数据都是辅助问题分析的工具。
2 应用出现内存泄漏,Takin是不是可以快速准确的定位到相应代码模块?
如果说是出现像这种OOM,大家想要去定位到OOM里面具体的代码模块的话,目前Takin是没有这样的功能的。建议可以选择通过市面上开源的分析内存泄露的软件去定位这个内存泄露的问题。
3 只能构造类似Jmeter格式的数据进行压测么?是否可以录制线上真实的数据进行压测?
目前开源的版本是只支持Jmeter格式的。那关于录制线上流量,这部分数据目前是可以录制并保存下来的,但考虑到数据的偏移、数据的清洗等安全方面的特性,开源的这个版本里暂时还不支持回放,在后续的大版本里面我们会提供回放功能的。
4 现在Agent里有针对不开源的一些中间件,比如IBM、MQ的监听么?
目前的开源版本是支持IBM、MQ的监听的,大家可以直接使用。
5 能覆盖异步链路吗?比如监听数据库Binlog的业务系统?
如果在整个Binlog的业务系统里接入Takin,那么是可以覆盖异步链路的。我们支持数据库里包括影子库、影子表以及M Q等异步的场景。
6 怎么搭建自己玩?
大家可以照着文档自行搭建,具体内容详见https://github.com/shulieTech/Takin
7 你们和阿里PTS有什么区别?
PTS目前大家使用比较多的是类似云端压测的1个工具,可以在全国各个地域去发起指定区域、指定压力的流量,但它并不具备Takin的快速反馈、数据安全隔离、性能瓶颈定位等特性。当然大家通过其他软件配合PTS也能做到一部分这样的功能,但是PTS本身目前还做不到完整地、安全地在生产上面进行生产压测。
8 SaaS化大概需要有多少体量?
没有标准说要有多大体量才能用SaaS版本,主要还是根据需求来定,大家如果说有这个需求其实就可以去注册账号使用,目前我们接触到的有大有小。小一点的可能只有一两台机器,但对于性能这方面有一些追求,也可以直接用SaaS化的这种方式。
9 Takin支持那些语言?是不是只支持Java?
目前只支持Java语言,其他的语言还在开发当中。开源的目的本来就是想大家一起来共创,欢迎其他语言的开发者加入其中。
10 产品是基于字节码注入的方式,服务引入性能损耗百分之多少?
目前服务引入性能损耗控制在5%以内,在客户正式场景测出来差不多在3%左右。
11 线上压测垃圾数据怎么处理的?
Takin这个产品它是天然支持数据隔离的,压测产生的数据我们是隔离在固定的区域里面,比如说数据库,我们会隔离到影子库、影子表里;那像消息就会隔离到压测的消息topic里去。清理一般会通过固定的清理脚本来进行,压测的所有隔离区域,它都是有固定特征的,可以根据这些固定的特征安全地进行数据清理工作。
12 监控能不能监控到Java类的耗时,或者堆栈信息吗?这方面配置方便吗?
问题分析的模块支持两块,一块就是我在接口层面,比如像HTTP调用或者说像RPC调用接口层面的耗时是可以看到的,也可以直接定位到。那在压测过程当中JAVA类的一些本地方法的调用监控在性能分析这个模块里面也是有的,但这个我们默认是关闭的,大家需要的话,可以在压测的过程去选择其中的1台机器或者某1个接口去进行这种本地方法的追踪。
13 Takin的Agent织入的字节码,能跟skywalking这类链路追踪工具并存吗?会不会发生冲突?
这两个客户端是可以并存的,此外Takin跟市面上常见的pinpoint、听云、博瑞的Agent都是可以并存的,我们之前都做过这种兼容性的测试。
14 是全部代码开源,还是底层有保留?
底层核心代码全部开源,但在商业版里面,我们保留了大企业会使用到的安全相关的、项目管理相关的、效率提升方面的功能,这部分我们是没有开源的。但在后续开源版本中会陆续地把效率提升的一些工具给开源出来。
15 零代码嵌入指的是链路跟踪嘛?
不只是链路跟踪,包括去压测、数据的隔离、安全的性能、瓶颈的定位等所有的功能,它都是不需要去做什么代码改动的,都是零代码嵌入的。
16 写影子表,需要流量染色。目前是需要整个调用链的服务上,都启动对应的JavaAgent就可以是么?
如果有条件允许的话,建议是全部接入,如果条件不允许也是不影响使用的。在企业内部如果可以直接把所有的所有的机器、所有的服务都接入Takin,那当然是最好的。但在实际落地的过程中,在微服务里不太可能一次性把所有的服务全部都接上,所以Takin也提供接入局部的链路和局部应用的这样的功能。我们在内部也有一些保护的措施,像白名单功能,大家可以通过这样的功能去限制接入的范围。
17 支持统计压测流量的代码覆盖率吗?业务同学需要类似的数据来评估压测数据构造是否充分。
这是我们正在开发的新功能,但还不是很完善,所以这个功能还没有开源,未来也会开源的。这个功能可以帮助架构师、性能测试的同学更准确地去评估,需要构建哪些压测场景和压测脚本。
上Github与Takin开源社区了解更多信息~
Takin:
https://github.com/shulieTech/Takin
开源社区介绍+说明文档:戳此了解详情👈🏼
进群和大佬聊聊压测经历的那些事~,扫码添加小树,领《50+Qcon/QEcon高效运维等大佬讲师课件合集》
本文来自投稿,不代表TakinTalks稳定性技术交流平台立场,如若转载,请联系原作者。