2011-09-24 15 views

risposta

10

Penso modo migliore è avere carico avarage, perché non dipende solo dalla CPU, ma sulla velocità HDD anche.

Ecco un documento: http://php.net/manual/en/function.sys-getloadavg.php

+0

Ci sono tre valori che cos'è? carico medio \t 0.48 0.76 0.43 –

+0

primo numero è calcolato durante ultimo minuto, secondi viene calcolato durante l'ultima 5 minuti e ultimi numeri viene calcolato negli ultimi 15 minuti. Questi numeri determinano quanto occupano un core. Quindi se hai un core singolo e questi numeri sotto 1.0, il tuo sistema è pienamente responsabile. Tutte le informazioni sono qui: http://en.wikipedia.org/wiki/Load_(computing) – neworld

6

Date un'occhiata a questa libreria http://phpsysinfo.sourceforge.net/

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

Edit: Questo è stato preso da un commento di Stephen. L'ho messo qui solo per avere abbastanza visibilità da leggere.

Solo una nota: questa libreria non è troppo scattante. Non sono riuscito a trovare un modo per restituire solo CPU o semplicemente ram, restituisce TUTTO, elenco hardware, statistiche di rete , uso hd, informazioni os, praticamente tutto ciò che si può pensare di. Questo richiede circa 4 secondi per essere completato, quindi potrebbe non essere l'opzione migliore se si desidera un valore di aggiornamento costante utilizzando ajax o qualcosa del genere.

+1

Solo una nota: questa libreria non è troppo scattante Non sono riuscito a trovare un modo per restituire solo CPU o semplicemente RAM, restituisce TUTTO, elenco hardware, statistiche di rete, utilizzo hd, informazioni su OS, praticamente tutto ciò che si può pensare. Questo richiede circa 4 secondi per essere completato, quindi potrebbe non essere l'opzione migliore se si desidera un valore di aggiornamento costante usando ajax o qualcosa del genere. –

+0

@Stephen Grazie per l'attenzione su Stephen. Ho citato il tuo commento nella mia risposta. Nel caso in cui alcune persone potrebbero mancare. –

1

Recentemente ho avuto qualche problema per ottenere il carico della CPU e mi sento come condivisione.

qui era la mia soluzione strega darmi una mano:

La mia situazione:

ho uso Zend Framework 1.2 per costruire applicazioni di monitoraggio e voglio ottenere il carico della CPU e mostrarlo nella pagina. dopo aver fatto qualche ricerca ho scoperto che potevo usare oggetti COM e interrogare il sistema operativo Win con WMI così ho messo questi codice alla mia funzione init:

/* 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.'); 
    } 
  • Si potrebbe utilizzare ovunque si vuole, devo usarlo nella funzione init a causa della struttura di Zend.

E ho aggiunto un'azione e una funzione da usare che WMI e ottenere il carico della CPU quando voglio chiamando quella funzione.

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); 
} 
  • Allucinante i quali tempo reale i dati che ho messo questi codice in una funzione altrimenti si potrebbe scrivere nel file di Oriented PHP singolo non oggetto.

Spero che aiuti.

2

How to get Memory and CPU usage in PHP

semplici esempi perfetti.

- Memoria in procentage% ($ mem [2]/1000 per la memoria utilizzata in 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 in procentage%

function get_server_cpu_usage(){ 

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

} 
+0

Sarà molto bello se elabori la tua risposta anche con un esempio. – Sanoob

Problemi correlati