部署 Cannot allocate memory 错误

luffycn · 2015年02月02日 · 最后由 xixiwelcome 回复于 2015年03月06日 · 8940 次阅读

网站在执行某些脚本,或者运行某些进程时,会导致 以下错误,整个 WEB SERVER 直接挂掉

使用 ubuntu 14.04 + capistrano3 + nginx + unicorn 部署

E, [2015-02-01T21:25:33.336099 #25713] ERROR -- : worker=2 PID:12839 timeout (33s > 30s), killing E, [2015-02-01T21:25:33.981966 #25713] ERROR -- : reaped # worker=2 E, [2015-02-01T21:25:34.105756 #25713] ERROR -- : Cannot allocate memory - fork(2) (Errno::ENOMEM)

不知该如何解决这种问题

加内存,或者干掉一些内存占用较大的进程

平常正常情况下内存运行情况

$ free -mh total used free shared buffers cached Mem: 488M 435M 52M 412K 1.4M 31M -/+ buffers/cache: 402M 85M Swap: 0B 0B 0B

我这是新的 VPS,没装什么东西,不知道还能干掉什么占用内存大的

3 楼 已删除

@luffycn 前两天写的这个帖子,可以参考下:https://ruby-china.org/topics/24034
另外你可以 top 一下,看看那些占用内存比较大的。

#2 楼 @luffycn 加 swap 可以解决问题。

不要盲目的加内存,或者杀进程。 找找内存泄漏 或者 程序的逻辑问题吧。 往往是逻辑设计不当,或者直接有内存泄漏造成的。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号