更新:
==================================================== ============== 我终于找到了oprofile的原因。这是因为 Symfony 的路由缓存。我们有很多具有不同 url 的页面,symfony 将它们缓存在一个文件中(序列化数据)。所以缓存文件变大了,需要更多的 CPU 来序列化和反序列化数据。
禁用路由缓存后一切顺利
==================================================== ===============
我们有三台带有 LVS(Apache 2.11 + PHP 5.26)的 Web 服务器,我们使用 Symfony 1.0 进行产品开发。
但是最近我们用 Symfony 1.2.7 更新了我们的产品,我们遇到了一个严重的性能问题。
我们使用 Ganglia 来监控我们的服务器。更新前,Web 服务器的平均负载低于 1。更新后,负载急剧增加,最高负载为 80(我可以看到来自 Ganglia 的 CPU 使用率增加了很多)。
我找不到原因。是因为 Symfony 框架吗?(但根据 Ganglia 的说法,负载不应该增长得这么快)。
顺便说一句,在我们的新产品中,大量使用了 AJAX,这意味着打开一个页面至少有 5-7 个 PHP 请求。这是原因吗?
谁能帮我找出所有可能的原因?或者我还应该提供什么信息来诊断?
先谢谢了,期待你的回复~
我终于找到了oprofile的原因。这是因为 Symfony 的路由缓存。我们有很多具有不同 url 的页面,symfony 将它们缓存在一个文件中(序列化数据)。所以缓存文件变大了,需要更多的 CPU 来序列化和反序列化数据。
禁用路由缓存后一切顺利