Linux常用网络工具:Http压力测试之ab

ab的全称是Apache Bench,是Apache自带的网络压力测试工具,相比于LR、JMeter,是我所知道的 Http 压力测试工具中最简单、最通用的。

ab命令对发出负载的计算机要求很低,不会占用很高CPU和内存,但也能给目标服务器产生巨大的负载,能实现基础的压力测试。

在进行压力测试时,最好与服务器使用交换机直连,以获取最大的网络吞吐量。

ab的安装很简单,安装Apache会自动安装,如果要单独安装ab,可以使用yum安装:

yum -y install httpd-tools

ab命令选项



ab命令最基本的参数是-n和-c:

-n 执行的请求数量
-c 并发请求个数

其他参数:

-t 测试所进行的最大秒数
-p 包含了需要POST的数据的文件
-T POST数据所使用的Content-type头信息
-k 启用HTTP KeepAlive功能,即在一个HTTP会话中执行多个请求,默认时,不启用KeepAlive功能

命令示例:

ab -n 1000 -c 100 http://www.baidu.com/

ab性能指标



使用ab命令测试的结果,可以参考其中的中文解释:

Document Path:          /  ###请求的资源
Document Length:        50679 bytes  ###文档返回的长度,不包括相应头

Concurrency Level:      3000   ###并发个数
Time taken for tests:   30.449 seconds   ###总请求时间
Complete requests:      3000     ###总请求数
Failed requests:        0     ###失败的请求数
Write errors:           0
Total transferred:      152745000 bytes
HTML transferred:       152037000 bytes
Requests per second:    98.52 [#/sec] (mean)      ###平均每秒的请求数
Time per request:       30449.217 [ms] (mean)     ###平均每个请求消耗的时间
Time per request:       10.150 [ms] (mean, across all concurrent requests)  ###上面的请求除以并发数
Transfer rate:          4898.81 [Kbytes/sec] received   ###传输速率

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        2   54  27.1     55      98
Processing:    51 8452 5196.8   7748   30361
Waiting:       50 6539 5432.8   6451   30064
Total:         54 8506 5210.5   7778   30436

Percentage of the requests served within a certain time (ms)
  50%   7778   ###50%的请求都在7778Ms内完成
  66%  11059
  75%  11888
  80%  12207
  90%  13806
  95%  18520
  98%  24232
  99%  24559
 100%  30436 (longest request)

对压力测试的结果重点关注吞吐率(Requests per second)、用户平均请求等待时间(Time per request)指标:

1、吞吐率(Requests per second):

服务器并发处理能力的量化描述,单位是reqs/s,指的是在某个并发用户数下单位时间内处理的请求数。某个并发用户数下单位时间内能处理的最大请求数,称之为最大吞吐率。

记住:吞吐率是基于并发用户数的。这句话代表了两个含义:

a、吞吐率和并发用户数相关

b、不同的并发用户数下,吞吐率一般是不同的

计算公式:总请求数/处理完成这些请求数所花费的时间,即

Request per second=Complete requests/Time taken for tests

必须要说明的是,这个数值表示当前机器的整体性能,值越大越好。

2、用户平均请求等待时间(Time per request):

计算公式:处理完成所有请求数所花费的时间/(总请求数/并发用户数),即:

Time per request=Time taken for tests/(Complete requests/Concurrency Level)

3、服务器平均请求等待时间(Time per request:across all concurrent requests):

计算公式:处理完成所有请求数所花费的时间/总请求数,即:

Time taken for/testsComplete requests

可以看到,它是吞吐率的倒数。

同时,它也等于用户平均请求等待时间/并发用户数,即

Time per request/Concurrency Level。



记录,为更好的自己!

时间: 2024-10-31 04:38:23

Linux常用网络工具:Http压力测试之ab的相关文章

Linux常用网络工具:路由扫描之mtr

除了上一篇<Linux常用网络工具:路由扫描之traceroute>介绍的traceroute之外,一般Linux还内置了另一个常用的路由扫描工具mtr. mtr在某些方面比traceroute更好用,它可以实时显示经过的每一跳路由的信息,并不断进行探测. traceroute默认使用UDP数据包探测,而mtr默认使用ICMP报文探测,ICMP在某些路由节点的优先级要比其他数据包低,所以测试得到的数据可能低于实际情况. mtr mtr使用比较简单,通常不需要使用附加选项,更多参数可以参考mtr

Linux常用网络工具:路由扫描之traceroute

之前两篇<Linux常用网络工具:fping主机扫描>和<Linux常用网络工具:hping高级主机扫描>都是关于主机扫描的,本篇介绍Linux下常用的路由扫描工具traceroute和mtr. 路由扫描主要是查询本机到另一个主机经过的路由跳数及数据延迟情况. traceroute基本使用 路由扫描工具的原理都是存活时间(TTL)来实现的.每当数据包经过一个路由器,其存活时间就会减1.当其存活时间是0时,主机便取消数据包,并传送一个ICMP TTL数据包给原数据包的发出者,路由扫描

Linux常用网络工具:批量主机服务扫描之netcat

netcat又叫做瑞士军刀,是黑客和系统管理员常用的网络工具,最初开发的目的是文件传输,后来发展出很多强大的功能,比如也可以完成批量主机服务扫描. 之前介绍了另一个更常用的批量主机服务扫描工具:nmap. netcat的安装也非常简单,直接yum安装: yum install nc 一般不建议在生产环境安装nc,因为nc除了可以批量主机服务扫描外,还支持端口代理.文件传输,容易造成安全隐患. netcat之批量主机服务扫描 netcat在扫描时常用的参数: -w 设置超时时间 -z 输入输出模式

Linux常用网络工具:批量主机服务扫描之nmap

Linux下有很多强大网络扫描工具,网络扫描工具可以分为:主机扫描.主机服务扫描.路由扫描等. 之前已经写过常用的主机扫描和路由扫描工具,nmap支持批量主机扫描和主机服务扫描. nmap的安装直接使用:yum install nmap. nmap之ICMP扫描 nmap可以使用ICMP协议来实现Ping的功能,支持批量主机扫描,用来检测主机存活状态. 使用ICMP相比TCP协议不需要建立三次握手,所以速度更快,但某些防火墙或运营商屏蔽了ICMP就扫描不到. 常用命令: nmap -sP 192

Linux常用网络工具:fping主机扫描

Linux下有很多强大网络扫描工具,网络扫描工具可以分为:主机扫描.主机服务扫描.路由扫描等. fping是一个主机扫描工具,相比于ping工具可以批量扫描主机. fping官方网站:http://fping.org/ fping的源代码编译安装 访问fping的官方网站,获取源代码地址: 编译及安装命令: wget http://fping.org/dist/fping-3.10.tar.gz tar -xvf fping-3.10.tar.gz cd fping ./configure ma

Linux常用下载工具推荐

[color="#02368d"]Linux常用下载工具推荐 转自: http://doc.zoomquiet.org/data/20060730210451/index.html 图形界面下载工具 Linux提供了很多类似Windows中FlashGet.网络蚂蚁等下载工具. KGet KGet是KDE默认的断点续传工具,通常无需安装.它界面简洁,操作方便,高效的拖拽下载功能最令人称道.比较遗憾的是它不支持代理服务器及 SOCKS5代理功能.功能上虽然不如FlashGet全面和强大,

Linux常用网络命令总结

Linux常用网络命令总结 一.手动/自动配置IP参数与气动/关闭网络接口:ifcofig.ifup.ifdown 1.ifconfig     手动启动.查看与修改网络接口的相关参数,可以修改的参数有很多,包括ip参数以及MTU等.     语法: 1) ifconfig interface {up|down}     interface:网卡接口名称,包括:eth0.eth1等 2) ifconfig interface {options}     option:       up,down

Linux常用网络测试命令

1. ifconfig 可以使用ifconfig命令来配置并查看网络接口的配置情况.    例如: (1) 配置eth0的IP地址, 同时激活该设备. #ifconfig eth0 192.168.1.10 netmask 255.255.255.0 up (2) 配置eth0别名设备eth0:1的IP地址,并添加路由. #ifconfig eth0 192.168.1.3 #route add –host 192.168.1.3 dev eth0:1 (3) 激活设备. #ifconfig e

Linux常用网络命令

网络和监控命令类似于这些: hostname, ping, ifconfig, iwconfig, netstat, nslookup, traceroute, finger, telnet, ethtool 用于查看 linux 服务器 ip 地址,管理服务器网络配置,通过 telnet 和 ethernet 建立与 linux 之间的网络链接,查看 linux 的服务器信息等.下面让我们看看在 Linux 下的网络和监控命令的使用. 1. hostname hostname 没有选项,显示主