我的服务器出现了一些问题。它时不时地出现错误,而且运行速度很慢。以下是 top 的输出:
top - 07:33:33 up 18:57, 1 user, load average: 0.00, 0.00, 0.00
Tasks: 90 total, 1 running, 82 sleeping, 7 stopped, 0 zombie
Cpu(s): 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 1048576k total, 1048576k used, 0k free, 0k buffers
Swap: 0k total, 0k used, 0k free, 0k cached
按%MEM排序:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
9597 root 16 0 276m 91m 15m S 0.0 8.9 0:29.38 java
9564 tomcat 15 0 249m 34m 11m S 0.0 3.4 0:11.79 java
9636 root 18 0 54804 24m 9784 S 0.0 2.4 0:02.58 httpd
26139 apache 15 0 57520 23m 5996 S 0.0 2.3 0:00.15 httpd
16264 apache 18 0 56984 23m 6104 S 0.0 2.2 0:00.21 httpd
24294 apache 15 0 57512 22m 5864 S 0.0 2.2 0:00.17 httpd
30231 apache 15 0 57272 22m 5748 S 0.0 2.2 0:00.97 httpd
32257 apache 15 0 57512 22m 5416 S 0.0 2.2 0:00.46 httpd
19947 apache 15 0 57512 22m 5320 S 0.0 2.2 0:00.19 httpd
26148 apache 15 0 56688 22m 5992 S 0.0 2.2 0:00.40 httpd
14039 apache 18 0 57000 22m 5492 S 0.0 2.2 0:00.33 httpd
6051 apache 15 0 57736 22m 5128 S 0.0 2.2 0:00.07 httpd
19937 apache 15 0 56992 22m 5400 S 0.0 2.2 0:00.14 httpd
5200 apache 15 0 56984 22m 5376 S 0.0 2.2 0:00.23 httpd
10001 apache 15 0 55636 21m 5636 S 0.0 2.1 0:01.05 httpd
11734 apache 15 0 56712 21m 4548 S 0.0 2.1 0:00.46 httpd
18193 apache 15 0 55100 20m 5508 S 0.0 2.0 0:00.24 httpd
14036 apache 15 0 55128 20m 5412 S 0.0 2.0 0:00.10 httpd
3981 apache 15 0 55128 19m 4860 S 0.0 1.9 0:00.16 httpd
7588 apache 18 0 55112 19m 4848 S 0.0 1.9 0:00.04 httpd
19768 apache 16 0 55112 19m 4844 S 0.0 1.9 0:00.02 httpd
5827 apache 15 0 55112 19m 4828 S 0.0 1.9 0:00.05 httpd
29774 apache 15 0 55112 19m 4544 S 0.0 1.9 0:00.11 httpd
6064 apache 15 0 55112 19m 4536 S 0.0 1.9 0:00.02 httpd
16253 apache 17 0 55116 19m 4532 S 0.0 1.9 0:00.01 httpd
19922 apache 15 0 55112 19m 4540 S 0.0 1.9 0:00.02 httpd
10010 apache 15 0 55100 19m 4524 S 0.0 1.9 0:00.01 httpd
18195 apache 18 0 55104 18m 3872 S 0.0 1.8 0:00.02 httpd
7361 mysql 15 0 134m 18m 6400 S 0.0 1.8 0:10.18 mysqld
19921 apache 15 0 55088 18m 3588 S 0.0 1.8 0:00.02 httpd
11967 apache 15 0 55080 18m 3584 S 0.0 1.8 0:00.00 httpd
13813 apache 15 0 55088 18m 3576 S 0.0 1.8 0:00.14 httpd
23898 apache 18 0 54968 17m 3212 S 0.0 1.7 0:00.00 httpd
13792 apache 15 0 54968 17m 3088 S 0.0 1.7 0:00.00 httpd
14083 apache 15 0 54968 17m 3088 S 0.0 1.7 0:00.00 httpd
32547 apache 15 0 54944 17m 2924 S 0.0 1.7 0:00.00 httpd
13787 apache 15 0 54944 17m 2908 S 0.0 1.7 0:00.00 httpd
3623 apache 17 0 54944 17m 2908 S 0.0 1.7 0:00.00 httpd
16024 apache 19 0 54944 17m 2860 S 0.0 1.7 0:00.00 httpd
13791 apache 15 0 54944 17m 2864 S 0.0 1.7 0:00.00 httpd
20090 named 19 0 110m 4244 2056 S 0.0 0.4 0:01.55 named
9369 cyrus 15 0 15904 3048 1720 S 0.0 0.3 0:00.24 cyrus-master
32735 root 15 0 8852 2888 2116 T 0.0 0.3 0:00.00 mysql
我在使用 Firefox 时遇到的间歇性错误是:
Server not found
Firefox can't find the server at XXXXXXX.co.
* Check the address for typing errors such as
ww.example.com instead of
www.example.com
* If you are unable to load any pages, check your computer's network
connection.
* If your computer or network is protected by a firewall or proxy, make sure
that Firefox is permitted to access the Web.
而在其他浏览器上,页面加载大约 10 分钟后却永远不会出现。解决此问题的唯一方法是完全关闭浏览器,因为错误似乎已保存在缓存中。
有人有什么想法吗?
非常感谢。
答案1
对于只有 1GB RAM 的服务器,您绝对应该减少正在运行的 httpd 进程数(尝试启动 4 个,最大 12 个)。您还需要打开交换,因为 OOM 杀手可能正在该机器上进行各种操作,这无疑会导致很多问题。
在 apache 中,StartServers
控制要启动的服务器数量,并MaxClients
控制最大进程数。对于 swap,您需要创建一个交换分区,mkswap
在其上运行,将其放入您的 fstab 中,然后运行swapon -a
。您的发行版可能有一个您可以遵循的演练。
答案2
感谢您的回复。我找到了错误的原因。
我们正在使用 Pear Mailer,它使用队列通过 cron 作业堆叠准备发送的电子邮件。Pear 脚本中有一个错误,该脚本在我们网站上的每个操作(发帖、发送消息等)中都会被调用。Pear 崩溃了,进而导致浏览器崩溃,从而导致上述错误。
禁用 Pear 解决了这个问题,调整代码使其再次运行。
多个 httpd 进程是由 Pear Mailer 实例失败引起的。我们花了很长时间才找到问题所在,因为我们从未想到 Pear Mailer 会引起这样的响应。
再次感谢你的帮助。
克里斯。