1. Locust的hack之路- 压测脚本的传输及自启动slaves
来源:互联网 发布:解压缩软件密码破解 编辑:程序博客网 时间:2024/06/17 01:12
刚开始使用Locust压测脚本进行分布式压测的时候,往往需要8个或更多的slave来支持性能测试,因为一直以来都是习惯在windows下写python脚本,所以在windows下写好脚本,然后调试好后,而压测机是linux机器,每次压测都要先把压测文件拷贝到linux的压测机,然后手动一个一个slave的启动,很费时费力。这个时间就考虑有没有更好的方式支持一条命令行就把这些事给干了,而我只要关注压测过程。
要实现这样的目标,就得要有东西支持跨机器传输文件及命令的传输,而且也考虑到后面需要收集相关机器的性能指标,就开始打算写一个monitor。这样每台机器都有一个monitor,和master机器的通道就打通了。
借鉴Locust的实现方式,monitor与master之间的通讯也是使用pyzmq的方式。首先定义一个BaseSocket的类,提供Send和recv的方法,然后定义个Client类,开启一个默认port是5530的监听服务,另外提供一个方法连接master机器的方法。
接下来在另外一个runner的文件里开一个进程worker,来接受从master发过来的各种命令,如下图
其中的send_file和start_slaves就是来到达开始碰到的问题,置于其他后面或做解释。
要到达目标master在启动locust服务的时候需要做相应的动作,这就开始对现成Locust的代码的二次开发。
1. 增加启动参数支持,slaves-host用来指定要负载机,可以一台或多台,中间已,隔开,同事增加slaves-count参数来指定不用负载机开启的slaves的数量,同样以,隔开
2. 连接指定的slave负载机,然后传输测试脚本,及开启相应数量的slaves
回到client的monitor中
1. Monitor的client接收到connect_server的命令后,调优zmqrpc的connectToMaster的方法与master建立连接
2. 接收到send_file的命令,把文件内容保存在本地一个临时的文件中
3. 接收到start_slaves命令,使用接收到测试文件启动相应数量的slaves
通过monitor工具在各负载机开启的服务,与master机器建立通讯,实现了一键启动达到传输测试文件及开始slaves,可以直接进入压测,省去先前重复繁琐的工作。同时有了这个monitor后面就可以开展更多的hack工作了。
阅读全文
0 0
- 1. Locust的hack之路- 压测脚本的传输及自启动slaves
- 9.性能测试工具Locust的高级使用——分布式使用Locust及定制Locust
- linux的自启动脚本
- 脚本之查询自实例启动至今的buffer命中率
- Tomcat 自启动环境参数的设置及 Linux 脚本的启动顺序
- Locust性能测试工具的安装及使用
- Linux下nginx的自启动脚本
- 设置Suse Linux的自启动脚本
- Linux开机自启动脚本的总结
- Spark 启动脚本——sbin/slaves.sh
- Spark 启动脚本——sbin/start-slaves.sh
- Locust的API介绍-----Locust类和HttpLocust类
- Locust——对其他协议(非http协议)的脚本开发和使用
- NodeJS多核多线程的解决方案 -- pm2 之三 自启动脚本编写
- google-hack相关的python脚本
- tomcat的内存优化及自启动
- 我的一个Centos开机自启动脚本的制作
- Locust的API介绍-----ResponseContextManager类InterruptTaskSet Exception及Event hooks
- Python小练习
- Echarts x轴字体倾斜
- Python3学习笔记7-文件的读写
- 22 More Libraries
- JavaScript数据类型
- 1. Locust的hack之路- 压测脚本的传输及自启动slaves
- 说说 Java I/O 系统——如何执行操作系统的命令
- 23 Dialects of Racket and Scheme
- Centos 安装ab工具
- Android实现获取本机中所有图片
- Android获取debug和正式的SHA1值
- hdu-1241-Oil Deposits(dfs水)
- 24 Command-Line Tools and Your Editor of Choice
- Ubuntu14+OpenCV3.1+Caffe 虚拟机安装笔记(四)虚拟机下载