本帖最后由 浅殇 于 2024-4-24 15:48 编辑
ab/abs是Apache自带的http/https性能测试工具,可以对apache服务器进行网站访问压力测试,也可以对或其它类型的服务器进行压力测试,如nginx、tomcat、IIS等。 日常项目中可以用来做简单http网站压力测试分析,负载均衡算法调度测试(打并发连接和新建连接);注意参数合理使用,如:请求数量和并发数量,请求总数建议5w左右,并发数100左右。 abs工具是测试https网站时候使用,也可以测试http网站,建议使用abs,可以覆盖ab的全部功能且支持https。该工具只能通过CMD调取使用。 一、ab的原理 ab是apachebench命令的缩写。 ab的原理:ab命令会创建多个并发访问线程,模拟多个访问者同时对某一URL地址进行访问。它的测试目标是基于URL的,因此,它既可以用来测试apache的负载压力,也可以测试nginx、lighthttp、tomcat、IIS等其它Web服务器的压力。 ab命令对发出负载的计算机要求很低,它既不会占用很高CPU,也不会占用很多内存。但却会给目标服务器造成巨大的负载,其原理类似CC攻击。自己测试使用也需要注意,否则一次上太多的负载。可能造成目标服务器资源耗完,严重时甚至导致死机。 二、ab的安装 ab的安装非常简单(附件已提供2.3版本的ABS工具),apache安装完毕后ab命令存放在apache安装目录的bin目录下,如下:/usr/local/apache2/bin 三、abs常用参数说明 -n:在测试会话中所执行的请求数量。默认时,仅执行一个请求。 -c:一次产生的请求个数,即并发数。默认是一次一个。 -t:测试所进行的最大秒数,默认隐含值-n 50000,使对服务器的测试限制在一个固定的总时间以内。默认无时间限制。 -s:单次请求超时时间 -X:使用代理服务器+端口 -f:指定TLS版本连接访问 四、abs性能指标 在进行性能测试过程中有几个指标比较重要: 1、吞吐率(Requests per second) 服务器并发处理能力的量化描述,单位是reqs/s,指的是在某个并发用户数下单位时间内处理的请求数。某个并发用户数下单位时间内能处理的最大请求数,称之为最大吞吐率。吞吐率是基于并发用户数的。这句话代表了两个含义: a、吞吐率和并发用户数相关。b、不同的并发用户数下,吞吐率一般是不同的 计算公式:总请求数/处理完成这些请求数所花费的时间,即Request per second=Complete requests/Time taken for tests。这个数值表示整体性能,值越大越好。 2、并发用户数(Concurrency Level) 区别于并发连接数,一个用户可能会产生多个连接。 3、用户平均请求等待时间(Time per request) 计算公式:处理完成所有请求数所花费的时间/(总请求数/并发用户数),即:Time per request=Time taken for tests/(Complete requests/Concurrency Level) 4、服务器平均请求等待时间(Time per request:across all concurrent requests) 计算公式:处理完成所有请求数所花费的时间/总请求数,即:Time taken for/testsComplete requests 可以看到,它是吞吐率的倒数。同时,它也等于用户平均请求等待时间/并发用户数,即Time per request/Concurrency Level 五、abs实际使用 |