shulieTech / Takin

Takin is an Java-based, open-source system designed to measure online environmental performance test for full-links, Especially for microservices. Through Takin, middlewares and applications can identify real online traffic and test traffic, ensure that they enter the right databases.
Apache License 2.0
1.31k stars 330 forks source link

怎么在takin上设置线程数测试,像jmeter一样设置线程数 #104

Closed zhull123123 closed 2 years ago

zhull123123 commented 2 years ago

image image 比如1s钟有100个用户请求

zdan68 commented 2 years ago

1s钟有100个用户请求,您可以选择并发模式,将最大并发设为100即可。 若您需要固定100并发施压,可选择固定压力值的施压模式;

若您想逐步增压到100,可采用线性递增或阶梯递增的模式: 使用线性递增模式施压时,将呈线性增长的方式逐步增压到100 使用阶梯递增模式施压时,将呈阶梯增长的方式逐步增压到100

具体使用教程可参考社区文档:https://docs.shulie.io/docs/opensource/opensource-1d62ucee2ucb6

zhull123123 commented 2 years ago

最大并发设置100,并不是有100个请求啊,最大并发100,压测时长最少是1分钟,最后的样本请求数可能是1000,或者更多

zdan68 commented 2 years ago

最大并发设置100,并不是有100个请求啊,最大并发100,压测时长最少是1分钟,最后的样本请求数可能是1000,或者更多

不好意思,可能我们这里有点歧义,这里设置的最大并发不是总的并发,就是每s的并发数

zhull123123 commented 2 years ago

咱们的系统可以设置总并发数吗

zdan68 commented 2 years ago

咱们的系统可以设置总并发数吗

不能的,您有这方面的需求场景吗?

zhull123123 commented 2 years ago

是的呀,就向JM一样,通过设置单位时间内多少线程数来测试,比如有100个用户在1秒中内同时访问某个接口,这个场景是不可以模拟的对吧

epplera commented 2 years ago

jmeter的线程数就是takin平台的并发数,如果你是要控制总的每秒的总的请求次数,可以使用tps模式,tps就是每秒请求并返回数

epplera commented 2 years ago

是的呀,就向JM一样,通过设置单位时间内多少线程数来测试,比如有100个用户在1秒中内同时访问某个接口,这个场景是不可以模拟的对吧

按你的这个描述就是采用并发模式且设置并发数就行了,并发意思就是每秒有多少个线程发起请求,他与总请求量之间的关系:总请求量=并发数(1000/平均rt)压测时长(秒) 如:10个并发,平均rt是100ms,压测1分钟,那么大概的总请求数=10(1000/100)60=6000,即大概会有6000个请求,“1000/平均rt”的意思的是单线程每秒能发多少个请求。

但看你前面的回复,感觉你是想要控制每秒的总请求量,这个你可以通过tps模式实现,tps概念就是每秒发送的请求总量。 tps模式下请求总量和tps设置值之间的关系是:请求总量=tps 压测时长(秒) tps模式下请求总量线程数、rt之间的关系:tps=线程数(1000/平均rt),但实际上在takin平台我们改变了平均rt,我们引入了常量吞吐量定时器,改变了平均rt,所以呢真实线程数不能通过这个公式来算。 在takin平台tps模式的线程数会根据你压力机的cpu资源和内存资源来启动最大线程,然后根据最大线程和目标tps调整常量吞吐量定时器延时时间来控制最终tps。

zhull123123 commented 2 years ago

那就是在takin控制不了总的请求数,对吧

epplera commented 2 years ago

那就是在takin控制不了总的请求数,对吧

不考虑时间的,只讨论总请求是没有意义的,jmeter也没有这样的, 所以你对你的这个需求是不是没有理解透

如果你限制了时间,又要限制总请求数,那就是可以换算成每秒请求数,即tps模式 如果你限制了时间,又要限制访问人数,那就是可以换算成每秒并发数,即并发模式

这2种模式最终都是为了摸清自己网站的每秒吞吐能力和性能瓶颈, 1.tps模式使用场景:网站负责人明确自己需要的吞吐量,然后设定目标进行压测,看网站能否承受,如:天猫双11预估高峰每秒会产生约40万的交易订单,于是可以用tps模式压测创建订单接口,设置tps目标为40万 2.并发模式使用场景:网站负责人不清楚目前网站吞吐量,因此设定一个并发线程数来进行并发压测,观看自己的网站容量水位

zhull123123 commented 2 years ago

好的,谢谢