我遇到了 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>