2010-09-05 50 views
0

在我的开发机器上,我的应用程序每次请求使用了大约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内存,PHP 5.3.2,阿帕奇2.2.15,MySQLnd 5.0.7-DEV(Zend服务器CE)

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

此外,我没有真正能够找到瓶颈,它就像它的应用程序范围内。请告诉我是否应该提供任何其他信息。我的开发机器上使用的Zend服务器,启用了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 

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

+0

你可以测试它在32位Linux呢? – fazo 2010-09-05 18:48:13

+0

@fazo如果没有其他人有任何更多的建议,我会花一些时间设置一个虚拟机。 – 2010-09-06 10:07:42

+0

我试图让开发机器更接近生产机器,以便能够调试调试机器的问题。我猜你的问题是'eAccelerator'。我使用过'eAccelerator','xcache'和'APC',而'APC'可能不是最快的,它肯定是最稳定的。而稳定性,我的意思是“不随机分段”和“线性资源使用量到工作量”。添加只有'APC'被'php'源代码正式支持的事实,这个选择很容易。如果你可以用'APC'重复这个问题,那么只有花更多的时间来研究这个问题。 – 2013-01-16 07:22:49

回答

0

的Windows 7 32位

的CentOS 5.5 64位,

+0

它真的有很大的区别吗?我的意思是,4-6MB - > 21MB增加了100%以上 – Robus 2010-09-05 18:52:20

+0

我真的想知道同样的事情。这是否意味着我应该切换到32位操作系统以获得更好的性能,或者我错过了什么? – 2010-09-05 19:00:58

+0

@格雷我相信如此。但你的开放性问题对我来说还不清楚。你的意思是只有内存消耗或时间?你为什么不分析你的应用程序? 1秒钟是一大堆时间,我不能相信没有一定的瓶颈。无论如何,对于可怕的框架和ORMS,操作码的cacher是强制性的,请点击此处:http://stackoverflow.com/questions/28716/ – 2010-09-06 05:42:39