一.xshell安装(由于密匙是xshell版,因此secureCRT无法使用,压测前一定要协调好使用时间,登录后用who命令查看是否有人正在使用)
(1)xshell中创建新连接,在主机中输入mesos-master-online004-jylt.qiyi.virtual,端口号为23,点击确定
(2) 用户名中输入root,点击确定
(3) 在弹出的身份验证框中选择Public Key,点击浏览导入密匙文件,就可以连上压测主机了
二.准备压测脚本
线程组设置
(1)在jmeter中编写测试脚本并保存
线程组:并发个数
持续时间:每一轮压力测试运行的时间,一般为10分钟
Rump-up :当并发个数大时,需要置值,例如并发1500的时候设为2.否则会在刚开始进行压力测试的时候内存已满。
注意:
线程数为单台的并发数,当启动了分布式的时候,压测的线程数=线程数*分布式台数
三.压力测试步骤
(1)启动分布式机器(PS:使用前请先用who命令看看当前是否有其他人正在使用,避免同时使用,会影响测试结果)
- 进入到/data/bin目录下
- 调用list-jmeter-instances.py查看从机是否已经启动
- 如果上面命令出现如下图所示结果,则调用 ./destroy-jmeter-cluster.sh
- 启动 new-jmeter-server-cluster.sh
- 设置启动的丛机数目 scale-jmeter-cluster.sh n ,1<n<10,目前只能填为10,填为其它数时会启动报错。
- 查询丛机数目 list-jmeter-instances.py ,确保出现了10台从机,如果不够10台,稍等几秒钟继续调用list-jmeter-instances.py观察。
- 调用update-jmeter-properties.py更新jmeter从机配置
- 如果压测时需要配置host,比如 1.1.1.1 passport.iqiyi.com passport.qiyi.domain,调用如下脚本: ./modifyHost.sh 1.1.1.1 passport.iqiyi.com passport.qiyi.domain
- 如果脚本需要使用参数化文件,例如文件名为params.csv,放在/home/work目录下(从windows使用rz –be命令上传params.csv文件到/home/work下),脚本中指定参数化文件在/tmp目录下,如下图所示:
则可以调用 ./copyFile /home/work/params.csv /tmp/params.csv将文件拷贝至所有从机的/tmp目录下。如果params.csv文件上传到/data/bin目录下,则可以直接使用相对路径:./copyFile params.csv /tmp/params.csv
(2)启动本地脚本
- 进入到/data/apache-jmeter-2.13/bin目录下
- 将脚本文件从本机电脑利用rz命令导入到这个目录下
- 使用./jmeter-server & 启动server端
- 使用ps –ef|grep jmeter 查看server端是否已启动
- 使用./jmeter -n -t danmu.jmx –r启动压测脚本
- 通知开发监控被测服务器的性能
- 屏幕上会打印出平均响应时间,错误率,qps性能指标
- 跑完一笔数据后,可以修改脚本中的并发个数然后再次启动
./jmeter -n -t danmu.jmx –r启动压测脚本
- 获取各个并发个数或者各个场景下的均响应时间,错误率,qps性能指标形成报告
注意:
(1) danmu.jmx 为脚本名称,根据脚本名进行相应的修改
(2) 测试过程中,如果出现脚本卡主的情况,只需要调用./restart-jmeter-servers.sh脚本即可继续测试,如果调用了./destroy-jmeter-cluster.sh则需要从第四步重新开始。
(3) 使用ssh –p23 从机名字 可以连接到从机,一般用来观测从机到测试机的网络情况
(4) 根据测试结果动态的调整压测脚本的线程数,记录每次数据并绘制图表用于撰写测试报告