资源过度使用和memory_get_peak_usage()不匹配

我有一个运行在VPS上的cron的PHP脚本,偶尔会通过lfd收到一些“过多的资源使用”警告。 警告状态显示“虚拟内存大小”已经超过了我在ConfigServer Security&Firewall(目前为800MB)中设置的阈值。

为了监视这种情况,我在脚本中添加了memory_get_peak_usage(true) ,以logging脚本每次运行时的峰值内存使用情况。

这是事情 – 结果显示脚本每次使用2MB。

请注意,只有一个脚本实例可以随时运行(多个实例可以被阻止)。

memory_limit的php.ini设置也是256MB – 所以理论上讲,如果使用的内存比这个多,那么脚本就不会运行。

该脚本使用CURL发送大量的http请求并访问MySQL。

所以我的问题是:

如何解释内存使用的差异?

监视内存使用情况比CSF或memory_get_peak_usage()更好的方法是什么?