我已经在我的Ubuntu系统上安装了apachelog程序。 我有几个虚拟主机指向相同的日志文件,所以当我运行以下时,我应该看到来自多个站点的所有请求:
$ apachetop -T 300 -f /var/log/apache2/other_vhosts_access.log
这应该显示在接下来的5分钟内现在开始的所有请求。 所以我testing它与多个网站,实际上它报告:
last hit: 20:56:14 atop runtime: 0 days, 00:02:50 20:56:24 All: 10 reqs ( 0.1/sec) 7443.0B ( 103.4B/sec) 744.3B/req 2xx: 3 (30.0%) 3xx: 7 (70.0%) 4xx: 0 ( 0.0%) 5xx: 0 ( 0.0%) R (170s): 10 reqs ( 0.1/sec) 7443.0B ( 43.8B/sec) 744.3B/req 2xx: 3 (30.0%) 3xx: 7 (70.0%) 4xx: 0 ( 0.0%) 5xx: 0 ( 0.0%) REQS REQ/S KB KB/S URL 3 0.04 6.0 0.1*/ 2 0.03 0.2 0.0 * 1 0.01 0.2 0.0 /wp-includes/js/comment-reply.js 1 0.01 0.2 0.0 /wp-content/themes/gd-theme/scripts/cycle.js 1 0.01 0.2 0.0 /wp-content/themes/gd-theme/scripts/api.js 1 0.01 0.2 0.0 /wp-includes/js/jquery/jquery.js 1 0.06 0.2 0.0 /users/sign_in
一个来自WordPress站点,另一个来自Rails站点上的Ruby。 Apache说有7个请求进来。也许有7个http请求进来(我非常怀疑它,因为在rails网站上的ruby有几个js和图像加载),但实际上只有2个tcp连接,只有两个apachesubprocess应该已经产生,因为我正在使用KeepAlive。 某些东西显然不适合它的输出。
我可能在这里错过了什么?
apachetopparsingApache的访问日志。
每个请求都被单独写入到这个日志中,而不pipe它是在单个KeepAlive会话还是多个TCP会话中被请求的。
apachetop无法知道有多lessTCP连接已经完成。
该访问日志也不包含有关Apache子/线程的任何信息,所以也不能报告这些信息。
它显示你已经有多less资源被请求。
许多浏览器将打开多个连接来加载资源,如JavaScript。 我看到有四个请求是针对java脚本的。 这些连接可能会很快closures。