【发布时间】:2010-09-15 11:36:09
【问题描述】:
我们经营一个中等规模的网站,每天的网页浏览量达到几十万。直到上周末,我们在虚拟机上运行的负载通常低于 0.2。操作系统是 Ubuntu。
在部署最新版本的应用程序时,我们还在部署前进行了 apt-get dist-upgrade。部署后,我们注意到 CPU 上的负载急剧增加(有时达到 10 并停止响应页面请求)。
我们尝试从 PHP 中转储整整一分钟的 Xdebug 分析数据,但仔细查看后发现只有一些速度较慢的部分,但无法解释巨大的跳跃。
我们现在非常确定我们网站的新版本中没有任何东西会引发问题,但我们无法确定。我们已经回滚了很多更改,但问题仍然存在。
在查看进程时,我们发现单个 Apache 进程在比严格必要的更长时间内使用相当多的 CPU。但是,当在受影响的进程上使用 strace 时,我们什么也没看到
accept(3,
在收到新连接之前它会挂起一段时间,所以我们实际上看不到导致问题的原因。
堆栈是 PHP 5、Apache 2(prefork)、MySQL 5.1。大多数事情都是通过 Memcached 运行的。我们已经尝试过 APC 和 eAccelerator。
那么,我们的下一步应该是什么?是否有任何我们忽略/不知道的分析方法?
【问题讨论】:
-
你是从哪个版本升级到哪个版本的?我的意思是 a) PHP,b) Apache 和 c) memcached。
-
很遗憾,我没有这方面的日志。据我所知,没有 apt-get/aptitude 日志。
标签: php mysql performance apache