如何解决Web服务器locking问题(Debian Squeeze)

每隔一段时间,我的networking服务器速度变得如此之慢,似乎被locking了。 无法进入SSH,没有网站正在服务。 这是一个VPS开始作为Debian 5,我升级到testing(挤压)。 这是一个典型的LAMP设置,其目的是运行几个WordPress站点。 有一次,当它locking,我到了其中一个网站,但这是wordpress抱怨它无法build立数据库连接。 所以好像有东西真的咀嚼CPU和mysqld或者超时,或者可能失败,无法重新启动。 但是因为我不能SSH,所以我更倾向于把它归入CP​​U。 但是除了操作系统和内核之外,现在唯一正在运行的进程是:

  • 阿帕奇
  • mysqld的
  • python(for fail2ban)
  • sshd的
  • 的exim4

它有512M的RAM和1.5 GB的交换。 每次我检查它,它有足够的可用内存,并使用几乎没有交换(通常2-3M)。 而且由于我运行fail2ban,我不认为我得到了ddosed。

我今天早上在我的邮箱里发现了这个邮件(昨天晚上才locking,当时交通很less):

6 Time(s): [<ffffffff810a0ebc>] ? oom_kill_process+0x7e/0x23d 6 Time(s): [<ffffffff810a1505>] ? __out_of_memory+0x12a/0x141 6 Time(s): [<ffffffff810a1586>] ? out_of_memory+0x6a/0x94 

我没有发现任何可疑的东西。 它不能是我的提供商的主机,因为我可以SSH和重新启动虚拟机,一切都很好。

任何人都知道我应该开始寻找我的问题的核心日志?

多谢你们。

消息很清楚。 系统内存不足,交换空间不足,内核正在试图释放内存。 您应该在/ var / logs中的日志文件中看到OOM消息。

下一步是find正在使用内存的进程。 我发现被杀的过程通常不是那些占据记忆的过程。 为此,您需要设置某种forms的监控。

另一种方法是沿着ps-watcher的方向安装某些东西来杀死占用太多内存的进程。 然后,您可以检查日志ps-watcher最经常查杀哪个进程,以确定罪魁祸首。