shulieTech/Takin

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

Closed this issue · 11 comments

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

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

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

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

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

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

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

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

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

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

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

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

是的呀,就向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。

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

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

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

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

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

好的,谢谢