nginx并发预估与压力测试

一、并发预估
预估算法:{(?G)*1024-system}/请求大小

(?G):表示内存大小
1024:表示内存容量标准进制
system:表示系统和服务占用的额外内存和需要预留的内存
请求大小:表示静态(一般为KB)或动态(一般为MB)的请求大小

二、压测工具ab
1.安装

# yum install httpd-tools -y

2.使用

# ab -n 200 -c 2 http://127.0.0.1/   

## -n总的请求次数  -c并发请求数  -k是否开启长连接 

3.结果解释

## 上述命令得到结果如下
...
Server Software:        nginx/1.16.1
Server Hostname:        127.0.0.1
Server Port:            80

Document Path:          /
Document Length:        4833 bytes

Concurrency Level:      2
Time taken for tests:   0.033 seconds			# 总花费总时长
Complete requests:      200						# 总请求数
Failed requests:        0						#请求失败数
Write errors:           0
Total transferred:      1013600 bytes
HTML transferred:       966600 bytes
Requests per second:    6033.18 [#/sec] (mean)	# 每秒多少请求/s(总请求出/总共完成的时间)
Time per request:       0.331 [ms] (mean)		# 客户端访问服务端, 单个请求所需花费的时间
Time per request:       0.166 [ms] (mean, across all concurrent requests)	# 服务端处理请求的时间
Transfer rate:          29859.54 [Kbytes/sec] received	# 判断网络传输速率, 观察网络是否存在瓶颈

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   0.1      0       1
Processing:     0    0   0.2      0       2
Waiting:        0    0   0.2      0       1
Total:          0    0   0.3      0       2

Percentage of the requests served within a certain time (ms)
  50%      0
  66%      0
  75%      0
  80%      0
  90%      1
  95%      1
  98%      1
  99%      1
 100%      2 (longest request)

三、查看并发连接数和连接状态

1、查看Web服务器(Nginx)的并发请求数及其TCP连接状态

# netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
# netstat -n | awk '/^tcp/ {++state[$NF]} END {for(key in state) print key,"t",state[key]}'

返回结果一般如下

LAST_ACK 5 (正在等待处理的请求数)
SYN_RECV 30
ESTABLISHED 1597 (正常数据传输状态)
FIN_WAIT1 51
FIN_WAIT2 504
TIME_WAIT 1057 (处理完毕,等待超时结束的请求数)

其他参数说明

CLOSED:无连接是活动的或正在进行
LISTEN:服务器在等待进入呼叫
SYN_RECV:一个连接请求已经到达,等待确认
SYN_SENT:应用已经开始,打开一个连接
ESTABLISHED:正常数据传输状态
FIN_WAIT1:应用说它已经完成
FIN_WAIT2:另一边已同意释放
ITMED_WAIT:等待所有分组死掉
CLOSING:两边同时尝试关闭
TIME_WAIT:另一边已初始化一个释放
LAST_ACK:等待所有分组死掉

2、查看Nginx或apache的运行进程数

# ps -ef | grep nginx | wc -l

3、查看Web服务器进程连接数

# netstat -antp | grep 80 | grep ESTABLISHED -c
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sun_xuegang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值