【发布时间】: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。我使用过eAccelerator、xcache和APC,虽然APC可能不是最快的,但它肯定是最稳定的。稳定我的意思是“不会随机段错误”和“线性资源使用到工作负载”。加上php源代码官方支持的只有APC的事实,选择很容易。如果您可以通过APC重复该问题,那么请再花时间调查该问题。
标签: php performance php-5.3 production-environment