Apache 启动后几秒崩溃

Apache 启动后几秒崩溃

我遇到了 apache 问题。当我尝试启动它(/etc/init.d/apache2 start)时,它在几秒钟后就死机了。它显示在“ps aux”上,消耗了大量内存,然后就死机了。我不知道是什么原因导致 apache 消耗了这么多内存:

用户 PID %CPU %MEM VSZ RSS TTY STAT 开始时间命令
root 13379 1.0 0.3 14376 3908 ?Ss 22:31 0:00 /usr/sbin/apache2 -k 启动
www-data 13383 0.0 0.4 197316 4196?sl 22:31 0:00/usr/sbin/apache2-k启动
www-data 13390 0.0 0.3 172728 4172?sl 22:31 0:00/usr/sbin/apache2-k启动
www-data 13396 0.0 0.3 156336 4160?sl 22:31 0:00/usr/sbin/apache2-k启动
www-data 13400 0.0 0.3 148140 4156?sl 22:31 0:00/usr/sbin/apache2-k启动
www-data 13403 0.0 0.3 131748 4148?sl 22:31 0:00/usr/sbin/apache2-k启动

以下是 htop 的截图:

https://i.stack.imgur.com/N4Chh.png

这是突然发生的,服务器配置没有发生任何变化,所以我不知道是什么原因造成的。我的虚拟服务器的错误日志显示以下内容:

[2011 年 1 月 30 日星期日 22:19:50] [警报](11)资源暂时不可用:mod_wsgi(pid=9685):无法在守护进程“fb.ebookmetafinder.com”中创建工作线程 11。
[2011 年 1 月 30 日星期日 22:19:55] [警报](11)资源暂时不可用:mod_wsgi(pid=9685):无法在守护进程“fb.ebookmetafinder.com”中创建工作线程 19。
[2011 年 1 月 30 日星期日 22:29:40] [警报](11)资源暂时不可用:mod_wsgi(pid=12009):无法在守护进程“fb.ebookmetafinder.com”中创建工作线程 18。
[2011 年 1 月 30 日星期日 22:31:06] [警报](11)资源暂时不可用:mod_wsgi(pid=13396):无法在守护进程“fb.ebookmetafinder.com”中创建工作线程 15。
[2011 年 1 月 30 日星期日 22:35:02] [警报](11)资源暂时不可用:mod_wsgi(pid=14009):无法在守护进程“fb.ebookmetafinder.com”中创建工作线程 16。
[2011 年 1 月 30 日星期日 22:35:07] [警报](11)资源暂时不可用:mod_wsgi(pid=14009):无法在守护进程“fb.ebookmetafinder.com”中创建工作线程 17。

我在 ubuntu 服务器 vps 上,并且将 mod_wsgi 与 django 一起使用。

谢谢。

编辑:按照 alvosu 的建议编辑 Apache mpm 配置后,apache 可以正确启动并且不会崩溃,但它消耗了我系统的所有可用内存,以至于变得不稳定:

root@vps:~# ps
ps:加载共享库时出错:libc.so.6:无法从共享对象映射段:无法分配内存

这是 apache 运行时使用 free -m 的结果:

             已使用的、可用的、缓存的共享缓冲区总数
内存:1024 1022 1 0 0 0
-/+ 缓冲区/缓存:1022 1
交换:0 0 0

没有它的话:

             已使用的、可用的、缓存的共享缓冲区总数
内存:1024 203 820 0 0 0
-/+ 缓冲区/缓存:203 820
交换:0 0 0

我认为 apache 不应该消耗这么多的内存。我使用 apache 来提供动态页面,使用 nginx 来提供静态页面。我在这个服务器上有 4 个虚拟主机。

答案1

尝试编辑 Apache mpm 配置。

$apache2 -V | grep MPM 服务器 MPM: Prefork

<IfModule mpm_prefork_module>
    StartServers          1
    MinSpareServers       1
    MaxSpareServers       5
    MaxClients            30
    ServerLimit           30
    MaxRequestsPerChild   5000
</IfModule>

$apache2 -V | grep MPM 服务器 MPM: Worker

<IfModule mpm_worker_module>
    StartServers           2
    MaxClients            30
    MinSpareThreads       15
    MaxSpareThreads       20
    ThreadsPerChild       10
    MaxRequestsPerChild  5000
</IfModule>

相关内容