今天给大家伙儿分享一下我最近在服务器上捣鼓的ab压力测试,之前也就是听过,没真正上手玩过,这回算是从头到尾体验了一把,感觉还挺有意思的。
初识ab:安装与基本命令
我连ab是啥玩意儿都不知道,就知道是个压力测试工具。上网一搜,才知道它是Apache自带的一个小工具,专门用来做HTTP服务器性能测试的。既然要玩,那就先装上呗。我用的是CentOS系统,直接一个yum install httpd-tools
搞定,简单粗暴。
装好之后,就开始琢磨怎么用。最基本的命令就是ab -n 请求总数 -c 并发数 URL
。比如,我要模拟1000个请求,并发数是10,测试我的一个网站,那就是:
ab -n 1000 -c 10 */
跑起来之后,屏幕上哗出来一大堆东西,看的我眼花缭乱。不过别慌,最关键的就是关注那几个指标:
- Requests per second: 每秒处理的请求数,越高越
- Time per request: 每个请求的平均响应时间,越低越
- Failed requests: 失败的请求数,当然是0最
实战演练:测试我的小博客
光看理论没用,得实战!我就拿我自己的小博客练手,先用最简单的命令跑了一下,发现QPS(每秒查询率)低得可怜,响应时间也慢的要死。我心想这不行,得优化!
我怀疑是服务器配置太低,就升级了一下服务器的内存和CPU。再跑一遍,稍微好一点,但还是不尽如人意。看来硬件不是唯一的问题。
然后,我就开始怀疑是我的博客程序本身的问题。我的博客是用WordPress搭的,装了一堆插件,估计是这些插件拖了后腿。我就把一些不常用的插件关掉,再跑一遍,果然QPS提高了不少,响应时间也降下来了。
我又研究了一下MySQL数据库的优化,改了一些配置参数,比如调整了缓冲池大小、连接数等等。再跑一遍ab,效果更明显了!
我还尝试了一下使用缓存。WordPress有很多缓存插件,我选了一个比较流行的,启用之后,博客的访问速度简直是飞起!用ab测试了一下,QPS直接翻了好几倍,响应时间也大大缩短。
进阶玩法:自定义请求头和POST请求
基本用法熟练之后,我就开始研究一些高级用法。比如,有时候我们需要模拟不同的用户,或者发送一些POST请求,这时候就需要自定义请求头和请求体了。
ab支持使用-H
参数来添加自定义请求头。比如,要模拟一个手机浏览器,可以这样写:
ab -n 100 -c 10 -H "User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1" */
对于POST请求,ab可以使用-p
参数指定请求体文件。创建一个包含POST数据的文本文件,比如,然后这样写:
ab -n 100 -c 10 -p * -T "application/json" */api/
其中,-T
参数指定Content-Type。
压力测试的重要性
这回用ab做压力测试,让我对服务器性能优化有了更深刻的理解。以前总是凭感觉,觉得网站访问速度慢,但不知道问题出在哪里。现在有了ab这个工具,就可以量化地评估服务器的性能,找到瓶颈,然后有针对性地进行优化。
ab是个简单实用的小工具,强烈建议大家也尝试一下,可以帮助你更好地了解你的服务器和网站的性能。
还没有评论,来说两句吧...