apache2 和 mysql 内存不足故障后自动启动

apache2 和 mysql 内存不足故障后自动启动

我的服务器出现内存不足问题。根据消息日志,这导致 apache 和 mysql 被终止。

kernel: [29992047.769005] Out of memory: Kill process 13541 (httpd) score 10 or sacrifice child
kernel: [29992047.769005] Killed process 13541 (httpd) total-vm:70432kB, anon-rss:11016kB, file-rss:168kB

奇怪的是(虽然是件好事),它会自动启动,但我不知道它是怎么启动的。我仍然需要调查内存不足错误,但我不知道它实际上是如何自动启动的。

我已经在自己的 Amazon EC2 小型实例上设置了 apache 和 mysql。除了用于启动时间的常规 chkconfig 设置外,此实例上没有 cron 作业或任何其他自动脚本。

目前主要是好奇,但了解 apache 和 mysql 何时以及如何重新启动会很有用。可能对我的其他服务也有用。

答案1

给你一些线索:

您还可以使用auditd设置对 Apache 二进制文件的监视:

auditctl -w /usr/sbin/httpd -p x -k apache-binary-file

然后找出是谁调用的:

# ausearch -f /usr/sbin/httpd
----
time->Tue Mar 19 05:23:22 2013
type=PATH msg=audit(1363674202.844:241): item=1 name=(null) inode=3237 dev=fd:00 mode=0100755 ouid=0 ogid=0 rdev=00:00 obj=system_u:object_r:ld_so_t:s0
type=PATH msg=audit(1363674202.844:241): item=0 name="/usr/sbin/httpd" inode=14695 dev=fd:00 mode=0100755 ouid=0 ogid=0 rdev=00:00 obj=system_u:object_r:httpd_exec_t:s0
type=CWD msg=audit(1363674202.844:241):  cwd="/root"
type=EXECVE msg=audit(1363674202.844:241): argc=1 a0="/usr/sbin/httpd"
type=SYSCALL msg=audit(1363674202.844:241): arch=40000003 syscall=11 success=yes exit=0 a0=9ff7c38 a1=9ff7c00 a2=9ff6bd8 a3=9ff7c00 items=2 ppid=2593 pid=2594 auid=500 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts0 ses=2 comm="httpd" exe="/usr/sbin/httpd" subj=unconfined_u:system_r:httpd_t:s0 key="apache-binary-file"

相关内容