timer_resolution и swi4: clock sio
Maxim Dounin
mdounin at mdounin.ru
Fri Mar 20 17:56:34 MSK 2009
Hello!
On Fri, Mar 20, 2009 at 05:13:13PM +0300, Монашёв Михаил wrote:
> Здравствуйте.
>
> Заметил в top -S , что swi4: clock sio жрёт много процессора:
>
> 18 root 1 -32 - 0K 16K WAIT 2 17.9H 15.58% swi4: clock sio
>
> В конфиге nginx-а прописано timer_resolution 100ms;
>
> Когда закомментил timer_resolution, то процесс стал кушать не более
> процента.
>
> Кроме того, странным кажется тот факт, что nginx не пишет аксес-логи,
> для которых как я понимаю создавался timer_resolution.
>
> Может кто-нить пояснить, как работает timer_resolution и стоит ли его
> использовать? Ведь фактически сэкономленные сисколы меняется на
> процессор, скушенный swi4: clock sio.
При использовании timer_resolution каждый воркер создаёт таймер,
тикающий периодически (раз в 100ms в твоём случае) и делает
gettimeofday() по этому таймеру. При не использовании - делает
gettimeofday() каждый раз после получения очередной порции событий
из ядра. Полученное время используется много где, в частности - в
таймаутах и т.п., далеко не только при записи логов.
В зависимости от вида нагрузки и количества воркеров эффект от
использования timer_resolution может быть разным. Думаю твоя
проблема в количестве воркеров.
Maxim Dounin
More information about the nginx-ru
mailing list