LAMP 上的性能 Zend Soap 服务
我在我的 zend 应用程序中开发了 2 个肥皂网络服务。在我的开发环境(Mac 8 GB RAM i7 处理器上的 MAMP)中,性能非常好。当我将其部署在我的 Ubuntu LAMP 服务器(1 GB RAM 1 处理器)上时,性能下降很多。速度慢了10倍以上。
我有一个java客户端(eclipse从wsdl自动生成的客户端)问题是第一个调用总是比第二个调用慢4倍。这适用于我的 MAMP 和 LAMP。
曼普 - 首次调用 400 毫秒 - 第二次调用 100 毫秒
LAMP - 第一次调用 2 000 毫秒 - 第二次调用 400 毫秒
我只是复制请求,因此第一次和第二次调用的请求完全相同。
如果我手动运行 LAMP 客户端几次,第一次调用将在大约 900 毫秒内完成。感觉好像 Zend 应用程序必须在第一次调用期间“启动”某些东西。
有谁知道我如何解决这个问题?我已经尝试过:
- 确保 wsdl 已缓存
- 安装 xcache(未随 LAMP 一起提供)
- 阅读调优教程
提前致谢!
I have developed 2 soap webservices in my zend application. In my development environment (MAMP on mac 8 GB ram i7 processor) the performance is really good. When I deploy it on my Ubuntu LAMP server (1 GB RAM 1 processor) the performance decreases a lot. Its more than 10 times slower.
I have a java client (eclipse autogenerated client from wsdl) The problem is that the first call is always 4 times slower than the second one. This goes for both my MAMP and LAMP.
MAMP
- First call 400 ms
- Second call 100 ms
LAMP
- First call 2 000 ms
- Second call 400 ms
I simply duplicate the request so the request is exactley the same for the first and second call.
If I manually run the LAMP client several times the first call will be done at around 900 ms. It feels as if the Zend application has to "startup" something during the first call.
Does anyone have any clue on how I can get around this? What I've tried:
- Make sure the wsdl is cached
- Installed xcache (not shipped with LAMP)
- Read tunings tutroials
Thanks in advance!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
当您使用 Zend_Soap_AutoDiscovery 生成 wsdl 时,经常会出现此性能问题。如果您的代码属于这种情况,您应该考虑将生成的 wsdl 存储为单独的 xml 文件并将其加载到 Zend_Soap_Server 构造函数中。
This performance issue often occurs when you use Zend_Soap_AutoDiscovery for wsdl generation. If that is the case for your code, you should consider storing your generated wsdl as a separate xml file and load it in the Zend_Soap_Server constructor.
这看起来像是操作码缓存的问题。如果没有操作码缓存,Zend 真的很慢。使用它时,它会得到 ncie 提升。
我会寻找 Zend Optimizer、eAccelerator 或类似的...
这就是为什么它在一段空闲时间后会变慢(类/文件从 IO 缓存中擦除)。
This looks like a problem with opcode cache. Without opcode cache, Zend's really slow. And it gets a ncie boost when using it.
I'd look for Zend Optimizer, eAccelerator, or simillar...
That would be why it slows down after some idle time (classes/files are wiped from IO cache).