更新:
================================================================
我终于找到了oprofile的原因。这是因为Symfony的路由缓存。我们有很多具有不同urls的页面,symfony将它们缓存在一个文件中(序列化数据)。因此,缓存文件变得越来越大,需要更多的CPU来序列化和反序列化数据。
在我禁用路由缓存之后,一切都很顺利
================================================================
我们有三个带有LVS的web服务器(Apache 2.11 + PHP 5.26),我们使用Symfony 1.0进行产品开发。
但是最近我们用Symfony 1.2.7更新了我们的产品,我们得到了一个严重的性能问题。
我们使用Ganglia来监控我们的服务器。在udpates之前,web服务器的平均负载低于1;在udpates之后,负载急剧增加,负载达到80 (我可以看到Ganglia的CPU使用率增加了很多)。
我找不到原因。是因为Symfony框架吗?(但根据Ganglia的说法,负载不应该增加得这么快)。
顺便说一下,在我们的新产品中使用了大量的AJAX,这意味着打开一个页面至少有5-7个PHP请求。这就是原因吗?
谁能帮我找出所有可能的原因?或者我还应该提供什么信息来进行诊断?
提前感谢,期待您的回复~
发布于 2009-09-21 09:52:30
您应该使用profiler来查找代码中的热点。毫无疑问,这是定位问题的最好方法--任何其他方法,您只是在猜测。
发布于 2009-09-21 13:24:00
请确保缓存目录可用于写入。在你更新symfony之后,你清除它了吗?如果不是-执行
symfony cc从项目文件夹中的shell中执行此操作。
https://stackoverflow.com/questions/1453448
复制相似问题