2011-12-08 26 views
2

我在尋找一個功能,可以讓我看到所有正在運行的php腳本的當前狀態,並向我顯示它們在此刻消耗了多少內存/ io/cpu。相當於Linux的頂級命令的PHP

我有一個wordpress網站,其中安裝了很多插件,而且我目前遇到了性能問題,我懷疑它與許多插件之一有關。

我正在尋找一個快速的方法來檢查哪個腳本/插件消耗最多的IO /內存/ CPU。

+0

不知道的不明原因的downvote的合法性此問題,*但* *請添加有關您的操作系統/體系結構的更多信息。 PHP(AFAIK)沒有內置任何內容來讓你做這樣的事情,但可能通過操作系統來做某些事情,這主要取決於你的服務器是如何設置的。 – DaveRandom

回答

2

您可以安裝Xdebug擴展名並使用其profiling functions。該配置文件將顯示您在每個功能上花費了多少時間,因此您可能會找到消耗這麼多時間的WP插件。

+0

+1良好的通話,忘了Xdebug(我應該拍攝) – DaveRandom

0

恐怕沒有這樣的命令或工具可以在PHP中「原生」工作。

既然你已經標記了Apache,請看看Apache的狀態模塊:http://httpd.apache.org/docs/2.0/mod/mod_status.html

輸出變爲像http://www.apache.org/server-status

當然,這需要你有你的Web服務器的根訪問權限,但我相信它顯示有用的信息。這可以告訴你,哪些URL佔用了大部分CPU時間。進一步調查你將需要一個像(提到)Xdebug的分析器。

2

我做了一個快速的PHP腳本(它很狡猾的解析,但它的作品,但任何人想要使它更加整潔請工作遠)

<?php 
echo (" <h2>Processes : </h2> <br> <center>"); 
$cmd = `/usr/bin/top -b -n1 `; 

//// parse the page ////////////////// 
$cmd=str_replace("  "," ",$cmd); 
$cmd=str_replace("  "," ",$cmd); 
$cmd=str_replace(" "," ",$cmd); 
$cmd=str_replace(" "," ",$cmd); 
$cmd=str_replace(" "," ",$cmd); 
$cmd=str_replace(" ","</td><td>",$cmd); 
$cmd=str_replace("\n","</td></tr><tr><td>",$cmd); 
$cmd=str_replace("<tr><td></td><td>","<tr><td>",$cmd); 
$cmd=str_replace("<tr><td>PID","<tr><td COLSPAN=10 height=50></td></tr><tr bgcolor=e0e0e0><td>PID",$cmd); 
/////////////////////////////////////// 

echo '<table width=900 align=middle border=0><tr><td>'; 
echo $cmd; 
echo '</td></tr></table>'; 
?>