使用jmeter进行压力测试与nginx连接数优化

时间:2022-03-25 06:47:10

案例训练目标

  1. 学会使用jmeter工具
  2. 学会配置nginx连接数优化

包含技能点

  1. 使用jmeter做压力测试
  2. 配置nginx的并发连接数

环境要求

PC支持VT,4G内存以上;vmware虚拟机安装有centos7和win7

使用jmeter进行压力测试与nginx连接数优化

案例子任务一、配置实验环境

步骤1:在centos7虚拟机启用docker容器,配置测试对象

  1. #docker network ls //查看宿主机上的docker网络类型种类,

使用jmeter进行压力测试与nginx连接数优化

  1. 启动容器APP1,设定地址为172.18.0.111,

docker run -d --privileged --net cluster --ip 172.18.0.111 --name APP1 php-apache /usr/sbin/init

使用jmeter进行压力测试与nginx连接数优化

  1. 配置容器APP1,编辑phpinfo.php文件;
  2. 启动容器nginx1,设定地址为172.18.0.11,

使用jmeter进行压力测试与nginx连接数优化

docker run -d --privileged --net cluster --ip 172.18.0.11 -p 80:80 --name nginx1 nginx /usr/sbin/init

  1. 配置容器nginx1,设置反向代理

location / {

proxy_pass http://172.18.0.111;

}

使用jmeter进行压力测试与nginx连接数优化

  1. 在主机浏览器访问centos7地址,能够访问到APP1的phpinfo页面,

使用jmeter进行压力测试与nginx连接数优化

步骤2:在win7虚拟机安装jdk和jmeter,配置测试环境

  1. 下载jdk_8.0.1310.11_64.exe到win7虚拟机
  2. 安装jdk_8.0,设置环境变量

使用jmeter进行压力测试与nginx连接数优化

设置3项属性JAVA_HOME,PATH,CLASSPATH(大小写无所谓),若已存在则点击"编辑",不存在则点击"新建"。JAVA_HOME指明JDK安装路径,Path项下添加:;%JAVA_HOME%\bin; %JAVA_HOME%\jre\bin,注意用分号隔开,在CLASSPATH添加:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar

  1. 打开命令行窗口, java -version 检查java环境,

使用jmeter进行压力测试与nginx连接数优化

  1. 下载解压运行jmeter,选择语言为简体中文,

使用jmeter进行压力测试与nginx连接数优化

案例子任务二、使用jmeter进行压力测试

步骤1:建立测试计划进行压力测试

  1. 编辑测试计划名称,创建并配置线程组,

使用jmeter进行压力测试与nginx连接数优化

  1. 创建配置http请求,

使用jmeter进行压力测试与nginx连接数优化

  1. 添加运行结果监听器,

使用jmeter进行压力测试与nginx连接数优化

  1. 运行测试计划,查看测试结果,

使用jmeter进行压力测试与nginx连接数优化

步骤2:录制测试脚本进行压力测试

  1. 编辑测试计划名称,创建并配置线程组,

使用jmeter进行压力测试与nginx连接数优化

  1. 添加运行结果监听器,

使用jmeter进行压力测试与nginx连接数优化

  1. 添加HTTP代理服务器并设置参数,

使用jmeter进行压力测试与nginx连接数优化

  1. 在代理服务器下添加查看结果树
  2. 启动代理服务器
  3. 在浏览器设置代理服务器,

使用jmeter进行压力测试与nginx连接数优化

  1. 使用浏览器访问目标网站
  2. 在代理服务器下查看结果树,

使用jmeter进行压力测试与nginx连接数优化

使用jmeter进行压力测试与nginx连接数优化

  1. 在线程组下查看http请求,

使用jmeter进行压力测试与nginx连接数优化

  1. 启动线程组进行测试并查看结果,

使用jmeter进行压力测试与nginx连接数优化

使用jmeter进行压力测试与nginx连接数优化

案例子任务三、使用ab进行压力测试

[root@localhost ~]#ab -c 1000 -n 10000 http://192.168.152.11/index.html

Document Path:          /index.html.zh-cn.gb2312

//测试的页面文档

Document Length:        1018 bytes

//文档大小

Concurrency Level:      1000

//并发数
Time taken for tests:   8.188731 seconds
//整个测试持续的时间
Complete requests:      1000
//完成的请求数量
Failed requests:        0
//失败的请求数量
Write errors:           0
Total transferred:      1361581 bytes
//整个场景中的网络传输量
HTML transferred:       1055666 bytes
//整个场景中的HTML内容传输量
Requests per second:    122.12 [#/sec] (mean)
//大家最关心的指标之一,相当于 LR 中的
每秒事务数
,后面括号中的 mean 表示这是一个平均值
Time per request:       8188.731 [ms] (mean)
//大家最关心的指标之二,相当于 LR 中的
平均事务响应时间
,后面括号中的 mean 表示这是一个平均值
Time per request:       8.189 [ms] (mean, across all concurrent requests)
//每个请求实际运行时间的平均值
Transfer rate:          162.30 [Kbytes/sec] received
//平均每秒网络上的流量,可以帮助排除是否存在网络流量过大导致响应时间延长的问题

使用jmeter进行压力测试与nginx连接数优化

使用jmeter进行压力测试与nginx连接数优化

使用jmeter进行压力测试与nginx连接数优化

  1. [root@localhost ~]# ab -c 2000 -n 10000 http://192.168.152.11/index.html

    使用jmeter进行压力测试与nginx连接数优化

使用jmeter进行压力测试与nginx连接数优化

案例子任务四、优化nginx连接数

步骤1:修改linux打开的文件数

  1. 查看linux系统限制

使用jmeter进行压力测试与nginx连接数优化

  1. 修改linux打开文件数限制

使用jmeter进行压力测试与nginx连接数优化

使用jmeter进行压力测试与nginx连接数优化

步骤2:调整nginx连接数

  1. [root@localhost ~]# ab -c 3000 -n 10000 http://192.168.1.11/index.html

使用jmeter进行压力测试与nginx连接数优化

使用jmeter进行压力测试与nginx连接数优化

使用jmeter进行压力测试与nginx连接数优化

使用jmeter进行压力测试与nginx连接数优化

  1. 查看nginx连接数

使用jmeter进行压力测试与nginx连接数优化

  1. 修改nginx连接数

使用jmeter进行压力测试与nginx连接数优化在主

  1. [root@localhost ~]# ab -c 3000 -n 10000 http://192.168.152.11/index.html,截图

ulimit -n 65535

使用jmeter进行压力测试与nginx连接数优化