Назад | Перейти на главную страницу

Конфигурация тайм-аута epoll в lighttpd

Есть ли опция конфигурации для настройки тайм-аута epoll в lighttpd?
Я разрабатываю встроенное устройство Linux (2.6) с lighttpd 1.4.30. И я наблюдаю следующую проблему: даже когда система простаивает и нет подключенных веб-клиентов, lighttpd просыпается каждую секунду (см. Ниже).

/ # кошка / proc / timer_stats
Статистика таймера Версия: v0.2
Период выборки: 6,382 с
15, 137 alt-ecm hrtimer_start_range_ns (hrtimer_wakeup)
23, 5 событий / 0 uectl_readerwork (delayed_work_timer_fn)
10, 380 db_probe hrtimer_start_range_ns (hrtimer_wakeup)
3, 121 atswitch hrtimer_start_range_ns (posix_timer_fn)
6, 380 db_probe hrtimer_start (timerfd_tmrproc)
6, 226 lighttpd sys_epoll_wait (время_процесса)

цель - минимизировать количество пробуждений системы из-за бездействия. Заранее спасибо!

односекундный таймер необходим для:

  • api плагина: каждый плагин может иметь метод _trigger, который должен вызываться каждую секунду
  • stat_cache_cleanup
  • проверка каждого соединения на тайм-ауты io

Вы можете увеличить тайм-аут опроса в src/server.c около строки 1460:

if ((n = fdevent_poll(srv->ev, 1000)) > 0) {

Значение указано в миллисекундах и жестко запрограммировано на 1000 -> 1 секунда. Но даже установка этого значения на 5 или 10 секунд вам не очень поможет, имхо ...