/bin/sh:fork:无法分配内存

/bin/sh:fork:无法分配内存

在我的 Web 服务器中运行以下架构

Centos 6.5 
Plesk 12
Nginx 1.6 (As a reverse proxy)
Apache 2.2 
MySQL 5.5
PHP 5.5
Openfire 1.9.4
Pagespeed

Web 服务器一次最多可以容纳 500 个并发用户,但功能非常强大

CPU: Intel® Xeon® E3-1225v3 (Quad-Core, 4x 3.6 GHz)
Memory: 24GB

我经常收到以下错误,

/bin/sh: fork: Cannot allocate memory

我怀疑上述模块之一存在内存泄漏,但是当我搜索/谷歌搜索时,我没有发现任何已知的内存泄漏问题。

当这种情况发生时,它会锁定外壳,网站也会显示 502,504

但我不能做

ps -aux 

或任何命令来找出哪个进程导致了这个问题,因为 shell 本身也卡住了,没有响应

5-10 分钟后,一切恢复正常。并且 ps -aux 没有显示任何无效/繁重的进程

  • 我该如何修复或找出导致这些中断的原因?*
  • 我可以在有限内存模式下运行应用程序吗?如果可以,如何操作*
  • 哪些系统日志可能有助于确定问题的原因?*
  • 如何通过 cron 作业进行内存检查并查看其是否会重新启动或采取某些措施来阻止它?*

答案1

首先想到的是 apache。检查您的最大服务器设置。还要查找有关最大工作者的部分(现在不在电脑前,所以我无法为您提供确切的设置)。

运行 ps aux | grep httpd | wc -l。您还需要在没有 wc 的情况下执行此操作,以查看每个进程使用了​​多少内存。

第一个问题应该是,你有足够的记忆吗?

运行 free -m 进行检查。

相关内容