首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法分配内存: fork:无法fork新进程?

无法分配内存: fork:无法fork新进程?
EN

Stack Overflow用户
提问于 2015-02-25 17:36:44
回答 3查看 32.9K关注 0票数 12

我们在aws有我们的主机。最近,在将我们的博客从wordpress迁移到aws之后,我们遇到了服务器响应时间的明显延迟。主要是在访问博客的时候。下面是error_log文件中的日志,

代码语言:javascript
复制
[Wed Feb 25 06:10:10 2015] [error] (12)Cannot allocate memory: fork: Unable to fork new process
[Wed Feb 25 06:12:22 2015] [error] (12)Cannot allocate memory: fork: Unable to fork new process
[Wed Feb 25 06:12:36 2015] [error] (12)Cannot allocate memory: fork: Unable to fork new process
[Wed Feb 25 06:12:50 2015] [error] (12)Cannot allocate memory: fork: Unable to fork new process
[Wed Feb 25 06:13:35 2015] [error] (12)Cannot allocate memory: fork: Unable to fork new process
[error] (12)Cannot allocate memory: fork: Unable to fork new process
[Wed Feb 25 06:27:14 2015] [error] (12)Cannot allocate memory: fork: Unable to fork new process

我们在php.ini文件中将内存大小从256MB增加到512MB。但是,问题仍然存在。

我们还将KeepAlive更改为On。它仍然不能解决。任何建议/解决方案都会有很大帮助。

EN

回答 3

Stack Overflow用户

发布于 2015-12-04 06:24:55

当我在AWS的vm上的ubuntu上托管一个带有jenkins、mysql和tomcat的java应用程序时,我也遇到过这个问题。

我用来解决重启虚拟机问题的第一步。

默认情况下,AWS不会在硬盘上提供交换内存,所以你最好自己动手做。如何做到这一点你可以找到here。值得一提的是:交换区域的解决方案(不知道为什么)对我不起作用,我必须创建一个交换文件。

祝你好运!

票数 12
EN

Stack Overflow用户

发布于 2015-12-23 04:39:57

我也有同样的问题要解决,有两个选择:

1-从微型实例转移到小型实例,这是解决问题的变化( amazon上的微型实例往往具有较大的cpu窃取时间)

2-调整mysql数据库服务器配置和我的apache配置,以使用更少的内存。

针对低内存情况的调优指南,例如:http://www.narga.net/optimizing-apachephpmysql-low-memory-server/ (但不要使用MyISAM表的建议-可怕的...)

这两个选项将大大减少问题的发生。我仍然在寻找更好的解决方案来关闭已经完成的进程,并杀死那些挂在那里的进程。

票数 3
EN

Stack Overflow用户

发布于 2016-05-19 19:31:54

将Apache的prefork MPM更改为httpd.conf,我最终使用了以下值:

StartServers 1

MinSpareServers 1

MaxSpareServers 5

ServerLimit 16

MaxClients 16

MaxRequestsPerChild %0

ListenBacklog 100

然后,尝试使用sudo a2dismod name_of_module停用一些模块php

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28715545

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档