![]() |
Показаны 12 сообщений на этой странице |
Форум сетевых администраторов (http://netadmin.ws/forum/index.php)
- PHP (http://netadmin.ws/forum/forumdisplay.php?forumid=6)
-- Как получить loadavg в FreeBSD (http://netadmin.ws/forum/showthread.php?threadid=11279)
Как получить loadavg в FreeBSD
Подскажите, как средствами PHP, получить текущую нагрузку сервера в FreeBSD ? Если можно с примером.
Стандартное чтение loadavg для Linux-а не проходит, так как нету 'cat /proc/loadavg' 
Jovani
sysctl -n vm.loadavg
Bochkarev_D.S.
Пример можешь? 
В линуксе, все прекрасно делается так:
<?php
$loadavg_array = explode(" ", exec("/proc/loadavg"));
$loadavg = $loadavg_array[2];
print("Load: " . $loadavg . "%");
?>
не знаю как в FreeBSD, но стаким же успехом можно попробовать exec и команду которую указал Bochkarev_D.S.:
exec('sysctl -n vm.loadavg', $output);
print_r($output);
__________________
Всегда есть решение.
пример мода global.php для отключки vb на freebsd при большой нагрузке
if ($vbulletin->options['loadlimit'] > 0)
{
if ( is_readable('/proc/loadavg') )
{// if it's located on a Linux system:
$fh = @fopen( '/proc/loadavg', 'r' );
$load_avg = @fread( $fh, 6 );
@fclose( $fh );
$loadavg = substr($load_avg, 0, strpos($load_avg, ' '));
}
else
{// if it's located on a FreeBSD system:
$load_avg = `sysctl -n vm.loadavg`;
$load_avg = str_replace('{ ', '', $load_avg);
$loadavg = substr($load_avg, 0, strpos($load_avg, ' '));
}
if ($loadavg > $vbulletin->options['loadlimit'])
{
$servertoobusy = true;
}
}
Ни фига не получается 
Нижеследующий код возвращает пустое значение $loadavg
<?php
$load_avg = `sysctl -n vm.loadavg`;
$load_avg = str_replace('{ ', '', $load_avg);
$loadavg = substr($load_avg, 0, strpos($load_avg, ' '));
print("Load: " . $loadavg . "%");
?>
Похоже, что нет доступа к sysctl 
Jovani как написал polo сделай
quote:
Первоначальное сообщение от Bochkarev_D.S.
Jovani как написал polo сделай
Проверь комманду в шелле сначало. Сначало надо убедиться что там работает.
__________________
Всегда есть решение.
В том-то и дело, что шелла нет, хотел через PHP.
У знакомого стоит FreeBSD, он давал команду %sysctl -n vm.loadavg, нагрузку показывает.
а exec срабатывает? может в php safe_mode включен.
__________________
Всегда есть решение.
| Формат времени GMT. Текущее время 18:19. | Показаны 12 сообщений на этой странице |
Powered by: vBulletin Version 2.2.4
Copyright © Jelsoft Enterprises Limited 2000, 2001.