alex
alex copied to clipboard
为什么用了一段时间后,发现一直停留在某一个阶段。
trafficstars
我测试了一个接口,一开始从100、200、300这样一直到5000 但是压了一段时间Current Concurrency 就一直停留在某一个数,请问这个是什么原因,因为我使用的默认值,每次持续5s,前几天测试的都能一直走完,这几天不行了老是卡死;
而且用下来发现,整个测试过程会很慢,不知道为什么?测试中间产生的原始log能重定向到文件吗
很抱歉最近没有好好上github,回复的晚了一点。 你这个情况说明你用的应该是vegeta版本的,vegeta是固定的qps,那如果你期望的qps太大,vegeta就会拼命的起很多的goroutine,goroutine多到一定程度,系统负载随之大幅上升,会使得测试alex程序的性能急剧下降,你可能是在一台普通的电脑上进行的压力测试,系统性能相对一般,或者你的目标程序性能不佳,5000的qps都远不能达到。 我比较推荐使用boom版本的,boom提供稳定的并发条件下探测目标系统的极限qps,一般不会导致压测程序性能急剧下降。
vegeta这个库没有提供退出机制,所以在goroutine太多的情况下就会导致程序停不下来,遇到这种情况一般只有重启程序,否则就会等待很长时间才能停下来