今天一个前端开发小哥哥问我,“测试大佬,知道 AB 么?”
AB?angelababy,谁不知道啊,怎么问我这个?
不对,没有这么简单,于是我百度谷歌一下,噢,原来是 apache bench,一个搞性能的工具;
于是我回 “apache bench 嘛,怎么了,你要搞性能么?”
小哥哥仿佛找到了救星 “是啊,上司要我预研一下,准备搞,大佬厉害啊,帮我看看这个东西怎么看”
然后丢给我一个这个
emmmmm,啥玩意啊,看着倒是蛮高端大气上档次的,继续祭出谷歌大法,一番研究之后,给他丢了个这个
欢声笑语中,对面打出了 GG,在一堆 666 图后,收下了开发小哥哥的膝盖;
tip:
测试大佬仅为搞笑,本人测试 3 年小萌新一枚
ab 是 Apache 超文本传输协议 (HTTP) 的性能测试工具。是 Apache 自带的压力测试工具,主要对服务器进行网站访问压力测试;
输入命令
ab -n 200000 -c 200 XXXXXXX(请求链接);其中-n 表示请求数,-c 表示并发数
命令输完,报告就出来了,牛的一批;
大概可以分成四段
如我图所示
第一段:
web 服务器的信息:swoole_http_server
(这里其实还是有不少内容的,比如这个 swoole_http_server 是啥,nginx 相关的一些;
可以看这个https://wiki.swoole.com/wiki/page/326.html)
域名是 127.0.0.1
端口是 8080
请求的文档的相关信息,所在位置 “/”
文档的大小为 12 bytes(此为 http 响应的正文长度)
第二段:
Concurrency Level: 200
//并发请求数
Time taken for tests: 6.956 seconds
//整个测试持续的时间
Complete requests: 200000
//完成的请求数
Failed requests: 0
//失败的请求数
Keep-Alive requests : 200000
//保持连接的请求数
Total transferred: 33025410 bytes
//整个场景中的网络传输量
HTML transferred: 2401848 bytes
//整个场景中的 HTML 内容传输量
Requests per second: 28752.66 #/sec
//吞吐率,相当于 LR 中的每秒事务数,后面括号中的 mean 表示这是一个平均值
Time per request: 6.956 ms
//用户平均请求等待时间,相当于 LR 中的平均事务响应时间,后面括号中的 mean 表示这是一个平均值
Time per request: 0.035ms
//服务器平均请求处理时间
Transfer rate: 4636.56 [Kbytes/sec] received
//平均每秒网络上的流量
第三段:
这个消耗时间,比较简单,就不多讲了
第四段:
每个请求处理时间的分布情况,这里有资料说,主要看 90%,也不知道为什么,有时间去研究一下
截止目前,看似说了一堆,其实没啥营养,毕竟就是些基础,10min 谷歌,谁都会,那么我们到底怎么用这个到自己的项目,去监测或者考量性能达不达标呢;
这就要结合具体需求了,还需要一堆性能知识,这个嘛,欲知后事如何,请看下回分解;