Debug Performance Issues

时间:2013-12-22 作者:Mark Ursino

我有一个WordPress博客,我在Dream Host上主持了几年了。最近(去年)我的网站经常宕机。通过Dream Host,我发现我正在使用我的CPU限制,他们正在杀死我的进程。这种情况过去一天发生两次,但我能把它减少到一周一次。我将我的缓存插件从W3 Total缓存交换到另一个缓存,并删除了一些插件。我有时还是会遇到问题。老实说,我是ASP。NET开发人员,所以我习惯于调试IDE和CMS应用程序中的工具。我如何才能弄清CPU问题的根源?有WordPress工具吗?此外,我的网站是为URL模式配置的http://hostname.com/{article slug here} 所以你会注意到我并没有按年、月或类别划分子文件夹。这会导致问题吗?

2 个回复
SO网友:Rarst

WP站点通常会在CPU过载的情况下导致服务器停机,这有两种截然不同的情况:

你的网站速度不够快,无法满足你的流量,简单地说,如果你的服务器每十分之一秒就可以提供一个页面,而你在那一秒就获得了超过10个页面浏览量,那么你的资源就破产了。如果你的网站宕机与流量高峰密切相关,那么你要么加快速度,要么给它更多的资源。

您有一个bug和/或配置问题,这是一个更加隐蔽的问题,因为它不是真正的性能问题。这是一个导致某种疯狂循环的问题,这种循环会真正消耗CPU。它甚至可能不在PHP代码中,例如,当站点尝试对自身进行HTTP请求时,在某些配置中往往会发生这种情况。

要做的事情安装探查器,级别越低,它将为您提供更深入的见解。NewRelic、munin、xdebug、xhprof、something WP级别(P3探查器、时间堆栈、Laps)。不是同时!:)取决于您的托管类型等。请小心不要从一开始就过多地启动它,因为任何活动的调试器/探查器都会使站点在一定程度上变慢(从不重要到致命的300%减速),这可能会立即使问题升级。

启动日志记录。打开WP_DEBUG, 禁用显示错误,将其记录到文件。

将站点向下拖动到本地安装,应用相同的(SAN隐藏错误),查看其行为。

从这一点上看,要么表现得像超新星一样耀眼(认为自己很幸运),要么缓慢寻找出了什么问题以及在什么情况下表现出来。

SO网友:Mark Kaplun

除了@rarst所说的之外,Apache/mysql/php配置选项可能会导致一些问题,这些问题几乎不可能通过wordpress或php进行调试,并且需要操作系统级的监控工具。

如果您的问题是典型的,那么您需要查看apache配置文件并检查maxclient和maxservers的值是什么。减少这些值可能会帮助站点避免达到内存和cpu峰值,但会降低站点的性能。

无效的permalink结构可能会导致站点响应较慢,但不应导致cpu过载。

结束