getCpuData(); // 1回目の情報を取得 } /** * CPU使用率(0-100)を返します。 */ public function getCpuData(){ $percent = 0; // CPU使用率(0-100) $cpu = file('/proc/stat'); foreach( $cpu as $line ) { // CPU行を探す if( preg_match('/^cpu[0-9]/', $line) ){ $data = explode(' ', $line ); // 合計値取得 $sum = 0; foreach( $data as $val ) $sum += intval($val); // アイドル時間取得 $idle = intval($data[4]); // CPU使用率 $percent = 100 - round( ($idle - $this->cpuIdle) * 100 / ($sum - $this->cpuSum) ); // 最新の値を保存 $this->cpuSum = $sum; $this->cpuIdle = $idle; break; } } return $percent; } /** * メモリ使用率(0-100)を返します。 */ public function getMemData(){ $sum = 0; // 総メモリ $free = 0; // フリーメモリ $mem = file('/proc/meminfo'); foreach( $mem as $line ) { // 総メモリ取得 if( preg_match('/^MemTotal:.*/', $line) ){ $data = preg_replace('/^MemTotal:\\s+/','', $line); $sum = intval(preg_replace('/\\s+.*/','', $data)); } // フリーメモリ取得 if( preg_match('/^MemFree:.*/', $line) ){ $data = preg_replace('/^MemFree:\\s+/','', $line); $free = intval(preg_replace('/\\s+.*/','', $data)); } if( $sum > 0 && $free > 0 ){ break; } } return 100 - round( $free * 100 / $sum ); } } ?>