我正在运行一个网站(zf2),它不断在服务器上施加很高的负载。当我去检查流程管理器以查看网站的哪个部分造成如此大的压力时,它总是向我显示/public/index.php用于所有与php相关的流程。
有什么方法可以找到哪个控制器和操作被哪个进程调用,这样我就可以确定负载问题?
当我重新启动Apache时,它会缓解压力一段时间。我无法弄清楚网站的哪个部分正在创造如此多的负载。
答案 0 :(得分:0)
下载并安装/配置ZendDeveloperTools。这是一个小模块,它允许您调试ZF2 MVC层上的某些部分。 根据其结果,如果您的应用程序具有(例如)路由开销,您将可以缩小范围。
在ZendDeveloperTools之上,您可以安装BjyProfiler。该包允许您进行数据库查询分析。如果您使用的是Doctrine之类的ORM,则不需要BjyProfiler模块,工具栏会显示您执行的所有查询。
以上所有内容均适用于标准调试。但是,如果您渴望根据当前部署的框架实例优化/调试速度,则可以执行更多操作;
请记住,在您的实时环境中安装ZendDeveloperTools时,您必须确保只为您显示此模块内容! (例如;在您将模块添加到活动模块(if
)中放置一个/config/application.config.php
语句。如果您忘记这样做,您的所有敏感配置都会显示在应用程序上(因此整个世界可以看到它。)