在使用PHP的服务器上超过内存问题

在使用PHP的服务器上超过内存问题,php,memory,out-of-memory,ram,Php,Memory,Out Of Memory,Ram,PHP在PHP.ini文件中设置了全局级别的内存限制。我还知道,它们可以在本地级别进行配置 查询的内存限制设置为132MB,但我们不断收到如下错误: 致命错误:允许的内存大小161480704字节已用尽,尝试在{line}行的{removed_file_path}/script.php中分配32字节 目前,我们正在通过一个错误日志文件监控我们的系统,该文件在用户浏览页面时缓存错误,并使用cron;但是,这些不会被记录到任何地方 通过将对mysql_查询的任何调用更改为mysql_unbuffe

PHP在PHP.ini文件中设置了全局级别的内存限制。我还知道,它们可以在本地级别进行配置

查询的内存限制设置为132MB,但我们不断收到如下错误:

致命错误:允许的内存大小161480704字节已用尽,尝试在{line}行的{removed_file_path}/script.php中分配32字节

目前,我们正在通过一个错误日志文件监控我们的系统,该文件在用户浏览页面时缓存错误,并使用cron;但是,这些不会被记录到任何地方

通过将对mysql_查询的任何调用更改为mysql_unbuffered_查询,可以修复此错误,但是我需要知道服务器上所有文件的更改位置。如果脚本实际上没有内存问题,那么我不想更改代码,因为我希望服务器尽可能将结果读取到RAM中

我们不想增加PHP的内存限制,因为我们的主机建议我们不要这样做


如何解决内存问题?我们在CentOS 6.7上运行。

~150+MB的单脚本执行空间听起来像是一个单脚本执行空间很大。对于内存中需要的所有这些行,您到底在做什么?这些脚本从我们拥有的表中运行SELECT*查询。该表存储了一行链接到我们网站的每次点击的信息;正如您可以想象的,我们返回了很多行。我认为当调用mysql_查询函数时,它会将所有结果存储在内存中的一个数组中。您是否尝试过不这样做?只获取所需的列和所需的行。另外,mysql_*函数也被弃用,yadda yadda PDO。您是否能够将问题分解成更小的块,这样您就不需要无限制地执行SELECT*?如果希望应用程序能够很好地扩展,那么您可能需要这样做。我将查看一下并向您报告。