我试图跟踪应用程序的问题[modx]我的服务器上有几个这样的网站[大约10个]我想知道我怎么能看到php在做什么。
这些网站上的页面非常慢,而开发中的相同网站与服务器上的其他php应用程序一样好。
我尝试使用xdebug来了解php在处理这些页面时所做的事情。瓶颈发生的地方,但它似乎只是想对错误做任何事情[没有抛出错误]
有关如何跟踪此问题的任何建议? [linux / Centos5 / php5.2。?/ apache2]
答案 0 :(得分:2)
Xdebug和webgrind是一个很好的方式,可以看到你的脖子在哪里......
设置php.ini以在每次运行时让xdebug配置文件代码,或者如果传递了特殊参数,则设置webgrind从同一目录中读取xdebug将其配置文件转储到。
Webgrind将向您展示哪些函数和函数集需要最多的时间,它会将其分解并且可以轻松找到速度慢和/或效率低的代码。 (例如,你的脚本在快速查询上调用“PDOStatement->执行”300次[或者调用一次而速度非常慢]占用90%的执行时间)。
答案 1 :(得分:2)
用于查找PHP瓶颈的最常用工具是Xdebug。但是你也应该手动检查代码库。
您需要关注三个不同的领域:
..并且对感知速度的影响按此顺序排列。
您应首先运行ySlow,并确保您的网站尽可能遵循指南。
下一步是跟踪执行的SQL查询,并(假设您使用的是mysql)尝试使用EXPLAIN
运行它们。另外,检查查询本身。那里可能存在一些极其愚蠢的代码,例如ORDER BY RAND()
或在巨大的表中使用LIKE
。
最后一个阶段将修复它所有人都会仔细查看代码本身。在PHP和JavaScript方面都有。
另外,你应升级到PHP 5.3 ,因为你的版本已经过时了。
答案 2 :(得分:1)
通常当你不知道你在寻找什么时,你无法用xdebug或CMS / Framework中内置的其他插件/调试条等工具来发现它,新的遗物是最简单的解决方案 - 你将能够几分钟后发现瓶颈。
虽然新文物是付费应用,但您可以在前14天免费测试 - 这足以找到问题。
这很棒,因为它集成了您经常使用的所有其他工具和数据源: xdebug,cpu& i / o监控,mysql slowlog,查询日志。 如果你的应用程序在php / DB / frontend / network上运行缓慢,它也会显示。
你应该尝试一下,而不是浪费时间用其他工具进行调试。
这是centos安装指南:https://newrelic.com/docs/php/php-agent-installation-redhat-and-centos