Определяем загрузку CPU на PHP


Скрипт позволяющий определить загрузку процессора на PHP

public static function getServerCPULoad(){
//проверяем возможность чтения виртуальной директории
if (@is_readable('/proc/stat')){

//делаем первый замер
$file_first = file("/proc/stat");

//определяем значения состояний (описаны выше)
$tmp_first = explode(" ",$file_first[0]);

$cpu_user_first = $tmp_first[2];
$cpu_nice_first = $tmp_first[3];
$cpu_sys_first = $tmp_first[4];
$cpu_idle_first = $tmp_first[5];
$cpu_io_first = $tmp_first[6];

sleep(2);//промежуток до второго замера

//делаем второй замер
$file_second = file("/proc/stat");
$tmp_second = explode(" ",$file_second[0]);

$cpu_user_second= $tmp_second[2];
$cpu_nice_second= $tmp_second[3];
$cpu_sys_second = $tmp_second[4];
$cpu_idle_second= $tmp_second[5];
$cpu_io_second = $tmp_second[6];

//определяем разницу использованного процессорного времени
$diff_used = ($cpu_user_second-$cpu_user_first)+($cpu_nice_second-$cpu_nice_first)+($cpu_sys_second-$cpu_sys_first)+($cpu_io_second-$cpu_io_first);

//определяем разницу общего процессорного времени
$diff_total = ($cpu_user_second-$cpu_user_first)+(

$cpu_nice_second-$cpu_nice_first)+($cpu_sys_second-$cpu_sys_first)+($cpu_io_second-$cpu_io_first)+($cpu_idle_second-$cpu_idle_first);

определение загрузки cpu
$cpu = round($diff_used/$diff_total, 2);

return $cpu; // (от 0 до 1, если нужно в % - x100)
}
return null;
}

Оцените статью или поделитесь ей в соцсетях:

+ 0 | - 0

Рекомендуемые статьи:


Комментарии

Нет комментариев к данной статье.

Оставьте комментарий!

Поля обозначенные как * требуются обязательно. Перед постингом всегда делайте просмотр своего комментария.