我在Apache2.2(几乎默认配置)上运行了一个简单的PHP脚本。当运行命令ab -n 1 <address>,其中地址是本地IP或域名时,在接收到第一秒左右的所有数据之后,我将收到一个大约15秒的套接字窗口。
当用浏览器点击同一个页面时,我会得到不到100‘m的响应。据我所知,大多数现代浏览器都支持“保持活动”的标题,并使用某种TTL计时器存储持久连接。因此,当我运行ab -kn <whatever>命令时,我开始通过浏览器获得更接近预期性能的结果。
这是正常行为吗?我的服务器配置有不正确的地方吗?
我再次使用ab标志运行-v 2,这是输出:
Benchmarking localhost (be patient)...INFO: POST header ==
---
GET <PATH> HTTP/1.0
Host: localhost
User-Agent: ApacheBench/2.3
Accept: */*
---
LOG: header received:
HTTP/1.1 200 OK
Date: Sat, 02 Apr 2011 05:09:42 GMT
Server: Apache/2.2.16 (Ubuntu)
Vary: Accept-Encoding
Content-Length: 86
Content-Type: text/html
<html><head><title>Dynamic</title><body><h1>This is another action!</h1></body></html>
..done
Server Software: Apache/2.2.16
Server Hostname: localhost
Server Port: 80
Document Path: <PATH>
Document Length: 86 bytes
Concurrency Level: 1
Time taken for tests: 15.076 seconds
Complete requests: 1
Failed requests: 0
Write errors: 0
Total transferred: 242 bytes
HTML transferred: 86 bytes
Requests per second: 0.07 [#/sec] (mean)
Time per request: 15075.916 [ms] (mean)
Time per request: 15075.916 [ms] (mean, across all concurrent requests)
Transfer rate: 0.02 [Kbytes/sec] received然而,浏览器也接受Content-Encoding: gzip和内容(来自php的zlib压缩,长度为97 ),并可能接受Apache2.2的压缩特性。15秒的暂停发生在整个身体被发送之后,在..done之前.
发布于 2011-04-02 00:13:47
我想您是在问,“即使服务器立即发送所有数据,ab -n 1在返回之前等待连接断开(15秒)是否正常?”
这可不正常。
运行详细信息=2 (ab -v 2 <url>),并检查返回的标头。服务器是否正在发送连接:关闭?它发送的内容长度不正确吗?
编辑
我现在看到你的身体是一个单行,所以也许ab不高兴没有得到CR LF后的实体身体。我不能用apache和文本文件来再现这种输出-- apache在body之后添加了CR,ab立即返回。您是如何产生这个输出的?
发布于 2015-01-18 17:43:26
在我将这些头添加到服务器响应后为我工作
连接:保持活动内容长度: xxx
奇怪的是,如果我不添加“Connection”报头,ab在'-k‘模式下超时。看起来像是实现中的一些错误。
https://serverfault.com/questions/254765
复制相似问题