如何在mod_perl中跟踪CPU密集型请求?
在Ubuntu 8.04上使用Apache2.2和mod_perl,我在一台服务器上有几个应用程序。在预分叉模式下使用Apache。通常情况下,一切正常,但偶尔我会看到一个Apache进程使用100%的CPU 服务器上有几个网站都有自己的虚拟主机,并且 是和SVN服务器通过Apache运行 我如何跟踪哪个应用程序以及该应用程序中的哪些调用生成了高负载?现在几乎是Perl的首选分析器,它可以轻松地分析mod_Perl应用程序 请参阅,以获取有关图片的完整概述如何在mod_perl中跟踪CPU密集型请求?,perl,apache,mod-perl,Perl,Apache,Mod Perl,在Ubuntu 8.04上使用Apache2.2和mod_perl,我在一台服务器上有几个应用程序。在预分叉模式下使用Apache。通常情况下,一切正常,但偶尔我会看到一个Apache进程使用100%的CPU 服务器上有几个网站都有自己的虚拟主机,并且 是和SVN服务器通过Apache运行 我如何跟踪哪个应用程序以及该应用程序中的哪些调用生成了高负载?现在几乎是Perl的首选分析器,它可以轻松地分析mod_Perl应用程序 请参阅,以获取有关图片的完整概述 不幸的是,Devel::NYTProf
不幸的是,Devel::NYTProf没有预先打包到Ubuntu Hardy中。(它是用Jaunty、Karmic、Lucid和更高版本预先打包的。)您可以使用一些适当的技巧从这些发行版安装软件包,从CPAN安装,或者只是升级;-) 如果在apache配置中启用了大型subversion存储库和基于路径的授权,您将看到一些长时间运行、高CPU的apache任务。您可能还会收到subversion用户关于提交和更新缓慢的投诉,以及503错误和subversion关于SSL响应被截断的投诉。如果是这种情况,我会让subversion成为我的主要嫌疑犯。使用自定义日志格式或编写一个PerlLogHandler,记录请求信息以及PID和资源使用信息。例如,请参阅Randal的。一旦我知道哪些请求导致了问题,我可以尝试分析它们,但将分析程序添加到所有请求听起来是个坏主意——至少乍一看是这样