【问题标题】:Degraded performance on a production machine生产机器上的性能下降
【发布时间】:2011-04-08 12:23:08
【问题描述】:

在我的开发机器上,我的应用程序每次请求消耗了大约 4-6MB 的内存。切换到生产机器后,每个请求的这些数字高达 21+MB,速度没有任何改进(0.30 - 1.2 秒,我真的希望在我的生产机器上改进)。应用程序的某些部分(如数据库引导)在开发机器上使用了 271KB,在生产机器上使用了 2.5MB,所以我想知道这可能是什么原因。我的应用程序使用 Zend Framework 1.10.8 (MVC) 和 Doctrine 2.0beta4 ORM 和 PDO_MySQL 作为数据库适配器。

我的开发机器: Windows 7 32 位、1.8GHz 双核、2GB RAM、PHP 5.3.2、Apache 2.2.15、MySQLnd 5.0.7-dev (Zend Server CE)

我的生产机器: CentOS 5.5 64 位、2.66GHz 四核、8GB RAM、PHP 5.3.3、Apache 2.2.16、MySQL 5.1.48

另外,我并没有真正找到瓶颈,就像它是应用程序范围的。请告诉我是否应该提供任何其他信息。

更新:
我在开发机器上使用的 Zend Server 启用了 Zend Optimizer+ 和 APC,我的系统管理员建议我应该使用 eAccelerator,所以我听从了他的建议。但是,在 phpinfo() 我看到这个:

eAccelerator 0.9.6.1
Caching Enabled  true
Optimizer Enabled    true
Check mtime Enabled  true
Memory Size          16,777,144 Bytes
Memory Available     16,772,976 Bytes
Memory Allocated     4,168 Bytes
Cached Scripts       0
Removed Scripts      0

这是否意味着它没有正确配置?

【问题讨论】:

  • 你能在 32bit linux 上测试一下吗?
  • @fazo 有时间我会设置一个虚拟机,如果没有其他人有更多建议的话。
  • 我会尽量让开发机器更靠近生产机器,以便能够使用调试机器调试问题。我猜你的问题是eAccelerator。我使用过eAcceleratorxcacheAPC,虽然APC 可能不是最快的,但它肯定是最稳定的。稳定我的意思是“不会随机段错误”和“线性资源使用到工作负载”。加上php 源代码官方支持的只有APC 的事实,选择很容易。如果您可以通过APC 重复该问题,那么请再花时间调查该问题。

标签: php performance php-5.3 production-environment


【解决方案1】:

Windows 7 32 位,

CentOS 5.5 64位,

【讨论】:

  • 差别真的那么大吗?我的意思是,4-6MB -> 21MB 增加了 100% 以上
  • 我实际上也在想同样的事情。这是否意味着我应该切换到 32 位操作系统以获得更好的性能,还是我错过了什么?
  • @Gray 我相信是的。但是我不清楚你的开场白。你的意思是只有内存消耗还是时间?你为什么不分析你的应用程序? 1 秒是很长的时间,我不能相信没有一定的瓶颈。无论如何,对于可怕的框架和 ORMS,操作码缓存器是强制性的,请在此处查看:stackoverflow.com/questions/28716
猜你喜欢
  • 1970-01-01
  • 2014-06-08
  • 2015-11-04
  • 2016-05-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-19
  • 2013-12-24
相关资源
最近更新 更多