2010-02-03 58 views
5

在Ubuntu 8.04上使用Apache 2.2和mod_perl我在服務器上有幾個應用程序。在預分配模式下使用Apache。通常事情運行良好,但偶爾我會看到一個使用100%CPU的Apache進程。如何追蹤mod_perl中的CPU密集型請求?

有幾個網站在服務器上有自己的虛擬主機,有 是和通過Apache運行的SVN服務器。

我該如何追蹤哪個應用程序以及該應用程序中的哪些調用會產生高負載?

回答

4

Devel::NYTProf幾乎是目前Perl的首要分析器,Devel::NYTProf::Apache用於輕鬆分析mod_perl應用程序。

請參閱Tim Bunce: NYTProf v2 – A major advance in perl profilers以獲得帶圖片的完美概覽。

不幸的是,Devel :: NYTProf未預先打包在Ubuntu Hardy中。 (它是預先打包在Jaunty,Karmic,Lucid和後來的。)你可以使用一些適當的手段從這些發行版安裝軟件包,從CPAN安裝,或者只是升級;-)

+0

一旦我知道哪些請求導致了問題,我可以嘗試對其進行配置,但將探查器添加到所有請求聽起來像一個糟糕的主意 - 至少一見鍾情 – szabgab 2010-02-05 13:46:02

0

如果你有一個大subversion版本庫和基於路徑的授權在你的apache配置中啓用,你將看到一些長期運行的高CPU apache任務。你也可能會抱怨顛覆用戶有關緩慢的提交和更新,以及503錯誤和顛覆抱怨截斷的SSL響應。如果是這樣的話,我會讓顛覆成爲我的主要嫌疑犯。

0

使用自定義日誌格式或寫一個PerlLogHandler,它記錄請求信息以及PID和資源使用信息。例如,參見Randal的Web Techniques Column 48

相關問題