2014-01-19 58 views
1

我正在使用FuelPHP框架构建网站,默认情况下会在页面底部打印执行时间和内存使用情况。现在,我只注意到我的本地机器上,我有一个非常小的内存占用:FuelPHP网站使用远程服务器上的10倍内存

Page rendered in 0.0304s using 0.721mb of memory. 

我部署正是这个网站(包括数据库的快照)到我的远程测试服务器,并通过一个突然的内存使用量增加10倍:

Page rendered in 0.0963s using 7.099mb of memory. 

我无法解释从执行的单独的细节差别这么大,所以我觉得偏差必须在环境中。 不幸的是,我主要是一个程序员,并不是一个真正的服务器管理员,所以我真的不知道从哪里开始寻找。所以我会问一些一般性问题,希望能给我一些有用的指导:我应该从哪里开始寻找?代码是完全一样的,据我所知,这两台机器(本地笔记本电脑和远程服务器)都是使用PHP5的相当标准的Apache安装。欢迎任何提示可能会导致此问题的特定Apache或PHP设置的答案,或特定行在日志中搜索的答案。

我意识到这是一个相当普遍的问题,可能会让我得到一些赞同,任何建设性的批评都会受到欢迎。基本上,我现在无法在哪里开始寻找。

更新:我决定先排除框架的罪魁祸首,所以我跑在两台机器上以下单行脚本:

本地我得到约115的值,而远程服务器报告约600.

更新2:刚注意到我在本地运行PHP5.5,但服务器只在5.3。也许稍后修复的一些错误 - 将首先升级。

+1

相同的本地和远程? – 2014-01-19 21:13:23

+0

服务器/ php的配置?另一方面,他们使用了大量的静态,通常意味着不好的框架。奇怪的内存使用情况确认了这一点。我建议你看看Symfony2或Zend Framework 2。 –

+0

@Dagon差不多,本地运行Ubuntu 13.10,而服务器运行12。04 LTS版本。 – CompuChip

回答

3

感谢您的建议家伙,我解决了这个问题。 正如在原帖的更新中指出的那样,我意识到我在本地运行PHP5.5,但服务器只有5.3。在使用apt以及其他一些关于SO的其他问题的帮助之后,我用PHP 5.5.x安装了Apache 2.4。现在,我居然看到

Page rendered in 0.0261s using 0.582mb of memory. 

本地和远程

Page rendered in 2.3184s using 1.238mb of memory. 

假设2倍由服务器为64位,而不是我的机器造成的,我可以用剩下的差异相处。

+0

为什么您的远程服务器需要两个数量级的时间才能生成页面?我认为你需要进一步调查与Xdebug –

+0

是的,我也发现了一些缓存问题。现在把它降到同样的数量级。 – CompuChip

+0

可能是磁盘io。如果它真的是一台服务器,它可能是一个慢速的服务器硬盘,而不是本地的SSD。 –

1

使用Xdebug找出哪些函数正在使用您的所有内存。

最有可能是框架中的错误或设计缺陷。

根据您的服务器,Xdebug可能很难甚至不可能工作。但有时它是预先安装和简单的。

+0

非常感谢Abhi。目前的问题已经解决,但我会考虑安装Xdebug,并在某个时候通过框架,看看我是否能找到任何奇怪的东西,并可能挤出更多的性能。目前我的首要任务是完成开发和测试。 – CompuChip

相关问题