情况
我有虚拟专用服务器(在 Dreamhost 上)的 root 访问权限,我在该服务器上托管我的网站。我的 RAM 有限(目前为 500 MB),因此如果某个网站(此网站的脚本)占用过多 RAM,我的整个 VPS 就会关闭并重新启动,从而导致所有其他网站也瘫痪!
我的平均使用量约为 100 MB,远未达到极限,但不知何故某些脚本仍然会这样做:请求过多的 RAM,然后 Dreamhost 的看门狗会杀死我的 VPS。这一切都发生在几毫秒内(他们是这么说的),我无法轻易找出发生了什么。
问题
我如何才能找出导致此问题的脚本?Dreamhost 对此没有帮助,而且我也不是最好的 Linux 黑客 :)。
更多细节
我的所有网站都托管在 Apache 上,并且全部使用 PHP。
答案1
将 PHP 内存限制降低到较低的值 ( memory_limit
config var in php.ini
);消耗所有内存的脚本将出错,这将确定问题所在。如果问题仍然存在且没有明显错误,请继续降低内存限制。如果一切开始出错,说明您放得太远了。如果您无法在“全部死掉”和“全部不死掉”之间找到一个折衷方案,请考虑一下是不是 PHP 脚本占用了您的所有内存,然后开始寻找其他可能性(cron 作业、后台处理作业等)。