ab - Apache HTTP 服务器基准测试工具
ab [ -A auth-username:password ] [ -b windowsize ] [ -B local-address ] [ -c concurrency ] [ -C cookie-name=value ] [ -d ] [ -e csv-file ] [ -E client-certificate file ] [ -f protocol ] [ -g gnuplot-file ] [ -h ] [ -H custom-header ] [ -i ] [ -k ] [ -l ] [ -m HTTP-method ] [ -n requests ] [ -p POST-file ] [ -P proxy-auth-username:password ] [ -q ] [ -r ] [ -s timeout ] [ -S ] [ -t timelimit ] [ -T content-type ] [ -u PUT-file ] [ -v verbosity] [ -V ] [ -w ] [ -x <table>-attributes ] [ -X proxy[:port] ] [ -y <tr>-attributes ] [ -z <td>-attributes ] [ -Z ciphersuite ] [http[s]://]hostname[:port]/path
ab 是一个用于对 Apache 超文本传输协议 (HTTP) 服务器进行基准测试的工具。它旨在让您了解当前 Apache 安装的执行情况。这尤其显示了您的 Apache 安装每秒能够处理多少个请求。
向服务器提供基本身份验证凭据。用户名和密码由单个 : 分隔并通过 Base64 编码进行发送。无论服务器是否需要它(即,已发送需要的 401 身份验证),都会发送该字符串。
TCP 发送/接收缓冲区的大小(以字节为单位)。
建立传出连接时要绑定的地址。
一次执行的多个请求的数量。默认为一次一个请求。
在请求中添加 Cookie: 行。参数通常采用名称=值对的形式。该字段是可重复的。
不显示“XX [ms] 表内服务的百分比”。 (遗留支持)。
编写一个逗号分隔值 (CSV) 文件,其中包含每个百分比(从 1% 到 100%)的服务该百分比请求所花费的时间(以毫秒为单位)。这通常比“gnuplot”文件更有用;因为结果已经被“分类”了。
连接到 SSL 网站时,使用提供的 PEM 格式的客户端证书向服务器进行身份验证。该文件应包含客户端证书,然后是中间证书,最后是私钥。在 2.4.36 及更高版本中可用。
指定 SSL/TLS 协议(SSL2、SSL3、TLS1、TLS1.1、TLS1.2 或 ALL)。 2.4.4 及更高版本中提供 TLS1.1 和 TLS1.2 支持。
将所有测量值写为“gnuplot”或 TSV(制表符分隔值)文件。该文件可以轻松导入到 Gnuplot、IDL、Mathematica、Igor 甚至 Excel 等软件包中。标签位于文件的第一行。
显示使用信息。
将额外的标头附加到请求中。参数通常采用有效标题行的形式,包含以冒号分隔的字段值对(即、“Accept-Encoding:zip/zop;8bit” )。
执行 HEAD 请求,而不是 GET。
启用 HTTP KeepAlive 功能,即在一个 HTTP 会话中执行多个请求。默认为无 KeepAlive。
如果响应的长度不恒定,则不要报告错误。这对于动态页面很有用。在 2.4.7 及更高版本中可用。
请求的自定义 HTTP 方法。在 2.4.10 及更高版本中可用。
为基准测试会话执行的请求数。默认情况下仅执行单个请求,这通常会导致不具有代表性的基准测试结果。
包含要 POST 的数据的文件。请记住还要设置-T。
向途中的代理提供基本身份验证凭据。用户名和密码由单个 : 分隔并通过 Base64 编码进行发送。无论代理是否需要它(即,已发送需要的 407 代理身份验证),都会发送该字符串。
当处理超过 150 个请求时,ab 每 10% 或 100 个请求左右就会在 stderr 上输出一个进度计数。 -q 标志将抑制这些消息。
不要因套接字接收错误而退出。
套接字超时之前等待的最大秒数。默认值为 30 秒。在 2.4.4 及更高版本中可用。
不显示中位数和标准差值,当平均值和中位数相差超过标准差的一倍或两倍时,也不显示警告/错误消息。并默认为最小值/平均值/最大值。 (遗留支持)。
用于基准测试的最大秒数。这意味着内部有一个-n 50000。使用它来在固定的总时间内对服务器进行基准测试。默认情况下没有时间限制。
用于 POST/PUT 数据的内容类型标头,例如。 application/x-www-form-urlencoded。默认为文本/纯文本。
包含要 PUT 的数据的文件。请记住还要设置-T。
设置详细级别 - 4 及以上打印标头信息,3 及以上打印响应代码(404、200 等)、2 及上面打印警告和信息。
显示版本号并退出。
以 HTML 表格形式打印结果。默认表格为两列宽,具有白色背景。
用作表属性的字符串。属性插入表格此处。
使用代理服务器来处理请求。
用作 用作 指定 SSL/TLS 密码套件(请参阅 openssl 密码) 以下列表描述了 ab 返回的值: 第一个成功响应的服务器 HTTP 标头中返回的值(如果有)。这包括标头中从开始到检测到十进制值为 32 的字符(最值得注意的是:空格或 CR/LF)的所有字符。 命令行上给出的 DNS 或 IP 地址 ab 所连接的端口。如果命令行上未指定端口,则 http 的端口号默认为 80,https 的端口号默认为 443。 客户端和服务器之间协商的协议参数。仅当使用 SSL 时才会打印此信息。 从命令行字符串解析的请求 URI。 这是第一个成功返回的文档的大小(以字节为单位)。如果测试期间文档长度发生变化,则响应被视为错误。 测试期间使用的并发客户端数量 这是从创建第一个套接字连接到收到最后一个响应所花费的时间 收到的成功回复数 被视为失败的请求数。如果该数字大于零,将打印另一行,显示由于连接、读取、内容长度不正确或异常而失败的请求数。 写入期间失败的错误数(损坏的管道)。 不在 200 系列响应代码中的响应数。如果所有响应均为 200,则不会打印此字段。 导致保持活动请求的连接数 如果配置为作为测试的一部分发送数据,则这是测试期间发送的字节总数。如果测试不包含要发送的正文,则省略此字段。 从服务器接收的总字节数。该数字本质上是通过线路发送的字节数。 从服务器接收的文档字节总数。该数字不包括 HTTP 标头中收到的字节 这是每秒的请求数。该值是请求数除以所用总时间的结果 每个请求花费的平均时间。第一个值的计算公式为concurrency * timetaken * 1000/done,而第二个值的计算公式为timetaken * 1000/done 通过公式总读取数/1024/所用时间计算的传输率 有各种静态声明的固定长度的缓冲区。结合命令行参数、来自服务器的响应标头和其他外部输入的延迟解析,这可能会让您感到困扰。 它没有完全实现 HTTP/1.x;只接受一些“预期”形式的响应。 strstr(3) 的大量使用显示在配置文件的顶部,这可能表明存在性能问题; 即,您将测量ab性能而不是服务器的性能。 属性的字符串。 属性的字符串。 输出
错误