apachelog 显示 http 请求但不显示 tcp 连接

apachelog 显示 http 请求但不显示 tcp 连接

我已经在 ubuntu 系统上安装了 apachelog 程序。我有几个指向同一个日志文件的虚拟主机,因此当我运行以下命令时,我应该会看到来自多个站点的所有请求:

$ apachetop -T 300 -f /var/log/apache2/other_vhosts_access.log

这应该会显示从现在开始接下来 5 分钟内收到的所有请求。因此,我用多个网站进行了测试,它确实报告了这些请求:

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 网站,另一个来自 ruby​​ on rails 网站。Apache 说有 7 个请求进来。也许有 7 个 http 请求进来(我非常怀疑,因为 ruby​​ on rails 网站有几个 js 和图像要加载),但实际上只建立了 2 个 tcp 连接,而且应该只生成两个 apache 子进程,因为我正在使用 KeepAlive。它显示的输出肯定有问题。

我在这里可能遗漏了什么?

答案1

apachetop解析 Apache 的访问日志。
每个请求都会单独写入此日志,无论是在单个 KeepAlive 会话中还是在多个 TCP 会话中请求。

apachetop无法知道已建立的 TCP 连接数。
该访问日志也不包含有关 Apache 子进程/线程的任何信息,因此也无法报告这些信息。

它只向您显示已请求的资源数量。

答案2

许多浏览器会打开多个连接来加载 JavaScript 等资源。我看到其中四个请求是针对 JavaScript 的。这些连接可能很快就会关闭。

相关内容