низкий приоритет демона
От: dostap Россия  
Дата: 22.04.16 23:42
Оценка:
Hi!
Проблема в следующем:
Программа осуществляет опрос устройства.
Если запускаем как обычно, то интервал опроса ~ 12 мс и top показывает CPU 10-12%
Если же как демон то период опроса возрастает в 10 раз и top — cpu 1-2 %
Потокам устанавливаю приоритет
sched_param sp;
sp.__sched_priority = get_sched_priority_max();
pthread_setschedparam(pthread_self,SCHED_FIFO,&sp);

daemon запускается стандартно:
int pid = fork();
if(!pid)
{
setsid();
chdir("/");
close(STDERR_FILENO)
...
}
?
Отредактировано 22.04.2016 23:48 dostap . Предыдущая версия .
Re: низкий приоритет демона
От: dostap Россия  
Дата: 23.04.16 00:41
Оценка:
Здравствуйте, dostap, Вы писали:

Вопрос снят. Я идиот. В conf файле период опроса был установлен в 10 раз больше как для отладки
Re: низкий приоритет демона
От: fk0 Россия https://fk0.name
Дата: 21.05.16 14:05
Оценка:
Здравствуйте, dostap, Вы писали:

D>Hi!

D>Проблема в следующем:
D>Программа осуществляет опрос устройства.
D>Если запускаем как обычно, то интервал опроса ~ 12 мс и top показывает CPU 10-12%
D>Если же как демон то период опроса возрастает в 10 раз и top — cpu 1-2 %
D>Потокам устанавливаю приоритет
D>sched_param sp;
D>sp.__sched_priority = get_sched_priority_max();
D>pthread_setschedparam(pthread_self,SCHED_FIFO,&sp);

Реально нужно setpriority(2) использовать (renice).
setchedparam не работает или работает только от рута.

D>daemon запускается стандартно:

D>int pid = fork();
D>if(!pid)
D>{
D>setsid();
D>chdir("/");
D>close(STDERR_FILENO)
D>...
D>}

fork два раза нужно, чтоб зомби не плодились.
Re[2]: низкий приоритет демона
От: dostap Россия  
Дата: 24.05.16 20:51
Оценка:
Здравствуйте, fk0, Вы писали:
Спасибо за советы.

fk0> Реально нужно setpriority(2) использовать (renice).

fk0>setchedparam не работает или работает только от рута.
так он и так из под рута запускается ...

D>>daemon запускается стандартно:

D>>int pid = fork();
D>>if(!pid)
D>>{
D>>setsid();
D>>chdir("/");
D>>close(STDERR_FILENO)
D>>...
D>>}

fk0> fork два раза нужно, чтоб зомби не плодились.

Так и делаю. Первый fork запускает слежение и перезапуск в случае чего.
Второй собственно рабочее тело демона
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.