Locust-生产压测实战

刚好最近使用 locust 进行生产持续 15 天压测,我们压测的 QPS 平均在 4.2w 左右

  1. 设置时间间隔为0-0,才可以最大提升并发的QPS

  2. 使用FastHttpUser预计比HttpUser的QPS 提升 5倍左右

  3. 使用go语言的压测引擎,预计性能可以再提升2倍【在python使用FastHttpUser】

  4. failure 方法用于在locsut的web上显示错误failed,但必须用在with语法的上下文管理器中才生效

  5. 如果自己封装的方法中有太多IO操作函数,会影响到QPS提升。如使用标准库的logging做日志的记录写入文件时,预估会影响一倍的QPS

  6. 如果2个task需要使用不同域名,可以在请求是,使用关键字name=“https://xxx.xxxx/api/yyyy”

  7. 当master起的文件中定义了host的值,那么其他的worker文件就算自定义了host的值,仍然会以master中的值为准

  8. 建议压测服务和服务器在同一台,通过内网请求最好。

  9. 在自己实验中 mbp、M1 芯片、8c16g、内网请求情况下,1000 并发,Go 的 QPS 可达到 5wQPS【本机关闭其它程序】,FastHttpUser 在 2.6w 左右,HttpUser 在 5000 左右.【请求接口很简单只返还 OK,仅为测试】
    10.过高并发数量,可能并不会压测出很高 QPS,因为涉及到两台机器的端口数量、Master 进程对 worker 进程中线程数调度等问题。

你可能感兴趣的:(性能优化,压力测试,python,go)