刚好最近使用 locust 进行生产持续 15 天压测,我们压测的 QPS 平均在 4.2w 左右
-
设置时间间隔为0-0,才可以最大提升并发的QPS
-
使用FastHttpUser预计比HttpUser的QPS 提升 5倍左右
-
使用go语言的压测引擎,预计性能可以再提升2倍【在python使用FastHttpUser】
-
failure 方法用于在locsut的web上显示错误failed,但必须用在with语法的上下文管理器中才生效
-
如果自己封装的方法中有太多IO操作函数,会影响到QPS提升。如使用标准库的logging做日志的记录写入文件时,预估会影响一倍的QPS
-
如果2个task需要使用不同域名,可以在请求是,使用关键字name=“https://xxx.xxxx/api/yyyy”
-
当master起的文件中定义了host的值,那么其他的worker文件就算自定义了host的值,仍然会以master中的值为准
-
建议压测服务和服务器在同一台,通过内网请求最好。
-
在自己实验中 mbp、M1 芯片、8c16g、内网请求情况下,1000 并发,Go 的 QPS 可达到 5wQPS【本机关闭其它程序】,FastHttpUser 在 2.6w 左右,HttpUser 在 5000 左右.【请求接口很简单只返还 OK,仅为测试】
10.过高并发数量,可能并不会压测出很高 QPS,因为涉及到两台机器的端口数量、Master 进程对 worker 进程中线程数调度等问题。