Jmeter分布式压力测试Nginx性能

发表于:2021-1-08 10:30

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:老王谈运维    来源:今日头条

  Apache JMeter 是一款纯 java 的压力测试工具, 它最初设计用于测试 Web 应用程序,但已经扩展到其他测试功能。项目地址 https://jmeter.apache.org/。
  本次使用此分布式压力测试工具测试 nginx 的并发性能。 分布式测试原理如下图:
  各个节点角色分类
  ·Master 控制节点
  ·Slave 发起请求的节点
  ·Target 需要测试的目标节点
  本次测试使用 11 台服务器,各个节点信息和角色分类如下:
  一、软件部署和配置
  1、master 和 slave 节点安装 java1.8 环境,步骤略。
  2、master 和 slave 节点下载最新版 jmeter3.3 并配置。
  ·下载地址: http://mirrors.tuna.tsinghua.edu.cn/apache//jmeter/binaries/apache-jmeter-3.3.tgz
  1)Master 配置
  解压下载的软件包,修改配置文件「apache-jmeter-3.3\bin\jmeter.properties」中内容将 「remote_hosts=127.0.0.1 」更改为
remote_hosts=223.111.185.98,223.111.185.99,223.111.185.100,223.111.185.101,223.11 1.185.102,223.111.185.103,223.111.185.104,223.111.185.105,223.111.185.106
  2)Master 启动
  点击「apache-jmeter-3.3\bin\ ApacheJMeter.jar」 运行软件 
  3)Master 测试计划配置
  添加线程组:
  配置参数如下三个参数:
  添加 http 的 sample
  配置如下三个参数
  然后点击保存测试计划
  4)Slave 配置:
  1、本次软件下载并解压在/usr/local/src/apache-jmeter-3.3/目录 
  2、更改 hosts: echo "`ifconfig p2p1 |grep 'inet addr' |cut -d: -f2 |cut -d" " -f1` `hostname`" >>/etc/hosts 
  3、更改 jvm 内存设置: sed -i "s/-Xms512m -Xmx512m/-Xms30720m -Xmx51200m/g" /usr/local/src/apachejmeter-3.3/bin/jmeter salve 
  4、启动: /usr/local/src/apache-jmeter-3.3/bin/jmeter-server &
  3、Target 配置:
  本次只是测试 nginx 的并发数,故断言在外部实现。在外部监测点执行「curl -I http://223.111.185.107/yundun_monitor_node」无返回则判断 ngixn 无法服务。由于压测可能导致 target 无法登陆,故提前设置脚本记录实时连接数到日志 文件。当外部无法访问节点时记录时间并和 Target 上的时间点的连接数对比。
  Target 配置记录连接数: screen -R ss for ((a=1;a<=10000;a++)); do echo $a `date`; sleep 1; ss -s >>/root/ss.log; done 
  ctrl+a +d 退出 screen 后台执行。
  4、外部测试 Target 可用性配置
  外部一台服务器执行 for ((a=1;a<=1000;a++)); do echo $a `date`; sleep 1; curl -I http://223.111.185.107/yundun_monitor_node; done
  二、Master 发起压测
  三、分析测试结果
  一般几分钟内 Target 节点将无法访问。此时查看外部检测节点访问情况。出现无法访问的时候记录时间。
  由于并发很大可能无法在 slave 上停掉测试。需要杀掉 slave 节点上的 jmeter-server 进程来停掉压测。
  执行:killall -9 jmeter-server 
  killall -9 java 
  等待 target 节点恢复登录 target 查看并发记录日志文件在对应时间点的连接:
  测试结果:本次测试 estab 连接为 108155 的时候,在外部无法访问 nginx 页面。

      本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号