【发布时间】:2011-11-26 18:25:35
【问题描述】:
请注意:这不是对劣质 CMS 的抱怨。
只是玩弄 Apache Bench,使用我们的自定义 CMS 得到了糟糕的结果,更确切地说,我得到了:
Requests per second: 0.37 [#/sec] (mean)
当我用一个普通的 php 文件运行另一个测试时,我得到了:
Requests per second: 4786.07 [#/sec] (mean)
使用以前版本的 CMS 进行另一项测试:
Requests per second: 6068.66 [#/sec] (mean)
网站运行良好,未检测到问题,Google 的网站管理员工具报告我们的网站速度超过 80% 的网页,我认为这很好。
测试是:
ab -t 30 -c 10 http://example.com/
也许是某种 Apache 问题?错误的.htaccess 配置或类似配置?
更新:
刚刚用套接字运行了一个简单的测试,结果相似。页面加载非常非常缓慢。如果我在另一个网站上运行我的脚本,一切都很好。
此外,还有一个关于块长度问题的small hint。 (错误的 Apache 标头或行尾?)
该站点已压缩,当打开详细日志记录时,我在响应中看到以下行:
LOG: Response code = 200
LOG: header received:
HTTP/1.1 200 OK
Date: Tue, 04 Oct 2011 13:10:49 GMT
Server: Apache
Set-Cookie: PHPSESSID=ibnfoqir9fee2koirfl5mhm633; path=/
Expires: Sat, 26 Jul 1997 05:00:00 GMT
Cache-Control: no-store, no-cache, must-revalidate
Pragma: no-cache
Cache-Control: post-check=0, pre-check=0
Vary: Accept-Encoding
Transfer-Encoding: chunked
Content-Type: text/html; charset=UTF-8
2ef6
总是在同一个地方,在 HTML 源代码的中间,然后又是 <!DOCTYPE HTML>。
请帮忙。
更新 #2:
刚刚使用 Rex Swain's HTTP Viewer 检查了我的 HTTP 标头并得到了以下结果:
HTTP/1.1·200·OK(CR)(LF)
Date:·Wed,·05·Oct·2011·08:33:51·GMT(CR)(LF)
Server:·Apache(CR)(LF)
Set-Cookie:·PHPSESSID=n88g3qcvv9p6irm1fo0qfse8m2;·path=/(CR)(LF)
Expires:·Sat,·26·Jul·1997·05:00:00·GMT(CR)(LF)
Cache-Control:·no-store,·no-cache,·must-revalidate(CR)(LF)
Pragma:·no-cache(CR)(LF)
Cache-Control:·post-check=0,·pre-check=0(CR)(LF)
Vary:·Accept-Encoding(CR)(LF)
Connection:·close(CR)(LF)
Transfer-Encoding:·chunked(CR)(LF)
Content-Type:·text/html;·charset=UTF-8(CR)(LF)
(CR)(LF)
你有什么不寻常的地方吗?
【问题讨论】:
-
你检查过服务器和CMS的日志吗?
-
您可能首先检查问题是来自客户端还是来自服务器端。然后通过二分法来隔离问题以隔离主要问题。
-
@palacsint 日志正常,一切正常。
-
@hornetbzz 当我在浏览器中打开站点时,一切正常(没有表现出这种弱性能的迹象)。运行 apachebench(同一台服务器或其他服务器,没有差异)或通过简单的套接字测试获得它,结果很糟糕。
标签: apache benchmarking chunked-encoding apachebench http-chunked