LAMP上的性能Zend肥皂服务

时间:2011-08-07 08:48:39

标签: performance web-services zend-framework lamp

我在我的zend应用程序中开发了2个soap webservices。在我的开发环境(Mac 8 GB ram i7处理器上的MAMP)上,性能非常好。当我将它部署在我的Ubuntu LAMP服务器(1 GB RAM 1处理器)上时,性能会下降很多。它慢了10倍。

我有一个java客户端(来自wsdl的eclipse自动生成客户端)问题是第一次调用总是比第二次调用慢4倍。这适用于我的MAMP和LAMP。

MAMP - 首先拨打400毫秒 - 第二次通话100毫秒

LAMP - 首先拨打2 000 ms - 第二次通话400毫秒

我只是复制了请求,因此对于第一次和第二次调用,请求是完全相同的。

如果我多次手动运行LAMP客户端,第一次呼叫将在900 ms左右完成。感觉好像Zend应用程序在第一次调用时必须“启动”某些东西。

有没有人知道如何解决这个问题?我尝试了什么:

  • 确保wsdl已缓存
  • 已安装的xcache(未随LAMP一起提供)
  • 阅读调整tutroials

提前致谢!

2 个答案:

答案 0 :(得分:0)

当您使用Zend_Soap_AutoDiscovery生成wsdl时,通常会出现此性能问题。如果您的代码就是这种情况,则应考虑将生成的wsdl存储为单独的xml文件,并将其加载到Zend_Soap_Server构造函数中。

答案 1 :(得分:0)

这看起来像是操作码缓存的问题。没有操作码缓存,Zend真的很慢。并且在使用它时会获得提升。

我会寻找Zend Optimizer,eAccelerator或者simillar ......

这就是为什么它会在一些空闲时间(从IO缓存中擦除类/文件)后减速的原因。