我正在运行一个网站(zf2),它不断地在服务器上达到非常高的负载。当我去检查进程管理器,看看网站的哪个部分造成了这么大的压力时,它总是显示所有与php相关的进程的/public/index.php。
有没有什么方法可以让我找到哪个进程正在调用哪个控制器和操作,这样我就可以确定负载问题了?
当我重新启动Apache时,它会在一段时间内降低压力。我无法弄清楚网站的哪个部分产生了如此多的负载。
发布于 2015-12-26 20:35:53
下载并安装/配置ZendDeveloperTools。这是一个很小的模块,它将允许你在ZF2 MVC层上调试某些部分。根据它的结果,如果您的应用程序有(例如)路由开销,您将能够缩小范围。
您可以在ZendDeveloperTools上安装BjyProfiler。该包允许您进行数据库查询分析。如果你使用的是像Doctrine这样的对象关系管理,你不需要BjyProfiler模块,工具栏将显示你所有执行的查询。
以上所有内容都是为了进行标准调试。但是,如果您希望根据当前部署的框架实例来优化/调试速度,您可以做更多的事情;
PHP事件:ZfSnapEventDebugger
请记住,在您的实时环境中安装ZendDeveloperTools时,必须确保仅为您显示此模块的内容!(例如,在将模块添加到活动模块(/config/application.config.php)的位置放置一条if语句。如果您忘记这样做,您所有的敏感配置都会显示在应用程序上(这样整个世界都可以看到它)。
https://stackoverflow.com/questions/34334623
复制相似问题