• 阅读locust源码小记----分布式运行如何停止


    首先带着问题找答案。。。

    思考:分布式运行时,怎么控制什么时间停止压测?

    启动master时可以传参:-t或者--run-time

    先来看下关于这个参数的介绍:(文件:argument_parser.py)

    运行指定的时间之后停止,例如300s,20m,3h,1h30m等等,只能跟--headless一起结合使用,默认是一直运行的

    --headless 是指无图形模式启动,对应于locust0.*版本的--no-web

    紧接着看main.py这个文件:

     

     如果指定了run_time参数,会启动一个定时任务,这个定时任务会在指定的时间之后运行一个事件:runner.quit()   ,也就是退出runner

    接着看下runners.py文件

     第一步:首先master先判断当前状态如果不是ready,stopped,stopping,则 修改状态为stopping,并且遍历slave,给每个slave发送stop消息,  紧着触发test_stop事件,

     第二步:遍历slave,给每个slave发送quit消息,然后睡眠0.5s,然后杀死协程

    其中,绿色方框里面那句,虽然触发了test_stop事件,但是没找到代码里面给test_stop事件注册监听器(有知道的大佬欢迎评论留言。。。。。)

     

     

    slave收到stop的消息之后:更新状态为cleanup,杀死新增用户的协程(如果存在并且不是ready),停止用户,更新状态为stopped,CPU日志警告,给master发送client_stopped的消息,发送client_ready的消息,设置worker状态为ready

    slave收到quit的消息之后:更新状态为cleanup,杀死新增用户的协程(如果存在并且不是ready),停止用户,更新状态为stopped,CPU日志警告,触发report_to_master事件,给master发送stats消息(发送一个最终的报告,以防存在任何没有被上报的采样数据),杀死协程

  • 相关阅读:
    试试Linux下的ip命令,ifconfig已经过时了
    VirtualBox中Linux虚拟机与主机共享文件夹
    VirtualBox内刚刚安装完CentOS6.9和7系统,无法调整屏幕的分辨率,也无法设置共享文件夹。解决的方法就是安装VirtualBox客户端增强包。
    Ftp、Ftps与Sftp之间的区别
    Linux 桌面的 Dock 类程序
    Dubbo服务超时
    Dubbo启动时检查
    Dubbo配置参数的优先级
    Dubbo监控中心
    SpringBoot集成监控管理
  • 原文地址:https://www.cnblogs.com/zhaijing/p/15426374.html
Copyright © 2020-2023  润新知