问候专家,
在我的专用 CentOS 5.4 服务器上,我为 apache 配置了大约十几个虚拟主机。我测试了几个,每个都在大约一秒钟内加载;相当快。平均负载小于 1。没问题。我正在运行静态 HTML 站点,一个使用 MySQL 5.0 的 WordPress 博客……这些不是高带宽站点;没有什么会给这台服务器带来压力。
第二天早上,我开始工作,加载主站点,加载需要 10 到 20 秒。我检查了服务器上的平均负载,它在 3 左右徘徊,有时高达 5,曾经在 8 处看到它,从不低于 2。此时我优雅地反弹 apache:
# apachectl -k graceful
Run Code Online (Sandbox Code Playgroud)
大约需要半分钟,然后一切又好了。所有虚拟主机加载速度都很快,不到一秒。平均负载迅速下降到 1 以下。
检查 /server-status 时,不会发生很多事情;检查网络流量(vnstat -l
或vnstat -h
)时,没有使用大量带宽。两者在一天的开始和结束时都具有可比性。然而,当我早上检查它时,apache 比几乎一整天都慢得多。一夜之间发生了什么让apache变慢并消耗更多系统资源?
# httpd -V
Server version: Apache/2.2.3
# uname -a
Linux myserver.com 2.6.18-92.el5 #1 SMP Tue Jun 10 18:51:06 EDT 2008 x86_64 x86_64 x86_64 GNU/Linux
# free
total used free shared buffers cached
Mem: 1025576 1017292 8284 …
Run Code Online (Sandbox Code Playgroud) 问候专家,
我在这里配置了一个不错的小型 linux 防火墙机器。它eth1
适用于内部网络 (10.0.0.*) 和eth2
外部网络 (65.130.27.69/27)。 eth0
当前未使用。(顺便说一下,我使用的是假 IP 地址。我不知道谁拥有这些地址。)
我已经完成了所有 iptables 的工作并使用 DNAT 进行了正确设置,一切正常,我已经更新了/etc/sysconfig/iptables
. 都好。
这就是它变得有趣的地方。我们这里有一堆 IP,另一个服务器想要接收端口 80 的流量,但是在不同的 IP 上。我将规则添加到 iptables,然后将辅助 IP 添加到eth2
如下所示:
# ip addr add 65.130.27.70/27 dev eth2 broadcast 65.130.27.79
Run Code Online (Sandbox Code Playgroud)
这有效:
# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
2: eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop qlen 1000
link/ether 08:00:09:dc:f4:c1 brd ff:ff:ff:ff:ff:ff
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu …
Run Code Online (Sandbox Code Playgroud)