ab压测nginx_Nginx系列笔记-压测

Updated on 五月 18, 2017

Nginx系列笔记-压测

这篇文章主要介绍了配置ab来为Nginx服务器做压力测试的方法,ab是针对Apache的测试工具但本文讲解其测试Nginx的过程,需要的朋友可以参考下

但是,在压力测试中存在一个共性,那就是压力测试的结果与实际负载结果不会完全相同,就算压力测试工作做的再好,也不能保证100%和线上性能指标相同。面对这些问题,我们只能尽量去想方设法去模拟。所以,压力测试非常有必要,有了这些数据,我们就能对自己做维护的平台做到心中有数。

目前较为常见的网站压力测试工具有webbench、ab(apache bench)、tcpcopy、loadrunner 。

我本机是采用VM虚拟的Linux系统: CenterOs7 64位  1G虚拟内存  33G硬盘空间;

本章主要是介绍ab的测试流程:

安装AB ;

yum install -y httpd-tools;

ab –help;

f053c370048ecec4a09be2cd8963af27.png

准备之后我们就可以测试了

如:

ab -kc 1000 -n 10000 http://192.168.1.104/index.html (意思是:1000并发,10000请求)

输出:

This is ApacheBench, Version 2.3 

Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/

Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking 192.168.1.104 (be patient)

Completed 1000 requests

Completed 2000 requests

Completed 3000 requests

Completed 4000 requests

Completed 5000 requests

Completed 6000 requests

Completed 7000 requests

Completed 8000 requests

Completed 9000 requests

Completed 10000 requests

Finished 10000 requests

Server Software:        nginx/1.9.9

Server Hostname:        192.168.1.104

Server Port:            80

Document Path:          /index.html

Document Length:        612 bytes

Concurrency Level:      1000

Time taken for tests:   1.603 seconds

Complete requests:      10000

Failed requests:        0

Write errors:           0

Keep-Alive requests:    10000

Total transferred:      8640000 bytes

HTML transferred:       6120000 bytes

Requests per second:    6237.84 [#/sec] (mean)

Time per request:       160.312 [ms] (mean)

Time per request:       0.160 [ms] (mean, across all concurrent requests)

Transfer rate:          5263.18 [Kbytes/sec] received

Connection Times (ms)

min  mean[+/-sd] median   max

Connect:        0   22 111.2      0    1005

Processing:     7  117 300.5     35    1346

Waiting:        7  117 300.5     35    1346

Total:          7  139 347.9     35    1531

Percentage of the requests served within a certain time (ms)

50%     35

66%     36

75%     37

80%     38

90%    183

95%   1338

98%   1348

99%   1523

100%   1531 (longest request)

上述指标说明:

Requests per second:    6237.84 [#/sec] (mean)

表示当前测试的服务器每秒可以处理6237.84个静态html的请求事务,后面的mean表示平均。这个数值表示当前机器的整体性能,值越大越好。

Time per request:       160.312 [ms] (mean)

Time per request:       0.160 [ms] (mean, across all concurrent requests)

单个并发的延迟时间,后面的mean表示平均。隔离开当前并发,单独完成一个请求需要的平均时间。

前一个衡量单个请求的延迟,cpu是分时间片轮流执行请求的,多并发的情况下,一个并发上的请求时需要等待这么长时间才能得到下一个时间片。

计算方法Time per request: 0.160 [ms] (mean, across all concurrent requests)*并发数

通俗点说就是当以-c 10的并发下完成-n 1000个请求的同时,额外加入一个请求,完成这个求平均需要的时间。

后一个衡量性能的标准,它反映了完成一个请求需要的平均时间,在当前的并发情况下,增加一个请求需要的时间。

计算方法Time taken for tests: 0.160 seconds/Complete requests: 1000

通俗点说就是当以-c 10的并发下完成-n 1001个请求时,比完成-n1000个请求多花的时间。

你可以适当调节-c 和-n大小来测试服务器性能,借助htop指令来直观的查看机器的负载情况。

如果想再详细的查看和统计通过Nginx 的并发指标,可以通过 –with-http_stub_status_module 是为了启用 nginx 的 NginxStatus 功能,用来监控 Nginx 的当前状态。

01c65f9e21ecf1a5816f5c8218475ba5.png

我的Nginx编译参数:

./configure –prefix=/usr/local/nginx –add-module=/opt/ngx_http_consistent_hash-master –with-http_gzip_static_module –with-http_stub_status_module

开启:

location  ~ ^/status/ {

stub_status on; #Nginx 状态监控配置

access_log off;

#allow 限制统计模块的访问权限

#deny all;

}

28022859fc913c6df411fd110d774fef.png

压测的过程中可以看看这些数值的变化;

在压测过程中遇到种种问题,在下篇文章将重点分析Nginx的压测优化过程;

Category: Nginx, 分布式架构 Tags: Nginx

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值