首页_大虾个人博客

Locust 运行模式

  • 作者:大虾
  • 时间:2019年3月8日 06:38
简介单进程运行和多进程分布式运行

在开始运行Locust脚本之前,我们先来看下Locust支持的运行模式。

运行Locust时,通常会使用到两种运行模式:单进程运行和多进程分布式运行。


单进程运行模式的意思是,Locust所有的虚拟并发用户均运行在单个Python进程中,具体从使用形式上,又分为no_web和web两种形式。该种模式由于单进程的原因,并不能完全发挥压力机所有处理器的能力,因此主要用于调试脚本和小并发压测的情况。


当并发压力要求较高时,就需要用到Locust的多进程分布式运行模式。从字面意思上看,大家可能第一反应就是多台压力机同时运行,每台压力机分担负载一部分的压力生成。的确,Locust支持任意多台压力机(一主多从)的分布式运行模式,但这里说到的多进程分布式运行模式还有另外一种情况,就是在同一台压力机上开启多个slave的情况。这是因为当前阶段大多数计算机的CPU都是多处理器(multiple processor cores),单进程运行模式下只能用到一个处理器的能力,而通过在一台压力机上运行多个slave,就能调用多个处理器的能力了。比较好的做法是,如果一台压力机有N个处理器内核,那么就在这台压力机上启动一个master,N个slave。当然,我们也可以启动N的倍数个slave,但是根据我的试验数据,效果跟N个差不多,因此只需要启动N个slave即可。



单进程运行



方式一:no_web

如果采用no_web形式,则需使用--no-web参数,并会用到如下几个参数。

①:-c, --clients: 设置虚拟用户数
②:-t, 设置运行时间 (单位s)
③:-r, --hatch-rate:设置每秒启动虚拟用户数
④:-- csv ,文件导出
⑤:--host ,如果在Terminal中指定的话,该项可以不填


locust -f baidu.py --no-web -c 200 -r 20 -t 30




方式二:web


如果采用web形式,,则通常情况下无需指定其它额外参数,Locust默认采用8089端口启动web;如果要使用其它端口,就可以使用如下参数进行指定。
locust -f baidu.py -P xxx
locust -f baidu.py --port xxx






多进程分布式运行



不管是单机多进程,还是多机负载模式,运行方式都是一样的,都是先运行一个master,再启动多个slave。

启动master时,需要使用--master参数;同样的,如果要使用8089以外的端口,还需要使用-P, --port参数。





master启动后,还需要启动slave才能执行测试任务。

启动slave时需要使用--slave参数;在slave中,就不需要再指定端口了。





如果slave与master不在同一台机器上,还需要通过--master-host参数再指定master的IP地址, !!记住千万要关防火墙!!
locust -f baidu.py --slave --master-host=xxx.xxx.xxx.xxx








 

下一篇:返回列表

Top