linux系统nginx工具接口压力测试工具和关联php页面

接口压力测试工具和nginx关联php

    • ab接口压力测试工具
        • 工具下载与使用
        • 参数选项
        • 内容解释
        • ab性能指标
          • 吞吐率(Requests per second)
          • 并发连接数(The number of concurrent connections)
          • 并发用户数(Concurrency Level)
          • 用户平均请求等待时间(Time per request)
          • 服务器平均请求等待时间(Time per request:across all concurrent requests)
    • 配置nginx关联php
        • 在nginx的配置文件中配置关于php的信息
        • 重启nginx
        • 查看nginx服务状态
        • 写一个php的测试页面

ab接口压力测试工具

ab是Apache超文本传输协议(HTTP)的性能测试工具。其设计意图是描绘当前所安装的Apache的执行性能,主要是显示你安装的Apache每秒可以处理多少个请求。

工具下载与使用
yum install httpd-tools              //安装工具
ab -n 2000 -c 2 http://127.0.0.1/    //接口压力测试

-n 总的请求数
-c 并发数
-k 是否开启长连接
参数选项
-n:即requests,用于指定压力测试总共的执行次数
-c:即concurrency,用于指定的并发数
-t:即timelimit,等待响应的最大时间(单位:秒)
-b:即windowsize,TCP发送/接收的缓冲大小(单位:字节)
-p:即postfile,发送POST请求时需要上传的文件,此外还必须设置-T参数
-u:即putfile,发送PUT请求时需要上传的文件,此外还必须设置-T参数
-T:即content-type,用于设置Content-Type请求头信息,例如:application/x-www-form-urlencoded,默认值为text/plain
-v:即verbosity,指定打印帮助信息的冗余级别
-w:以HTML表格形式打印结果
-i:使用HEAD请求代替GET请求
-x:插入字符串作为table标签的属性
-y:插入字符串作为tr标签的属性
-z:插入字符串作为td标签的属性
-C:添加cookie信息,例如:"Apache=1234"(可以重复该参数选项以添加多个)
-H:添加任意的请求头,例如:"Accept-Encoding: gzip",请求头将会添加在现有的多个请求头之后(可以重复该参数选项以添加多个)
-A:添加一个基本的网络认证信息,用户名和密码之间用英文冒号隔开
-P:添加一个基本的代理认证信息,用户名和密码之间用英文冒号隔开
-X:指定使用的和端口号,例如:"126.10.10.3:88"
-V:打印版本号并退出
-k:使用HTTP的KeepAlive特性
-d:不显示百分比
-S:不显示预估和警告信息
-g:输出结果信息到gnuplot格式的文件中
-e:输出结果信息到CSV格式的文件中
-r:指定接收到错误信息时不退出程序
-H:显示用法信息,其实就是ab -help
内容解释
Server Software:        nginx/1.10.2 (服务器软件名称及版本信息)
Server Hostname:        192.168.1.106(服务器主机名)
Server Port:            80 (服务器端口)

Document Path:          /index1.html. (供测试的URL路径)
Document Length:        3721 bytes (供测试的URL返回的文档大小)

Concurrency Level:      1000 (并发数)
Time taken for tests:   2.327 seconds (压力测试消耗的总时间)
Complete requests:      5000 (的总次数)
Failed requests:        688 (失败的请求数)
Write errors:           0 (网络连接写入错误数)
Total transferred:      17402975 bytes (传输的总数据量)
HTML transferred:       16275725 bytes (HTML文档的总数据量)
Requests per second:    2148.98 [#/sec] (mean) (平均每秒的请求数) 这个是非常重要的参数数值,服务器的吞吐量 
Time per request:       465.338 [ms] (mean) (所有并发用户(这里是1000)都请求一次的平均时间)
Time  request:       	0.247 [ms] (mean, across all concurrent requests) (单个用户请求一次的平均时间)
Transfer rate:          7304.41 [Kbytes/sec] received 每秒获取的数据长度 (传输速率,单位:KB/s)
...
Percentage of the requests served within a certain time (ms)
  50%    347  ## 50%的请求在347ms内返回 
  66%    401  ## 60%的请求在401ms内返回 
  75%    431
  80%    516
  90%    600
  95%    846
  98%   1571
  99%   1593
  100%   1619 (longest request)
ab性能指标
吞吐率(Requests per second)

服务器并发处理能力的量化描述,单位是reqs/s,指的是在某个并发用户数下单位时间内处理的请求数。某个并发用户数下单位时间内能处理的最大请求数,称之为最大吞吐率。记住:吞吐率是基于并发用户数的。这句话代表了两个含义:

吞吐率和并发用户数相关
不同的并发用户数下,吞吐率一般是不同的

计算公式:总请求数/处理完成这些请求数所花费的时间,即

Request per second=Complete requests/Time taken for tests

这个数值表示当前机器的整体性能,值越大越好
并发连接数(The number of concurrent connections)
并发连接数指的是某个时刻服务器所接受的请求数目,简单的讲,就是一个会话。
并发用户数(Concurrency Level)
要注意区分这个概念和并发连接数之间的区别,一个用户可能同时会产生多个会话,也即连接数。在HTTP/1.1下,IE7支持两个并发连接,IE8支持6个并发连接,FireFox3支持4个并发连接,所以相应的,我们的并发用户数就得除以这个基数。
用户平均请求等待时间(Time per request)

计算公式:处理完成所有请求数所花费的时间/(总请求数/并发用户数),即:

Time per request=Time taken for tests/(Complete requests/Concurrency Level)
服务器平均请求等待时间(Time per request:across all concurrent requests)

计算公式:处理完成所有请求数所花费的时间/总请求数,即:

Time taken for/testsComplete requests

配置nginx关联php

在nginx的配置文件中配置关于php的信息
vim /etc/nginx/nginx.conf      //进入nginx的配置文件

//配置nginx支持php的首页
         location / {
             root   html;
             index  index.php index.html index.htm;
         }
 
//配置php的相关信息
          location ~ \.php$ {
              root           html;
              fastcgi_pass   127.0.0.1:9000;     #将进入到该location内的uri请求看做是cgi程序,并将请求发送到9000端口,交由php-fpm处理
              fastcgi_index  index.php;
              fastcgi_param  SCRIPT_FILENAME  /usr/local/nginx/html$fastcgi_script_name;
              include        fastcgi_params;
          }
重启nginx
nginx -t          //查看nginx的配置文件有没有报错
nginx -s reload   //后台重启nginx配置文件
查看nginx服务状态
systemctl status nginx.service   //查看nginx服务状态
写一个php的测试页面

http://ip 端口 //默认80/443端口可以不输入

cd /usr/local/nginx/html     //进入到nginx的发布页面

rm -rf *                     //删除安装时自带的页面

vim index.php                //写一个index.php页面
    <?php
    phpinfo();
    ?>

你可能感兴趣的:(linux,nginx,linux,nginx,测试工具)