2011-09-24 43 views
5

我想知道php中的內存和CPU使用情況,因爲我使用的是cronejobs,有時CPU超載,所以在這種情況下,我不想啓動更多的進程,我只是想跳過這個cron。如何獲得CPU和內存使用率

回答

10

我認爲更好的辦法是讓負載avarage,因爲它不僅取決於CPU,但硬盤的速度也。

這裏是一個DOC:http://php.net/manual/en/function.sys-getloadavg.php

+0

有三個值是什麼? 負載平均值\t 0.48 0.76 0.43 –

+0

第一個數字在最後一分鐘計算,第二個數字在最近5分鐘內計算,最後一個數字在最近15分鐘內計算。這些數字決定了佔用核心的數量。所以如果你有單核心,這個數字低於1.0,那麼你的系統是完全的責任。所有信息在這裏:http://en.wikipedia.org/wiki/Load_(computing) – neworld

6

在這個圖書館看看http://phpsysinfo.sourceforge.net/

演示:http://phpsysinfo.sourceforge.net/phpsysinfo/index.php?disp=dynamic

編輯:這是斯蒂芬的評論拍攝。我把它放在這裏,以便讓人們有足夠的閱讀時間。

只是說明:這個庫不是太活潑。我找不到 只是返回CPU或只是RAM,它返回一切,硬件列表, 網絡統計信息,高清使用情況,操作系統信息,幾乎所有你能想到的東西 。這需要大約4秒鐘才能完成,因此如果您想要使用ajax或 不斷更新值,那麼它可能不是 最佳選項。

+1

只是注意:這個庫不太活潑。我無法找到一種方法來返回CPU或只是RAM,它會返回一切,硬件列表,網絡狀態,高清使用情況,操作系統信息,幾乎所有你能想到的。這需要大約4秒鐘才能完成,因此如果您想要使用ajax或類似的東西不斷更新值,它可能不是最好的選擇。 –

+0

@Stephen感謝Stephen的領導。我在我的回答中引用了您的評論。以防萬一有人會錯過它。 –

1

最近我有一些問題,以便獲得CPU的負荷,我覺得分享。

這裏是我的解決方案巫幫我出:

我的情況:

我已經使用Zend框架1.2建立監測應用程序,我希望得到的CPU負載,並顯示在頁面上。做一些研究,我發現我可以使用COM對象和查詢贏OS使用WMI後,所以我把這些代碼到我的初始化函數:

/* Initialize action controller here */ 
    $this->wmi = new COM('winmgmts:{impersonationLevel=impersonate}//./root/cimv2'); 

    if (!is_object($this->wmi)) { 
     throw new GetInfoException('This needs access to WMI. Please enable DCOM in php.ini and allow the current user to access the WMI DCOM object.'); 
    } 
  • 你可以任何你想要使用它,我已經用它在init函數中使用Zend結構。

而且我添加了一個Action和一個函數來使用該wmi,並在任何時候通過調用該函數來獲取cpu加載。

public function cpuloadAction() 
{ 
    echo json_encode($this->getLoad()); 
    exit(); 
} 

private function getLoad() { 

    // Time? 
    if (!empty($this->settings['timer'])) 
     $t = new LinfoTimerStart('Load Averages'); 

    $load = array(); 
    foreach ($this->wmi->ExecQuery("SELECT LoadPercentage FROM Win32_Processor") as $cpu) { 
     $load[] = $cpu->LoadPercentage; 
    } 
    //return round(array_sum($load)/count($load), 2) . "%"; 
    return (int)round(array_sum($load)/count($load), 2); 
} 
  • 怎麼一回事,因爲我什麼的實時數據,我把這些代碼的功能,否則,你可以在它單一的非面向對象的PHP文件中編寫。

希望它有幫助。

2

How to get Memory and CPU usage in PHP

完美簡單的例子。

- 在procentage%存儲器($ MEM [2]/1000用於MB使用的內存)

function get_server_memory_usage(){ 

$free = shell_exec('free'); 
$free = (string)trim($free); 
$free_arr = explode("\n", $free); 
$mem = explode(" ", $free_arr[1]); 
$mem = array_filter($mem); 
$mem = array_merge($mem); 
$memory_usage = $mem[2]/$mem[1]*100; 

return $memory_usage; 
} 

- CPU在procentage%

function get_server_cpu_usage(){ 

$load = sys_getloadavg(); 
return $load[0]; 

} 
+0

如果你用一個例子來闡述你的答案,這將是非常好的。 – Sanoob

相關問題