【发布时间】:2018-02-27 02:16:52
【问题描述】:
我在 AWS 上运行一个基于 CakePHP 2.2.3、PHP 5.6.32 和 MySQL 数据库的站点。最近,我遇到了服务器崩溃的问题,这些问题似乎是在服务器内存不足时开始的。
我已设置 CloudWatch 来监控内存使用情况,并在过去几天看到以下情况(服务器在大约 5 天前重置):
在服务器上运行 'top' 会产生相同的内存使用结果。
对我来说这看起来像是内存泄漏(对吗?),但我的理解是 PHP 5.6 应该进行垃圾收集。我根本没有在我的代码中使用显式内存分配,但不能排除 CakePHP 使用的可能性。或许 PHP 完全没有问题。
我是网络开发的新手,不知道从哪里开始。由于分配量大,Google 搜索返回了 OOM 错误的解决方案,但这不是这里的问题。什么可能导致网站显示出像这样几乎单调增加的内存使用量?我该如何寻找罪魁祸首?
编辑:“top”的输出在下方按内存使用情况排序,以防有帮助。
编辑 2:'atop -m' 的输出如下。
【问题讨论】:
-
在
top,哪个进程正在吃掉所有的内存? -
此时屏幕截图没有任何问题。要获得更好的历史数据,请使用
atop。 -
为什么是“PHP 5.6.32”,种类的旧
-
@JasonCooper
atop记录统计信息,因此下次发生时您可以获得更好的图片。目前数字看起来不错,您的服务器没有任何问题。 -
@JasonCooper 是的,我会说它或多或少是正确的。
标签: php mysql amazon-web-services cakephp memory-leaks