您当前的位置: 首页 > 学无止境 > 心得笔记 网站首页心得笔记
nginx-ab压力测试及nginx性能统计模块
发布时间:2017-11-23 12:14:18编辑:雪饮阅读()
(1)全新安装nginx1.2.7和哈希算法模块以及统计模块:
./configure --prefix=/usr/local/nginx/ --add-module=/usr/local/src/ngx_http_consistent_hash-master --with-http_stub_status_module
(2)配置统计模块:
location /status {
stub_status on;
access_log off;
allow 192.168.0.21;
deny all;
}
注意:该模块仅仅显示状态信息,所以日志要关闭(access_log off),该模块也不对用户开放,所以仅允许指定ip访问(allow 192.168.0.21),其它非该ip都禁用(deny all)。
访问统计模块地址如:http://192.168.0.22/status
显示结果如:
Active connections: 1
server accepts handled requests
13 13 22
Reading: 0 Writing: 1 Waiting: 0
(3)ab压力工具的安装与使用:
安装:yum -y install httpd-tools
使用如: ab -c 1000 -n 50000 http://192.168.0.22/index.html
-c指定了1000并发,-n指定了总请求数为50000。
请求数与耗时结果解析:
Percentage of the requests served within a certain time (ms)
50% 29
66% 39
75% 45
80% 50
90% 75
95% 1032
98% 1068
99% 3017
100% 7049 (longest request)
如上所示,以其中一行数据为例,如”50% 29”是指在50000次请求中有50%请求耗时29秒。
(4)处理ab压力测试工具报错” socket: Too many open files (24)”问题:
当提升并发请求数后如并发请求为2000时可能会报错如” socket: Too many open files (24)”
这是因为每次请求都会在客户端建立socket文件,而请求比较多的时候socket文件也比较多了。所以会报错文件打开太多。
ulimit -n可查看当前系统可打开最大描述符的数量,该数量就是对最大打开文件的数量的限制。
ulimit -n还可以修改系统最大允许打开的文件数量,如:
ulimit -n 20000
该命令修改当前系统最大允许打开文件数量为20000
该命令是临时修改,服务器重启后会失效。
查看ab测试结果中的总请求与失败请求:
修改并发为2000,总请求数为80000后再次查看请求结果,发现完成总请求是80000,其中失败请求是5099。
Complete requests: 80000
Failed requests: 5099
查看ab测试结果中对于请求耗时的最值,平均数,方差,中位数等信息:
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 332 1044.9 15 15017
Processing: 2 46 104.3 20 3074
Waiting: 0 40 104.3 16 3061
Total: 3 378 1065.2 35 15054
列分别有:
min(最小值),mean(平均值),[+/-sd](方差),median(中位数),max(最大值)
行分别有:
Connect :socket链路建立消耗,代表网络状况好坏
Processing :写入缓冲区消耗+链路消耗+服务端消耗
Waiting :写入缓冲区消耗+链路消耗+服务端消耗+读取数据消耗
Total :单个事务总时间
(5)注意:
ab这样的测试工具有一个最大的问题,就是测试工具本身对测试结果构成影响,特别是设置的并发数较高时,可能测的是ab的性能而不是服务端的性能。正是观察者效应,观察者本身对观察结果构成影响。
关键字词:nginx,压力测试,性能统计
上一篇:mysql优化