2011-09-24 17 views

Respuesta

10

creo que mejor forma de hacerlo es conseguir normalito carga, ya que no sólo depende de la CPU, pero también en la velocidad del disco duro.

Aquí está un doc: http://php.net/manual/en/function.sys-getloadavg.php

+0

Hay tres valores ¿qué es eso? Promedios de carga \t 0.48 0.76 0.43 –

+0

El primer número se calcula durante el último minuto, el segundo se calcula durante los últimos 5 minutos y los últimos números se calculan durante los últimos 15 minutos. Estos números determinan cuánto ocupan los núcleos. Entonces, si tiene un solo núcleo y estos números están por debajo de 1.0, entonces su sistema es completamente responsable. Toda la información está aquí: http://en.wikipedia.org/wiki/Load_(computing) – neworld

6

Tome un vistazo a esta biblioteca http://phpsysinfo.sourceforge.net/

Demostración: http://phpsysinfo.sourceforge.net/phpsysinfo/index.php?disp=dynamic

Editar: Esto fue tomado de comentario de Stephen. Lo puse aquí solo para que tenga suficiente exposición para que la gente lo lea.

Solo una nota: esta biblioteca no es muy ágil. No pude encontrar la forma de simplemente devolver CPU o solo RAM, devuelve TODO, lista de hardware, estadísticas de red, uso de hd, información de os, casi todo lo que pueda pensar de. Esto tarda unos 4 segundos en completarse, por lo que puede no ser la mejor opción si desea un valor de actualización constante utilizando ajax o algo por el estilo.

+1

Sólo una nota: esta biblioteca no es muy ágil No pude encontrar la manera de devolver la CPU o solo RAM, devuelve TODO, lista de hardware, estadísticas de red, uso de HD, información de OS, prácticamente todo lo que se te ocurra. Esto tarda unos 4 segundos en completarse, por lo que puede no ser la mejor opción si desea actualizar constantemente el valor utilizando ajax o algo por el estilo. –

+0

@Stephen Gracias por la información de Stephen. He citado tu comentario en mi respuesta. En caso de que algunas personas puedan perderlo. –

1

recientemente tengo algún problema para obtener la carga de la CPU y me siento como compartirlo.

Aquí fue mi solución bruja me ayude:

Mi situación:

tengo uso de Zend Framework 1.2 para construir aplicación de monitoreo y quiero conseguir carga de la CPU, el documento presentado en la página. después de hacer algunas investigaciones descubrí que podía usar objetos COM y consultar el Win OS con WMI así que poner estos códigos a mi función 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.'); 
    } 
  • Se puede usar en cualquier lugar que desee, tengo usarlo en la función init debido a la estructura Zend.

Y agregué una acción y una función para usar esa wmi y obtener carga de la CPU en cualquier momento que desee llamando a esa función.

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); 
} 
  • por culpa i qué datos en tiempo real i poner estos códigos en función de lo contrario podría escribirlo en una sola fila no objeto PHP Orientado.

Espero que ayude.

2

How to get Memory and CPU usage in PHP

simples ejemplos perfectos.

- Memoria en procentage% ($ mem [2]/1000 para la memoria usada en 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 en procentage%

function get_server_cpu_usage(){ 

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

} 
+0

Será muy útil si elaboras tu respuesta con un ejemplo también. – Sanoob

Cuestiones relacionadas