Для консольных демонов / агентов итп.
у меня на портале много различных демонов / утилит которые считают, копируют, архивируют, грузят, обновляют итд итп в crontab более 80 строк
некоторые работают секунды, а некоторые три часа, некоторые запускаются каждую минуту, другие раз в сутки.
вообщем иногда наступает ситуация когда "всем надо" и тогда load average может резко возрастать, все бы ничего но страницы у пользователей начинают подтормаживать.
придумано простое решение в циклах демонов вызывает ниже следующая функция
/*
** автоматический регулятор нагрузки
*/
function load_adjuster(){
$load = sys_getloadavg();
if( $load[0] > 5){
usleep(200000); // 200 мс
}
elseif( $load[0] > 7){
usleep(1000000); // 1 сек
}
}
функция сегодня проходит альфа тестирование и удерживает load average в момент "всем надо" между 5 и 6
у меня на портале много различных демонов / утилит которые считают, копируют, архивируют, грузят, обновляют итд итп в crontab более 80 строк
некоторые работают секунды, а некоторые три часа, некоторые запускаются каждую минуту, другие раз в сутки.
вообщем иногда наступает ситуация когда "всем надо" и тогда load average может резко возрастать, все бы ничего но страницы у пользователей начинают подтормаживать.
придумано простое решение в циклах демонов вызывает ниже следующая функция
/*
** автоматический регулятор нагрузки
*/
function load_adjuster(){
$load = sys_getloadavg();
if( $load[0] > 5){
usleep(200000); // 200 мс
}
elseif( $load[0] > 7){
usleep(1000000); // 1 сек
}
}
функция сегодня проходит альфа тестирование и удерживает load average в момент "всем надо" между 5 и 6