长时间运行PHP脚本使用服务器内存

时间:2015-05-13 21:04:38

标签: php api laravel memory-leaks

有点奇怪的。我有一个Laravel 5项目,它从API中提取数据并将其存储在本地数据库中。第三方API使用XML - 我使用Guzzle提取数据并使用SimpleXML对象解析它。

我正在尝试追踪这个项目中似乎是内存泄漏的内容。如果脚本运行的时间足够长(而且必须是 - 数据的第一次同步可能需要一两天),它会占用服务器上的所有内存,并最终崩溃。

这是令人困惑的一点 - 我在调试模式下运行应用程序并定期输出memory_get_usage()并在给定数量的请求后停止。 PHP没有报告急剧增加。从开始到结束,以这种方式报告的总内存使用量增加了大约10kb。如果我在我的开发机器(Mac)上观察活动监视器中的进程,它会从大约20mb到30mb。我留下了前一天隔夜运行的完整脚本的副本,当我早上检查时它声称使用了750mb。

在Amazon EC2实例上也会发生同样的事情,脚本会在其中执行此操作。 memory_get_usage()没有报告任何异常 - 但是让脚本保持运行,在顶部,它将位于进程列表的顶部,MEM%将逐渐增加直到... bang。我现在正在运行一个副本 - 它开始时大约7%,现在是37.4%,但是#34; free"记忆力并没有减少。我认为它正在使用缓冲区。

那么当PHP不相信它有一个时,你如何追踪明显的内存泄漏呢?

0 个答案:

没有答案