Apache 负载高但流量记录很少

Apache 负载高但流量记录很少

我最近在运行单个网站的专用服务器上安装了 Varnish,将其置于 Apache 之前。它似乎运行良好,但 Apache 上的负载仍然很高。不合理的是,Apache 访问日志显示几乎没有流量经过 Varnish。当我跟踪 Apache 日志时,我看到每秒大约有 1-3 次点击通过。

Apache 上的负载情况如下:

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
apache   13834  8.1  1.0 107716 34164 ?        S    08:24   0:02 /usr/sbin/httpd
apache   13835  8.1  1.0 107716 33856 ?        S    08:24   0:02 /usr/sbin/httpd
apache   11483  7.9  0.9 105916 30788 ?        S    08:23   0:06 /usr/sbin/httpd
apache   12255  7.5  1.0 107476 33312 ?        S    08:24   0:04 /usr/sbin/httpd
apache    9340  7.2  1.1 107732 34916 ?        R    08:23   0:09 /usr/sbin/httpd
apache   12029  6.8  0.9 106908 30416 ?        S    08:24   0:04 /usr/sbin/httpd
apache   11577  6.7  1.0 107192 34180 ?        S    08:24   0:05 /usr/sbin/httpd
apache   11486  6.6  1.0 106176 33112 ?        S    08:23   0:05 /usr/sbin/httpd
apache   11796  6.4  1.0 106936 31916 ?        S    08:24   0:04 /usr/sbin/httpd
apache   13815  6.3  1.0 107988 34464 ?        S    08:24   0:02 /usr/sbin/httpd
apache   18089  6.3  1.3 107444 43212 ?        S    08:11   0:52 /usr/sbin/httpd
apache   11797  5.9  1.0 107716 34580 ?        S    08:24   0:04 /usr/sbin/httpd
apache    7655  5.9  0.0      0     0 ?        Z    08:22   0:09 [httpd] <defunct>
mysql     8033  5.9  6.2 318240 199512 ?       Sl   May14 352:34 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/va
apache   11488  5.8  0.9 106924 31632 ?        S    08:23   0:04 /usr/sbin/httpd
apache    9375  5.7  1.1 106956 35552 ?        S    08:23   0:07 /usr/sbin/httpd
apache    3551  5.6  1.1 106956 36140 ?        S    08:20   0:14 /usr/sbin/httpd
apache    7657  5.6  1.0 106968 32472 ?        S    08:22   0:09 /usr/sbin/httpd
apache   11433  5.6  1.0 107716 34396 ?        S    08:23   0:04 /usr/sbin/httpd
apache    5505  5.5  1.1 106944 34924 ?        S    08:21   0:12 /usr/sbin/httpd
apache    7172  5.3  1.1 106972 35368 ?        S    08:22   0:09 /usr/sbin/httpd
apache   10088  5.2  0.9 106160 31240 ?        S    08:23   0:04 /usr/sbin/httpd
apache    7656  5.1  1.0 106436 34388 ?        S    08:22   0:08 /usr/sbin/httpd
apache    3468  5.0  1.1 107716 35968 ?        S    08:20   0:13 /usr/sbin/httpd
apache   14242  4.8  1.0 107728 33032 ?        S    08:25   0:00 /usr/sbin/httpd
apache    3578  4.8  1.1 107988 35964 ?        S    08:20   0:12 /usr/sbin/httpd
apache   28192  4.8  1.2 106944 38060 ?        S    08:17   0:23 /usr/sbin/httpd
apache    3277  4.6  1.1 106956 35688 ?        S    08:20   0:13 /usr/sbin/httpd
apache   15434  3.7  0.7 106908 24684 ?        S    08:25   0:00 /usr/sbin/httpd

有一个默认的 apache 日志,然后还有另一个 VirtualHost 日志设置。

我担心 Apache 正在处理一些未被记录的流量。这可能吗?我能做些什么来捕获这些流量吗?

答案1

我建议mod_status来调试该问题。mod_status 非常适合提供有关服务器活动和性能的信息。

答案2

您可以使用 捕获流量tcpdump。例如:

tcpdump port 80 or port 443

您可以使用tcpdump它将流量捕获到文件中,然后使用 Wireshark 打开它:

tcpdump -s 65535 -w <some-file> port 80 or port 443

相关内容