测试:
# -c表示并发请求数为1000,-n表示总的请求数为10000[root@localhost ~]#ab -c 1000 -n 10000 http://192.168.31.50/This is ApacheBench, Version 2.3 <$Revision: 1843412 $>Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/Licensed to The Apache Software Foundation, http://www.apache.org/Benchmarking 192.168.31.50 (be patient)apr_socket_recv: Connection reset by peer (104)Total of 223 requests completed[root@localhost ~]#
直接报错,尴尬了,难道是队列不够设置下:
vim /etc/sysctl.confnet.ipv4.tcp_syncookies = 0net.ipv4.tcp_max_syn_backlog =1024# 生效:sysctl -p# 注意net.ipv4.tcp_syncookies设置为1的话,半连接队列没有用的
SYN Cookie 是对 TCP 服务器端的三次握手协议作一些修改,专门用来防范 SYN Flood 攻击的一种手段 。它的原理是,在 TCP 服务器收到 TCP SYN 包并返回 TCP SYN+ACK 包时,不分配一个专门的数据区,而是根据这个 SYN 包计算出一个 cookie 值 。在收到 TCP ACK 包时,TCP 服务器在根据那个 cookie 值检查这个 TCP ACK 包的合法性 。如果合法,再分配专门的数据区进行处理未来的 TCP 连接 。结果还不行,抓包看下,都是直接对 80 端口发送 RST 报文,有点尴尬,没看到连接报文,后来查了下,可能是在接手 tcp_syncookies 报错,所以把报错继续发送选项打开,即加个-r 选项 如下:
[root@localhost ~]#ab -r -c 1000 -n 10000 http://192.168.31.50/This is ApacheBench, Version 2.3 <$Revision: 1843412 $>Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/Licensed to The Apache Software Foundation, http://www.apache.org/Benchmarking 192.168.31.50 (be patient)Completed 1000 requestsCompleted 2000 requestsCompleted 3000 requestsCompleted 4000 requestsCompleted 5000 requestsCompleted 6000 requestsCompleted 7000 requestsCompleted 8000 requestsCompleted 9000 requestsCompleted 10000 requestsFinished 10000 requestsServer Software:nginx/1.15.4Server Hostname:192.168.31.50Server Port:80Document Path:/Document Length:153 bytesConcurrency Level:1000Time taken for tests:0.994 secondsComplete requests:10000Failed requests:0Non-2xx responses:10000Total transferred:3030000 byteshtml transferred:1530000 bytesRequests per second:10061.44 [#/sec] (mean)Time per request:99.389 [ms] (mean)Time per request:0.099 [ms] (mean, across all concurrent requests)Transfer rate:2977.16 [Kbytes/sec] receivedConnection Times (ms)minmean[+/-sd] medianmaxConnect:056.7239Processing:132 101.811851Waiting:131 101.810851Total:337 104.413870Percentage of the requests served within a certain time (ms)50%1366%1675%1980%2190%4495%8498%45399%858 100%870 (longest request)
关键输出信息:1.每秒平均发送请求:Requests per second: 10061.44 [#/sec](mean)2.平均请求时延 Time per request: 99.389 [ms](mean)3.吞吐量: Transfer rate: 2977.16 [Kbytes/sec] received
3.4 应用层测试性能wrk、TCPCopy、Jmeter 或者 LoadRunner 等工具可以测试实际负载的 。以 wrk 为例测试:wget https://github.com.cnpmjs.org/wg/wrktar xvf wrk*cd wrk*makecp wrk /usr/local/bin
测试:# 测试 -t12 开始12个线程 -c400 保持400个http连接 -d30s 持续时间30s[root@localhost wrk-master]# wrk -t12 -c400 -d30s http://192.168.31.50/Running 30s test @ http://192.168.31.50/12 threads and 400 connectionsThread StatsAvgStdevMax+/- StdevLatency22.42ms17.12ms 564.75ms97.18%Req/Sec1.56k261.573.13k70.10%558047 requests in 30.04s, 163.89MB readNon-2xx or 3xx responses: 558047Requests/sec:18574.38Transfer/sec:5.46MB
- 每秒发送请求数:18574.38
- 吞吐量为:5.46MB/s
- 平均时延:22.42ms
推荐阅读
- 红茶的盛产地,红茶的种类和图片大全
- 红茶种类大红袍,祁红红茶和大红袍
- 红茶制作和冲泡方式,泡红茶种类
- 各地红茶的口味,红茶的种类和图片大全
- 24寸和26寸箱哪个实用?
- 山药不能和什么一起吃呢
- 孕妇猪肝木耳能一起吃吗
- 怎么辨认红茶和黑茶,红茶的种类和图片大全
- 工夫红茶的种类,红茶在冲泡前和冲泡后的形状
- 红茶收购,红茶种类大全