我为客户编写了一个小型调查应用程序,没有什么特别复杂的,它会向客户询问一些问题,然后将答案记录在数据库中。它在我的计算机、我们拥有的开发服务器和客户暂存服务器上运行良好。然而,在客户的实时服务器上,我们不断收到以下错误:
致命错误:允许的内存大小 268435456 字节已用尽(试图分配 289839120 字节)未知在线的0
我真的不知道是什么导致了这个问题,客户端似乎也无法诊断它。我的电脑运行的是 Windows 7,其中运行着 Apache 和 PHP 5.3.6 作为 Apache 模块。我们的开发服务器运行的是 Linux,其中安装了 Apache 和 PHP 5.2.16 作为 Apache 模块。两个客户端服务器(staging 和 live)都在 Linux VPS 上运行(虽然我不确定 staging 和 live 是否在同一个 VPS 上运行),使用 CGI 运行 PHP 5.2.14。所有环境都在运行一组标准扩展,除了我的电脑,它安装了一些像 APC 和 HTTP 扩展的东西。客户端 VPS 上的内存限制是 256M。
我认为客户端服务器的配置一定存在问题(他们在这台服务器上运行 Joomla 来运行他们的网站,同时运行我创建的这个小型调查应用程序),但我不排除我的代码存在问题。我倾向于这种诊断的原因是,代码在其他环境中运行没有问题,没有执行任何会消耗大量内存的操作,并且内存不足错误指向文件“第 0 行上的未知文件”。
我真的很感激大家对这个问题的想法。
答案1
允许的内存大小 268435456 字节已用尽
有些事非常这里发生错误了。
我认为客户端服务器的配置一定存在问题
您没有提供任何证明您信仰的理由。
我首先要看的是正在运行的 SQL 和慢速查询日志;猜测你从数据库中提取了太多数据。
如果这不能解决问题,则在代码中设置仪器来选择请求的子集并记录其整个进程中的内存使用情况。