接口压力测试,我们首先要评估好系统压力,然后使用工具检测当前系统情况,是否能满足对应压力的需求。
安装ab压力测试工具
[root@web01 conf.d]# yum install httpd-tools -y
压测工具使用方式
[root@web01 ~]# ab -n 200 -c 2 http://127.0.0.1/
#-n 要执行的请求数
#-c 请求的并发数
#-k 是否开启长连接
ab -n 100000 -c2000 http://wordpress.baimei.com/index.html (必须加上路径)
配置Nginx静态网站与tomcat动态网站环境
#配置nginx
[root@lb01 conf.d]# cat try.conf
server {
listen 80;
server_name try.baimei.com;
location / {
root /code;
try_files $uri $uri/ @java;
index index.jsp index.html;
}
location @java {
proxy_pass http://172.16.1.8:8080;
}
}
#配置nginx使用的静态页面
[root@lb01 conf.d]# echo "nginx ab" > /code/ab.html
#配置tomcat使用的静态页面
[root@web02 ~]# wget http://mirrors.hust.edu.cn/apache/tomcat/tomcat-9/v9.0.16/bin/apache-tomcat-9.0.16.tar.gz
[root@web02 ~]# tar xf apache-tomcat-9.0.16.tar.gz
[root@web02 ~]# cd /usr/share/tomcat/webapps/ROOT
[root@web02 ROOT]# echo "baimei_tomcat" > tomcat.html
#压测工具测试nginx处理静态资源
ab -n 100000 -c2000 http://wordpress.baimei.com/index.html
#压测工具测试tomcat处理静态资源
[root@lb01 conf.d]# ab -n 10000 -c 200 http://try.baimei.com/tomcat.html
Server Software: nginx/1.14.2
Server Hostname: try.baimei.com
Server Port: 80
Document Path: /tomcat.html
Document Length: 13 bytes
Concurrency Level: 200
Time taken for tests: 4.956 seconds
Complete requests: 10000
Failed requests: 0
Write errors: 0
Total transferred: 2510000 bytes
HTML transferred: 130000 bytes
Requests per second: 2017.78 [#/sec] (mean)
Time per request: 99.119 [ms] (mean)
Time per request: 0.496 [ms] (mean, across all concurrent requests)
Transfer rate: 494.59 [Kbytes/sec] received
Server Software: nginx/1.15.3 #测试服务器的名字
Server Hostname: localhost #请求的URL主机名
Server Port: 80 #请求端口
Document Path: / #请求路径
Document Length: 613 bytes #HTTP响应数据的正文长度
Concurrency Level: 500 #并发用户数,这是我们设置的参数之一
Time taken for tests: 0.407 seconds #所有这些请求被处理完成所花费的总时间 单位秒
Complete requests: 5000 #总请求数量,这是我们设置的参数之一
Failed requests: 0 #表示失败的请求数量
Write errors: 0
Total transferred: 4230000 bytes #所有请求的响应数据长度总和。包括每个HTTP响应数据的头信息和正文数据的长度
HTML transferred: 3065000 bytes #所有请求的响应数据中正文数据的总和,也就是减去了Total transferred中HTTP响应数据中的头信息的长度
Requests per second: 12284.44 [#/sec] (mean) #吞吐量,计算公式:Complete requests/Time taken for tests 总请求数/处理完成这些请求数所花费的时间
Time per request: 40.702 [ms] (mean) #用户平均请求等待时间,计算公式:Time token for tests/(Complete requests/Concurrency Level)。处理完成所有请求数所花费的时间/(总请求数/并发用户数)
Time per request: 0.081 [ms] (mean, across all concurrent requests) #服务器平均请求等待时间,计算公式:Time taken for tests/Complete requests,正好是吞吐率的倒数。也可以这么统计:Time per request/Concurrency Level
Transfer rate: 10149.06 [Kbytes/sec] received。 #表示这些请求在单位时间内从服务器获取的数据长度,计算公式:Total trnasferred/ Time taken for tests,这个统计很好的说明服务器的处理能力达到极限时,其出口宽带的需求量。
欢迎来撩 : 汇总all