如何在 mod_perl 中跟踪 CPU 密集型请求?
在 Ubuntu 8.04 上使用 Apache 2.2 和 mod_perl 我在服务器上有多个应用程序。在预分叉模式下使用 Apache。通常一切都运行良好,但偶尔我会看到 Apache 进程使用 100% 的 CPU。
服务器上有几个网站都有自己的虚拟主机,并且有 是通过 Apache 运行的 SVN 服务器。
如何追踪哪个应用程序以及该应用程序中的哪些调用产生高负载?
Using Apache 2.2 and mod_perl on Ubuntu 8.04 I have several applications on a server. Using Apache in pre-forking mode. Usually things are working well but once in a while I see one of Apache processes using 100% of the CPU.
There are several web sites on the server with their own VirtualHosts and there are
is and SVN server running via Apache.
How could I track down which application and which calls in that application generate the high load?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
Devel::NYTProf 几乎是目前 Perl 的首要分析器,具有 < a href="http://search.cpan.org/perldoc?Devel::NYTProf::Apache" rel="nofollow noreferrer">Devel::NYTProf::Apache 用于轻松分析 mod_perl 应用程序。
请参阅 蒂姆·邦斯:NYTProf v2 – Perl 分析器的重大进步,提供带有图片的漂亮概述。
不幸的是,Devel::NYTProf 没有预先打包在 Ubuntu Hardy 中。 (它已预先打包在 Jaunty、Karmic、Lucid 及更高版本中。)您可以使用一些 apt 技巧来安装这些发行版中的软件包,从 CPAN 安装,或者只是升级;-)
Devel::NYTProf is pretty much the premier profiler for Perl right now, with Devel::NYTProf::Apache for easily profiling mod_perl applications.
See Tim Bunce: NYTProf v2 – A major advance in perl profilers for a pretty overview with pictures.
Unfortunately, Devel::NYTProf isn't pre-packaged in Ubuntu Hardy. (It is pre-packaged in Jaunty, Karmic, Lucid, and later.) You can either use some apt trickery to install packages from those distributions, install from CPAN, or just upgrade ;-)
如果您的 apache 配置中启用了大型 Subversion 存储库和基于路径的授权,您将看到一些长时间运行、高 CPU 的 apache 任务。您可能还会收到 subversion 用户关于提交和更新缓慢的抱怨,以及 503 错误和 subversion 抱怨 SSL 响应被截断的情况。如果是这样的话,我会把颠覆作为我的首要嫌疑人。
If you have a large subversion repository and path-based authorization enabled in your apache configuration you're going to see some long-running, high CPU apache tasks. You'll probably also have complaints from subversion users about slow commits and updates, along with 503 errors and subversion complaining about truncated SSL responses. If this is the case, I'd make subversion my prime suspect.
使用自定义日志格式或编写 PerlLogHandler 来记录请求信息以及 PID 和资源使用信息。例如,请参阅 Randal 的Web 技术专栏 48。
Use a custom log format or a write a PerlLogHandler that records the request information along with the PID and resource use information. See, for instance, Randal's Web Techniques Column 48.